SlideShare una empresa de Scribd logo
1 de 26
INTRODUCCIÓN A LOS LENGUAJES
DE PROGRAMACIÓN
AGENDA
• ¿Qué es un lenguaje?
• ¿Qué es un lenguaje de programación?
• Clasificación de los lenguajes de programación
• Propiedades de los lenguajes de programación
• Paradigmas de lenguajes de programación
• Dominios de aplicación de los lenguajes de
programación
• Historia de los lenguajes de programación
• Cualidades de los lenguajes de programación
¿QUÉ ES UN LENGUAJE?
• Conjunto de sonidos articulados con
que los hombre manifiesta lo que
piensa o siente. Según RAE
• Informático: Conjunto de signos y
reglas que permite la comunicación
con un ordenador. Según RAE
• Cualquier sistema de signos
destinados a la comunicación entre
seres humanos, entre hombres y
máquinas, o entre máquinas, que se
estructura sobre un conjunto definido
de reglas, convenciones y
representaciones gráficas y/o
fonológicas. Según Universidad de la
República Oriental del Uruguay
¿QUÉ ES UN LENGUAJE DE
PROGRAMACIÓN?
• Conjunto de símbolos e
instrucciones que permiten al
hombre indicarle al computador
como operar.
• Sistema de símbolos y reglas
que permite la construcción de
programas con los que la
computadora puede operar así
como resolver problemas de
manera eficaz.
• Es una notación formal para
describir algoritmos o funciones
que serán ejecutadas por un
ordenador. Cueva Lovello, Juan Manuel.
Conceptos básicos de procesadores de
lenguaje.
CLASIFICACIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN
• Los lenguajes se pueden clasificar en muchas
categorías:
• Según el nivel de complejidad: Alto nivel, medio nivel, bajo nivel
• Según el tipo de ejecución: Compilados, interpretados, mixtos
• Según el tipo de aplicaciones que permiten: Visuales, de script,
web.
• Según el Paradigma: Imperativos, orientados a objetos, guiados
por eventos, funcionales, lógicos, concurrentes, orientados a
aspectos, multiparadigma.
PROPIEDADES DE LOS LENGUAJES DE
PROGRAMACIÓN
• Sintaxis
• Se refiere a lo que constituye un programa bien escrito. Lo componen la
gramática y el vocabulario de palabras y símbolos que son válidos en
dicho lenguaje.
• La sintaxis se divide en dos grandes partes
• La parte léxica que se refiere a los símbolos usados para la escritura del
programa, es decir que correspondan al alfabeto.
• La parte léxica también se encarga de la ejecución de las reglas para
armar componentes léxicos, es decir las “palabras” del programa.
• Los componentes léxicos característicos de un lenguaje de
programación son: identificadores (de usuario y reservados), literales
(números, caracteres, cadenas, booleanos y otros como fechas),
operadores (matemáticos, relacionales, lógicos, de asignación y otros
como de concatenación), separadores, espacios en blanco y
comentarios.
• La parte sintáctica propiamente dicha se refiere al orden de las
“palabras” dentro de “frases” bien formadas que conforman el programa.
PROPIEDADES DE LOS LENGUAJES DE
PROGRAMACIÓN
• Sistemas de tipos y semántica:
• Se refiere a los tipos de valores que puede manipular un programa y
al significado (semántica) del mismo.
• Cuando se escribe un programa, es importante entender asuntos
como el efecto exacto que tiene una asignación sobre el estado de
la computación, el impacto de la ejecución de una secuencia de
pasos y la definición de lo que significa ejecutar un bucle o una
instrucción condicional.
• Gestión de memoria:
• Se centra en el conjunto de técnicas que ayudan a entender la
correspondencia entre los valores, las estructuras de datos y las
estructuras de los programas con la memoria en la que residen.
• Se requiere distinguir entre memoria estática y memoria dinámica,
pilas y montículos (heap), los tiempos de vida de los tipos de objetos
y según su alcance, las técnicas de reclamación y de detección de
basura.
PROPIEDADES DE LOS LENGUAJES DE
PROGRAMACIÓN
• Manipulación de excepciones:
• Se refiere al manejo de los eventos erróneos que pueden suceder
en un programa en ejecución, de manera que afecten lo menos
posible al resultado final.
• Como un error de entrada, una división por cero o un intento de
crear un bloque de espacio en un montículo. Este tipo de eventos
se conocen como excepciones y es necesario que los lenguajes de
programación no solo capten sino que además respondan de forma
adecuada a estas excepciones, sin que la computación en su
conjunto se vea comprometida.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Por paradigma podemos entender las diversa
tendencias o maneras de programar.
• Normalmente cada paradigma se especializa en un
dominio de aplicación, aunque algunos lenguajes
son aplicables a la solución de problemas de
cualquier dominio.
• Algunos lenguajes no se pueden establecer
claramente en un solo paradigma, así que los
llamamos Multiparadigma. Ej Java – C# - Ruby
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación imperativa:
• Los programas son estructurados y paso por paso.
• Cada paso realiza un cálculo específico, recupera una
entrada o genera una salida.
• La abstracción procedimental es un bloque de creación
esencial (Uso de procedimientos y funciones)
• Maneja sentencias condicionales, asignaciones, bucles
o repeticiones y secuencias.
• Ejemplos principales: Cobol, Fortran, C, Basic, Pascal.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación orientada a objetos:
• El programa es una colección de objetos que interactúan
unos con otros trasladándose mensajes que transforman
su estado.
• El modelado, la clasificación y la herencia de objetos son
bloques de creación esenciales.
• Es la tendencia más popularizada que existe, gracias
sobretodo a la gran difusión de lenguajes como java, C# o
PHP, así como por los procesos de desarrollo de software
por componentes.
• Los lenguajes orientados a objetos principales son:
Smalltalk, java, C++ e Eiffel.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación Funcional:
• El programa es una colección de funciones
matemáticas, cada una de ellas con su entrada
(dominio) y su resultado (intervalo).
• Las funciones interactúan y se combinan las unas con
las otras utilizando condicionales, recursividad y
composición funcional.
• Sus lenguajes aplican en el dominio de la
computación científica así como la inteligencia artificial
• Los lenguajes de programación funcional principales
son Lisp, Scheme, Haskell y ML.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación Lógica:
• El programa es una colección de declaraciones lógicas
sobre el resultado que debería conseguir una función, en
vez de ¿cómo se debe obtener el resultado?
• La ejecución del programa aplica las declaraciones para
obtener una serie de soluciones posibles a un problema.
• No determinismo, las soluciones a muchos problemas no
son únicas, sino múltiples.
• El lenguaje de programación más importante es Prolog,
aunque SQL también pertenece a este paradigma.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación Guiada por eventos:
• El programa es un bucle continuo que responde a los
eventos generados en un orden no predecible.
• Estos eventos se originan a partir de acciones del usuario
en la pantalla (por ejemplo clics de ratón o pulsaciones de
teclas) o de otras fuentes.
• Se puede pensar que es una tendencia o característica de
programación, más que un verdadero paradigma.
• Los lenguajes de programación guiada por eventos más
importantes incluyen los visuales como visual Basic o
visual C++ y java.
PARADIGMAS DE LENGUAJES DE
PROGRAMACIÓN
• Programación Concurrente:
• El programa es una colección de procesos cooperativos, que
comparten información unos con otros.
• Los procesos operan generalmente en forma asíncrona.
• También se puede producir el paralelismo en un solo proceso,
como el caso de la ejecución en paralelo de las diversas
iteraciones de un ciclo.
• Los lenguajes de programación concurrentes incluyen SR, Linda
y Fortran de alto rendimiento.
DOMINIOS DE APLICACIÓN DE LOS
LENGUAJES DE PROGRAMACIÓN
• Entre los dominios de
aplicación más comunes
de los lenguajes de
programación se tienen:
• Científica
• Sistemas de gestión de
información
• Inteligencia artificial
• Sistemas
• Orientada a la web
CONSIDERACIONES PARA EL
ESTUDIO DE LOS LENGUAJES
• Restricciones de arquitectura
• Los lenguajes de programación están diseñados para los
computadores.
• Un lenguaje bien diseñado e implementado puede mejorar mucho la
utilidad de un computador en un dominio de aplicación.
• La mayoría de los diseños de computadores de las últimas décadas
han seguido el modelo «von Neumann».
• Muchos lenguajes, como Fortran, Cobol y C, cuadran muy bien en
esta arquitectura; otros, como Lisp no.
• Cuando se consideran las virtudes de las distintas opciones de
diseños de lenguajes, siempre hay una limitante por la necesidad
de implementar dichos lenguajes de forma eficiente y efectiva
dentro de las restricciones impuestas por las variantes actuales del
modelo von Neumann.
• La idea de que un buen diseño de lenguaje puede conducir a una
arquitectura de computadoras viable radicalmente nueva y
comercial probablemente no sea una opción.
CONSIDERACIONES PARA EL
ESTUDIO DE LOS LENGUAJES
• Restricciones contextúales
• Los lenguajes no están diseñados sólo para cuadrar
dentro de las restricciones de una familia de
arquitecturas determinada.
• También lo esta para satisfacer otras restricciones
impuestas por el contexto en el que se van a utilizar.
• El área de aplicación, el sistema operativo, la red y las
preferencias de la comunidad de programación.
• Algunos lenguajes tienen un diseño de propósito
general más intencionado, optando por servir a los
intereses. de un gran número de aplicaciones.
• Otros lenguajes han sido diseñados para tener una
naturaleza mas de propósito especial.
• Algunos lenguajes de programación se implementan
utilizando un proceso de compilación.
• Otros lenguajes se implementan utilizando un proceso
interpretativo.
• Otros como Java, utilizan un modelo mixto, de
compilación «Java byte code» e interpretación «Java
Virtual Machine» o JVM.
• Un equipo virtual es cualquier modelo abstracto de
una computadora que se implementa en software,
pero no en hardware.
CONSIDERACIONES PARA EL
ESTUDIO DE LOS LENGUAJES
• Intérpretes y equipos virtuales
• A veces, se diseñan los lenguajes de forma que el compilador se escribe
sólo una vez utilizando un equipo virtual como equipo objetivo y, después,
este equipo virtual se implementa a partir de un intérprete en cada uno de
los equipos reales.
• Este es el caso de Java, o del Framework .NET.
• Cuando seleccionaron este diseño, los diseñadores del lenguaje Java
sacrificaron un poco de eficiencia en favor de la flexibilidad y la portabilidad.
• Se puede implementar cualquier cambio en las especificaciones del lenguaje
Java alterando un solo compilador, en lugar de toda una familia.
CONSIDERACIONES PARA EL
ESTUDIO DE LOS LENGUAJES
• Normalizaciones
• Cuando un lenguaje de programación recibe
suficiente atención y uso entre los
programadores. normalmente comienza el
proceso de normalización.
• Un esfuerzo para hacer una definición de un
lenguaje normalizado independiente del
equipo a la que deben adherirse todos los
implementadores de dicho lenguaje.
• Las organizaciones más importantes que
supervisan y mantienen las normalizaciones
de los lenguajes de programación son el
Instituto de Normalización Nacional
Americano (ANSI) y la Organización
Internacional de Normalización (ISO).
• El proceso de normalización de lenguajes es
complejo y lleva su tiempo, incluyendo el
largo período en el que una comunidad está
ocupada en ello y. normalmente, la
voluminosa definición de la normalización y
su resultado.
• ANSI Cobol (1985)
• ISO Fortran; (1997)
• ISO Prolog (1995)
• ANSI/ISO C (1999)
• ANSI Basic (1989)
• ANSI/ISO Ada (1995)
• ANSI Smalltalk (1998)
• ISO Pascal (1990)
CONSIDERACIONES PARA EL
ESTUDIO DE LOS LENGUAJES
• Sistemas heredados
• Se ha estimado que el 90 por ciento del tiempo de un programador se
aplica al mantenimiento de las aplicaciones ya existentes, o sistemas
heredados.
• Solo el 10 por ciento se ocupa en el desarrollo de código para
aplicaciones nuevas.
• Probablemente, la mayor parte del código de los sistemas heredados
está escrito en Cobol
• El caso de C++, que fue diseñado como una extensión de C para
mantener esta compatibilidad.
• El diseño de Java se aparta de esta tradición, pese a que gran cantidad
de sus características son reminiscencias de las de C++. Como punto
central, los diseñadores de Java querían liberar su nuevo lenguaje del
soporte de las características menos deseables de C++. así que,
sencillamente, las eliminaron.
• El resultado fue un lenguaje más sencillo para el desarrollo de
aplicaciones moderno, pero cualquier sistema C++ heredado que
tengamos que convertir a Java tiene que pasar un proceso de
recodificación antes de que se pueda compilar o ejecutar.
HISTORIA
CUALIDADES DE LOS LENGUAJES DE
PROGRAMACIÓN
• Criterios para elegir un lenguaje o al momento de
escribirlo.
• Simplicidad y claridad:
• ¿Es fácil para un programador escribir un programa en el
lenguaje?, ¿Hasta qué punto es inteligible este programa
para un lector promedio?, ¿Es fácil aprender y enseñar el
lenguaje?.
• Uniones:
• Un elemento del lenguaje se une a una propiedad en el
momento en que se define dicha propiedad para el. Ej, la
unión de una variable con su tipo al declararla.
• Los principales momentos de unión de los electos con sus
propiedades son:
CUALIDADES DE UN LENGUAJE DE
PROGRAMACIÓN
• Uniones
• Momento de definición del lenguaje: Al unir los tipos básicos de
datos con las palabras reservadas del lenguaje.
• Momento de Implementación del lenguaje: Al unir los valores
numéricos con las representaciones del equipo, ej: que los
valores enteros se representen en 16 bits.
• Momento de escritura del programa: Al unir los nombres de las
variables con los tipos de datos y se unen durante todo el tiempo
de vida de la variable.
• Momento de la compilación y carga del programa: Al unir las
variables “estáticas” con las direcciones de memoria fijas.
• Momento de ejecución del programa: Cuando las variables se
unen con los valores. ( x=3; )
CUALIDADES DE UN LENGUAJE DE
PROGRAMACIÓN
• Ortogonalidad:
• ¿Un símbolo o una palabra reservada tienen siempre
el mismo significado, independiente del contexto en el
que se utilice?,
• Fiabilidad de los programas:
• ¿El programa se comporta igual cada vez que se
ejecuta con los mismos datos de entrada?
• Aplicabilidad:
• ¿El lenguaje proporciona un soporte adecuado para
las aplicaciones del dominio en el que se está
usando?.
CUALIDADES DE UN LENGUAJE DE
PROGRAMACIÓN
• Abstracción:
• Es una característica fundamental para la reutilización
de código, el permitir crear y cargar bibliotecas y
librerías agiliza el trabajo de los programadores. Por
ejemplo, las librerías de lenguajes como C y Java.
• Implementación eficiente:
• ¿Permite las construcciones y las características de
un lenguaje su implementación practica y eficiente en
las plataformas coetáneas?

Más contenido relacionado

Similar a intro_lenguajes.pptx

Fp isc u1 conceptos basicos
Fp isc   u1 conceptos basicosFp isc   u1 conceptos basicos
Fp isc u1 conceptos basicosAntonio San
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacionLy Andre
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño webLaura Valencia
 
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB  FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB Vannesa Pinzon
 
1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdfMariaTeresaGarznPrez
 
Teoria de los lenguajes de programacion
Teoria de los lenguajes de programacionTeoria de los lenguajes de programacion
Teoria de los lenguajes de programacionMario Bastidas
 
fundamentos de diseño en programacion
fundamentos de diseño en programacionfundamentos de diseño en programacion
fundamentos de diseño en programacionKaren Lagos
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2esveidi_27
 
Principales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacionPrincipales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacionMarco Muñoz
 
Jaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacionJaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programaciongiovanni ascencio
 
Lenguajes de programacion1
Lenguajes de programacion1Lenguajes de programacion1
Lenguajes de programacion1DanielRosero23
 
Lenguajes de Programación
Lenguajes de ProgramaciónLenguajes de Programación
Lenguajes de ProgramaciónGLORIABELEN3
 

Similar a intro_lenguajes.pptx (20)

Fp isc u1 conceptos basicos
Fp isc   u1 conceptos basicosFp isc   u1 conceptos basicos
Fp isc u1 conceptos basicos
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Programeichon de milagro
Programeichon de milagroProgrameichon de milagro
Programeichon de milagro
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño web
 
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB  FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
FUNDAMENTOS DE PROGRAMACIÓN EN EL DISEÑO WEB
 
1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf1___LENGUAJES DE PROGRAMACION_2023.pdf
1___LENGUAJES DE PROGRAMACION_2023.pdf
 
Lenguaje de programacion mike alvarado
Lenguaje de programacion mike alvaradoLenguaje de programacion mike alvarado
Lenguaje de programacion mike alvarado
 
Programacion objetos
Programacion objetosProgramacion objetos
Programacion objetos
 
Teoria de los lenguajes de programacion
Teoria de los lenguajes de programacionTeoria de los lenguajes de programacion
Teoria de los lenguajes de programacion
 
fundamentos de diseño en programacion
fundamentos de diseño en programacionfundamentos de diseño en programacion
fundamentos de diseño en programacion
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Mariana precesntacion 2
Mariana precesntacion 2Mariana precesntacion 2
Mariana precesntacion 2
 
Principales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacionPrincipales características de 10 lenguajes de programacion
Principales características de 10 lenguajes de programacion
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
Lenguaje informatico tic´s
Lenguaje informatico tic´sLenguaje informatico tic´s
Lenguaje informatico tic´s
 
Jaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacionJaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacion
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Lenguajes de programacion1
Lenguajes de programacion1Lenguajes de programacion1
Lenguajes de programacion1
 
Lenguajes de Programación
Lenguajes de ProgramaciónLenguajes de Programación
Lenguajes de Programación
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Último (20)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

intro_lenguajes.pptx

  • 1. INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
  • 2. AGENDA • ¿Qué es un lenguaje? • ¿Qué es un lenguaje de programación? • Clasificación de los lenguajes de programación • Propiedades de los lenguajes de programación • Paradigmas de lenguajes de programación • Dominios de aplicación de los lenguajes de programación • Historia de los lenguajes de programación • Cualidades de los lenguajes de programación
  • 3. ¿QUÉ ES UN LENGUAJE? • Conjunto de sonidos articulados con que los hombre manifiesta lo que piensa o siente. Según RAE • Informático: Conjunto de signos y reglas que permite la comunicación con un ordenador. Según RAE • Cualquier sistema de signos destinados a la comunicación entre seres humanos, entre hombres y máquinas, o entre máquinas, que se estructura sobre un conjunto definido de reglas, convenciones y representaciones gráficas y/o fonológicas. Según Universidad de la República Oriental del Uruguay
  • 4. ¿QUÉ ES UN LENGUAJE DE PROGRAMACIÓN? • Conjunto de símbolos e instrucciones que permiten al hombre indicarle al computador como operar. • Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz. • Es una notación formal para describir algoritmos o funciones que serán ejecutadas por un ordenador. Cueva Lovello, Juan Manuel. Conceptos básicos de procesadores de lenguaje.
  • 5. CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN • Los lenguajes se pueden clasificar en muchas categorías: • Según el nivel de complejidad: Alto nivel, medio nivel, bajo nivel • Según el tipo de ejecución: Compilados, interpretados, mixtos • Según el tipo de aplicaciones que permiten: Visuales, de script, web. • Según el Paradigma: Imperativos, orientados a objetos, guiados por eventos, funcionales, lógicos, concurrentes, orientados a aspectos, multiparadigma.
  • 6. PROPIEDADES DE LOS LENGUAJES DE PROGRAMACIÓN • Sintaxis • Se refiere a lo que constituye un programa bien escrito. Lo componen la gramática y el vocabulario de palabras y símbolos que son válidos en dicho lenguaje. • La sintaxis se divide en dos grandes partes • La parte léxica que se refiere a los símbolos usados para la escritura del programa, es decir que correspondan al alfabeto. • La parte léxica también se encarga de la ejecución de las reglas para armar componentes léxicos, es decir las “palabras” del programa. • Los componentes léxicos característicos de un lenguaje de programación son: identificadores (de usuario y reservados), literales (números, caracteres, cadenas, booleanos y otros como fechas), operadores (matemáticos, relacionales, lógicos, de asignación y otros como de concatenación), separadores, espacios en blanco y comentarios. • La parte sintáctica propiamente dicha se refiere al orden de las “palabras” dentro de “frases” bien formadas que conforman el programa.
  • 7. PROPIEDADES DE LOS LENGUAJES DE PROGRAMACIÓN • Sistemas de tipos y semántica: • Se refiere a los tipos de valores que puede manipular un programa y al significado (semántica) del mismo. • Cuando se escribe un programa, es importante entender asuntos como el efecto exacto que tiene una asignación sobre el estado de la computación, el impacto de la ejecución de una secuencia de pasos y la definición de lo que significa ejecutar un bucle o una instrucción condicional. • Gestión de memoria: • Se centra en el conjunto de técnicas que ayudan a entender la correspondencia entre los valores, las estructuras de datos y las estructuras de los programas con la memoria en la que residen. • Se requiere distinguir entre memoria estática y memoria dinámica, pilas y montículos (heap), los tiempos de vida de los tipos de objetos y según su alcance, las técnicas de reclamación y de detección de basura.
  • 8. PROPIEDADES DE LOS LENGUAJES DE PROGRAMACIÓN • Manipulación de excepciones: • Se refiere al manejo de los eventos erróneos que pueden suceder en un programa en ejecución, de manera que afecten lo menos posible al resultado final. • Como un error de entrada, una división por cero o un intento de crear un bloque de espacio en un montículo. Este tipo de eventos se conocen como excepciones y es necesario que los lenguajes de programación no solo capten sino que además respondan de forma adecuada a estas excepciones, sin que la computación en su conjunto se vea comprometida.
  • 9. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Por paradigma podemos entender las diversa tendencias o maneras de programar. • Normalmente cada paradigma se especializa en un dominio de aplicación, aunque algunos lenguajes son aplicables a la solución de problemas de cualquier dominio. • Algunos lenguajes no se pueden establecer claramente en un solo paradigma, así que los llamamos Multiparadigma. Ej Java – C# - Ruby
  • 10. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación imperativa: • Los programas son estructurados y paso por paso. • Cada paso realiza un cálculo específico, recupera una entrada o genera una salida. • La abstracción procedimental es un bloque de creación esencial (Uso de procedimientos y funciones) • Maneja sentencias condicionales, asignaciones, bucles o repeticiones y secuencias. • Ejemplos principales: Cobol, Fortran, C, Basic, Pascal.
  • 11. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación orientada a objetos: • El programa es una colección de objetos que interactúan unos con otros trasladándose mensajes que transforman su estado. • El modelado, la clasificación y la herencia de objetos son bloques de creación esenciales. • Es la tendencia más popularizada que existe, gracias sobretodo a la gran difusión de lenguajes como java, C# o PHP, así como por los procesos de desarrollo de software por componentes. • Los lenguajes orientados a objetos principales son: Smalltalk, java, C++ e Eiffel.
  • 12. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación Funcional: • El programa es una colección de funciones matemáticas, cada una de ellas con su entrada (dominio) y su resultado (intervalo). • Las funciones interactúan y se combinan las unas con las otras utilizando condicionales, recursividad y composición funcional. • Sus lenguajes aplican en el dominio de la computación científica así como la inteligencia artificial • Los lenguajes de programación funcional principales son Lisp, Scheme, Haskell y ML.
  • 13. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación Lógica: • El programa es una colección de declaraciones lógicas sobre el resultado que debería conseguir una función, en vez de ¿cómo se debe obtener el resultado? • La ejecución del programa aplica las declaraciones para obtener una serie de soluciones posibles a un problema. • No determinismo, las soluciones a muchos problemas no son únicas, sino múltiples. • El lenguaje de programación más importante es Prolog, aunque SQL también pertenece a este paradigma.
  • 14. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación Guiada por eventos: • El programa es un bucle continuo que responde a los eventos generados en un orden no predecible. • Estos eventos se originan a partir de acciones del usuario en la pantalla (por ejemplo clics de ratón o pulsaciones de teclas) o de otras fuentes. • Se puede pensar que es una tendencia o característica de programación, más que un verdadero paradigma. • Los lenguajes de programación guiada por eventos más importantes incluyen los visuales como visual Basic o visual C++ y java.
  • 15. PARADIGMAS DE LENGUAJES DE PROGRAMACIÓN • Programación Concurrente: • El programa es una colección de procesos cooperativos, que comparten información unos con otros. • Los procesos operan generalmente en forma asíncrona. • También se puede producir el paralelismo en un solo proceso, como el caso de la ejecución en paralelo de las diversas iteraciones de un ciclo. • Los lenguajes de programación concurrentes incluyen SR, Linda y Fortran de alto rendimiento.
  • 16. DOMINIOS DE APLICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN • Entre los dominios de aplicación más comunes de los lenguajes de programación se tienen: • Científica • Sistemas de gestión de información • Inteligencia artificial • Sistemas • Orientada a la web
  • 17. CONSIDERACIONES PARA EL ESTUDIO DE LOS LENGUAJES • Restricciones de arquitectura • Los lenguajes de programación están diseñados para los computadores. • Un lenguaje bien diseñado e implementado puede mejorar mucho la utilidad de un computador en un dominio de aplicación. • La mayoría de los diseños de computadores de las últimas décadas han seguido el modelo «von Neumann». • Muchos lenguajes, como Fortran, Cobol y C, cuadran muy bien en esta arquitectura; otros, como Lisp no. • Cuando se consideran las virtudes de las distintas opciones de diseños de lenguajes, siempre hay una limitante por la necesidad de implementar dichos lenguajes de forma eficiente y efectiva dentro de las restricciones impuestas por las variantes actuales del modelo von Neumann. • La idea de que un buen diseño de lenguaje puede conducir a una arquitectura de computadoras viable radicalmente nueva y comercial probablemente no sea una opción.
  • 18. CONSIDERACIONES PARA EL ESTUDIO DE LOS LENGUAJES • Restricciones contextúales • Los lenguajes no están diseñados sólo para cuadrar dentro de las restricciones de una familia de arquitecturas determinada. • También lo esta para satisfacer otras restricciones impuestas por el contexto en el que se van a utilizar. • El área de aplicación, el sistema operativo, la red y las preferencias de la comunidad de programación. • Algunos lenguajes tienen un diseño de propósito general más intencionado, optando por servir a los intereses. de un gran número de aplicaciones. • Otros lenguajes han sido diseñados para tener una naturaleza mas de propósito especial. • Algunos lenguajes de programación se implementan utilizando un proceso de compilación. • Otros lenguajes se implementan utilizando un proceso interpretativo. • Otros como Java, utilizan un modelo mixto, de compilación «Java byte code» e interpretación «Java Virtual Machine» o JVM. • Un equipo virtual es cualquier modelo abstracto de una computadora que se implementa en software, pero no en hardware.
  • 19. CONSIDERACIONES PARA EL ESTUDIO DE LOS LENGUAJES • Intérpretes y equipos virtuales • A veces, se diseñan los lenguajes de forma que el compilador se escribe sólo una vez utilizando un equipo virtual como equipo objetivo y, después, este equipo virtual se implementa a partir de un intérprete en cada uno de los equipos reales. • Este es el caso de Java, o del Framework .NET. • Cuando seleccionaron este diseño, los diseñadores del lenguaje Java sacrificaron un poco de eficiencia en favor de la flexibilidad y la portabilidad. • Se puede implementar cualquier cambio en las especificaciones del lenguaje Java alterando un solo compilador, en lugar de toda una familia.
  • 20. CONSIDERACIONES PARA EL ESTUDIO DE LOS LENGUAJES • Normalizaciones • Cuando un lenguaje de programación recibe suficiente atención y uso entre los programadores. normalmente comienza el proceso de normalización. • Un esfuerzo para hacer una definición de un lenguaje normalizado independiente del equipo a la que deben adherirse todos los implementadores de dicho lenguaje. • Las organizaciones más importantes que supervisan y mantienen las normalizaciones de los lenguajes de programación son el Instituto de Normalización Nacional Americano (ANSI) y la Organización Internacional de Normalización (ISO). • El proceso de normalización de lenguajes es complejo y lleva su tiempo, incluyendo el largo período en el que una comunidad está ocupada en ello y. normalmente, la voluminosa definición de la normalización y su resultado. • ANSI Cobol (1985) • ISO Fortran; (1997) • ISO Prolog (1995) • ANSI/ISO C (1999) • ANSI Basic (1989) • ANSI/ISO Ada (1995) • ANSI Smalltalk (1998) • ISO Pascal (1990)
  • 21. CONSIDERACIONES PARA EL ESTUDIO DE LOS LENGUAJES • Sistemas heredados • Se ha estimado que el 90 por ciento del tiempo de un programador se aplica al mantenimiento de las aplicaciones ya existentes, o sistemas heredados. • Solo el 10 por ciento se ocupa en el desarrollo de código para aplicaciones nuevas. • Probablemente, la mayor parte del código de los sistemas heredados está escrito en Cobol • El caso de C++, que fue diseñado como una extensión de C para mantener esta compatibilidad. • El diseño de Java se aparta de esta tradición, pese a que gran cantidad de sus características son reminiscencias de las de C++. Como punto central, los diseñadores de Java querían liberar su nuevo lenguaje del soporte de las características menos deseables de C++. así que, sencillamente, las eliminaron. • El resultado fue un lenguaje más sencillo para el desarrollo de aplicaciones moderno, pero cualquier sistema C++ heredado que tengamos que convertir a Java tiene que pasar un proceso de recodificación antes de que se pueda compilar o ejecutar.
  • 23. CUALIDADES DE LOS LENGUAJES DE PROGRAMACIÓN • Criterios para elegir un lenguaje o al momento de escribirlo. • Simplicidad y claridad: • ¿Es fácil para un programador escribir un programa en el lenguaje?, ¿Hasta qué punto es inteligible este programa para un lector promedio?, ¿Es fácil aprender y enseñar el lenguaje?. • Uniones: • Un elemento del lenguaje se une a una propiedad en el momento en que se define dicha propiedad para el. Ej, la unión de una variable con su tipo al declararla. • Los principales momentos de unión de los electos con sus propiedades son:
  • 24. CUALIDADES DE UN LENGUAJE DE PROGRAMACIÓN • Uniones • Momento de definición del lenguaje: Al unir los tipos básicos de datos con las palabras reservadas del lenguaje. • Momento de Implementación del lenguaje: Al unir los valores numéricos con las representaciones del equipo, ej: que los valores enteros se representen en 16 bits. • Momento de escritura del programa: Al unir los nombres de las variables con los tipos de datos y se unen durante todo el tiempo de vida de la variable. • Momento de la compilación y carga del programa: Al unir las variables “estáticas” con las direcciones de memoria fijas. • Momento de ejecución del programa: Cuando las variables se unen con los valores. ( x=3; )
  • 25. CUALIDADES DE UN LENGUAJE DE PROGRAMACIÓN • Ortogonalidad: • ¿Un símbolo o una palabra reservada tienen siempre el mismo significado, independiente del contexto en el que se utilice?, • Fiabilidad de los programas: • ¿El programa se comporta igual cada vez que se ejecuta con los mismos datos de entrada? • Aplicabilidad: • ¿El lenguaje proporciona un soporte adecuado para las aplicaciones del dominio en el que se está usando?.
  • 26. CUALIDADES DE UN LENGUAJE DE PROGRAMACIÓN • Abstracción: • Es una característica fundamental para la reutilización de código, el permitir crear y cargar bibliotecas y librerías agiliza el trabajo de los programadores. Por ejemplo, las librerías de lenguajes como C y Java. • Implementación eficiente: • ¿Permite las construcciones y las características de un lenguaje su implementación practica y eficiente en las plataformas coetáneas?