SlideShare una empresa de Scribd logo
1 de 44
Lenguajes de Programación
Algoritmos y Computación Avanzada
Prof. Eliezer Córdova
Prof. Eliezer Córdova
Lenguajes de Programación
Los lenguajes de Programación son el corazón de
la Ciencia de la Computación.
Son herramientas que usamos no solo para
comunicarnos con las máquinas sino también
con las personas.
“el valor de un lenguaje se debe juzgar según la
forma en que afecta la producción de Software
y a la facilidad con la que puede integrarse a
otras herramientas”
Prof. Eliezer Córdova
Objetivos
Adquirir habilidad de apreciar y evaluar
lenguajes, identificando sus límites y
posibilidades.
Habilidad para elegir, para diseñar,
implementar o utilizar un lenguaje.
Enfatizar la abstracción.
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Aumentar la capacidad para producir software.
– Conocer profundamente las características de los
lenguajes permite aprovechar su potencia y
evitar errores, minimizando esfuerzo
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Mejora la habilidad para desarrollar mejores
algoritmos.
– Aprendemos a elaborar los algoritmos más
eficientes en concordancia con el lenguaje que
estamos utilizando.
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Mejora el uso de su lenguaje de programación
preferido.
– Si se entiende como se implementa cada
característica se mejora la capacidad para escribir
programas eficientes.
– Ejemplo: Orientación a Objetos (Herencia)
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Incrementar el vocabulario
– El lenguaje
• equivale a comunicación.
• es una ayuda y una limitación al pensamiento.
• permite expresar y estructurar el pensamiento
– Incrementamos la capacidad para expresar ideas
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Incrementa el conocimiento de construcciones
posibles.
– Libera la mente para poder pensar en términos del
problema y no de determinado lenguaje.
– Ejemplo: Tratar de resolver todo en termino de las
capacidades de C.
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Permite elegir mejor el lenguaje a utilizar para
cada tarea.
– Conocer las fortalezas y debilidades de los
diferentes lenguajes nos permite saber que
problema podemos resolver más fácilmente con
cada uno y por lo tanto se reduce el esfuerzo de
codificación.
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Hace más fácil aprender nuevos lenguajes de
programación.
– Un conocimiento de la estructura de los lenguajes
de programación reduce considerablemente la
curva de aprendizaje de un lenguaje nuevo.
Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Hace más fácil el diseño e implementación de
lenguajes.
– El programador puede convertirse en diseñador o
implementador de un lenguaje.
– O no necesariamente nuevos lenguajes de
programación, pero cuando programamos muchas
veces necesitamos crear códigos de comunicación.
Prof. Eliezer Córdova
Paradigmas de Lenguajes
Se reconoce generalmente 4 paradigmas de
programación:
– Imperativo (Estructurado)
– Aplicativo (Funcional)
– Orientado a Objetos
– Lógico
Prof. Eliezer Córdova
Lenguajes Imperativos
Su objetivo es entender y definir el estado de la
máquina (conjunto de posiciones de memorias,
cada una conteniendo un valor).
Lenguajes orientados a instrucciones
Prof. Eliezer Córdova
Lenguajes Imperativos
El programa consiste en elaborar un conjunto de
instrucciones para que la máquina llegue a la
respuesta.
Ejemplos: C, Fortran, Pascal, Cobol
Sintaxis: S1, S2, S3, S4, …
Prof. Eliezer Córdova
Lenguajes Imperativos
 Programación: serie de pasos (input, cálculo,
ouput).
 Elementos: abstracción procedural, asignación,
loops, secuencias, condicionales.
Prof. Eliezer Córdova
Lenguajes Funcionales
Su objetivo es entender la función que produciría
la respuesta deseada.
Es orientada hacia la composición de funciones.
Programar consiste en construir la función que
halle la respuesta.
Prof. Eliezer Córdova
Orientados a Objetos
Su objetivo es modelar el problema con
elementos similares a los realmente presentes.
Programar significa generar objetos que
intercambian mensajes entre si para resolver un
problema.
Prof. Eliezer Córdova
Orientados a Objetos
Lenguajes imperativos que unen diseños
aplicativos con sentencias imperativas.
Sintaxis: Conjunto de objetos (clases)
conteniendo datos (concepto imperativo) y
métodos (conceptos aplicativos).
Prof. Eliezer Córdova
Orientados a Objetos
Programación: colección de objetos que
interactúan pasándose mensajes que
transforman estados.
Elementos: modelado de objetos, clases,
herencia, encapsulamiento.
Prof. Eliezer Córdova
Lenguajes Lógicos
Definen reglas para decidir cuando la respuesta
ha sido alcanzada.
Utiliza un conjunto de reglas para deducir los
atributos de la respuesta.
Ejemplos: Prolog
Sintaxis: Regla -> Conclusión
Prof. Eliezer Córdova
Prof. Eliezer Córdova
Facilidad de Escritura
La facilidad de escritura es la medida de cuan fácil
resulta usar un lenguaje para construir soluciones.
Simplicidad
Claridad
Ortogonalidad
Soporte de Abstracción
Prof. Eliezer Córdova
Facilidad de Escritura
Simplicidad
– El lenguaje debería ser lo suficientemente pequeño y simple para
ser entendido en su totalidad
• Un pequeño número de construcciones primitivas.
• Un conjunto consistente de reglas para combinarlas
(ortogonalidad).
Prof. Eliezer Córdova
Facilidad de Escritura
Simplicidad
– ¿Qué tienen de malo los lenguajes “grandes” y “complejos”?
• Contienen tantas características que muchas de ellas
nunca llegan a usarse ni a entenderse.
• La complejidad del lenguaje crece de forma no lineal
con el número de características que incorpora.
Prof. Eliezer Córdova
Facilidad de Escritura
Simplicidad
– Sin embargo,
• El lenguaje más usado (C++) es complejo.
• Uno de los más recomendados (Ada) es grande y
complejo.
• Java, que nació con vocación de ser simple, tiende a
hacerse más grande y complejo.
Prof. Eliezer Córdova
Facilidad de Escritura
Claridad
– Un programador sólo puede escribir programas fiables si entiende
con toda claridad lo que significa (implica) cada una de las
estructuras del lenguaje.
– La especificación del lenguaje y la calidad de su documentación es
absolutamente crítica en este aspecto:
• Debe evitarse cualquier ambigüedad.
• No debe ser necesario escribir y ejecutar fragmentos
de código para descubrir el significado de una
característica del lenguaje.
Prof. Eliezer Córdova
Facilidad de Escritura
Ortogonalidad
– El efecto de la combinación de características debe entenderse
fácilmente y ser predecible.
– Proporciona un mayor grado de generalidad sin restricciones ni
casos especiales.
– Las reglas del lenguaje deben tener las mínimas excepciones
posibles.
– El usuario comprende mejor si tiene un pequeño número de
primitivas y un conjunto consistente de reglas de
combinación.
Prof. Eliezer Córdova
Facilidad de Escritura
 Ortogonalidad
 Si es ortogonal, un lenguaje es fácil de aprender y usar.
 Por ejemplo: Asignación y Tipos
X=5
F(x)=x+3
A[y]=8
Prof. Eliezer Córdova
Facilidad de Escritura
 Ortogonalidad
– ¿Qué tienen de malo la falta de ortogonalidad?
• Que hace imposible deducir nuevas propiedades del lenguaje de
las que ya se conocen.
• Que va en contra de la claridad.
Prof. Eliezer Córdova
Legibilidad
Fácil de leer a las personas (equipo)
SEMANTICA
SINTAXIS
DEFINICION
ESTRUCTURAS DE DATOS
ESTRUCTURAS DE CONTROL
Prof. Eliezer Córdova
Legibilidad
Semántica
– La semántica de un lenguaje especifica el significado
algorítmico de un programa y se define como un
conjunto de reglas que describen el comportamiento de
ese lenguaje en tiempo de ejecución.
Prof. Eliezer Córdova
Legibilidad
Sintaxis
– La sintaxis determina la forma en que se combinan los elementos del
lenguaje para construir sentencias y programas.
– Unas reglas sintácticas adecuadas son fundamentales para que los
programas sean legibles.
• Documentación y comentarios
• Elección de nombres
• Uso de constantes
• If-then-else anidados
• Separación de sentencias
• Indentación
Prof. Eliezer Córdova
Legibilidad
Sintaxis
– Ejemplos de una “mala” sintaxis:
• Restringir el tamaño de los identificadores.
• Uso del símbolo = para realizar asignaciones.
• Uso de llaves {... ...} para delimitar bloques.
Prof. Eliezer Córdova
Legibilidad
Definición del lenguaje
– Precisión en la definición de la sintaxis y de la
semántica
– Ambigüedad: ejemplo, M(i) puede significar un
elemento del arreglo M ó una llamada a la
función M
– Portabilidad
– Definiciones formales
Prof. Eliezer Córdova
Legibilidad
Estructuras de control
– Programación estructurada
Estructuras de datos
– Facilidades para expresar los datos del problema
Prof. Eliezer Córdova
Confiabilidad
 Correcto: cumple con las especificaciones
 Verificación de programas: probar su corrección
 Chequeo de tipos
 Robusto
Prof. Eliezer Córdova
Mantenibilidad
Modificabilidad
Factoreo
Localidad
Prof. Eliezer Córdova
Mantenibilidad
– Modificabiliad: facilidad de introducir cambios
– Factoreo: una sola vez y luego rehusar
– Localidad: el efecto de una característica se
restringirse a una porción local del programa
Prof. Eliezer Córdova
Eficiencia
 Tiempo y Espacio
 Esfuerzo humano
 Optimizable
Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Naturalidad de la aplicación
– La estructura del programa refleja la estructura lógica
del algoritmo.
– Cada lenguaje generalmente se especializa en un
campo de acción determinado y es más fácil resolver
ciertos problemas con él.
Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Facilidad de verificación
– Debe proveer una manera de corroborar que el
programa efectivamente realiza su tarea.
– Una sintaxis sencilla facilita la verificación.
Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Ambiente de programación
– Debe contar con un entorno que facilite la programación
en el lenguaje.
– Generalmente lenguajes no tan buenos, pero que
tienen un buen entorno de programación, son más
usados en el mercado.
Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Portabilidad
– Que tan fácil se puede transportar la aplicación de la
máquina en que se desarrolló a otras máquinas donde
va a ser ejecutada.
– El mejor ejemplo de esto es programación para
Internet.
Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Costo de uso
– Costo de ejecución
– Costo de traducción
– Costo de creación, prueba y uso
– Costo de mantenimiento

Más contenido relacionado

La actualidad más candente

Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)YJGG
 
TIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONTIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONPEDRO Borja
 
Lenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorLenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorAdriana Polly
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Alejandro Perez
 
Libro 1: introduccion a la programacion y su lenguaje
Libro 1: introduccion a la programacion y su lenguajeLibro 1: introduccion a la programacion y su lenguaje
Libro 1: introduccion a la programacion y su lenguajesocrates12854
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionKarol
 
Lenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelLenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelelvin1202
 
Generaciones de los lenguajes de programación
Generaciones de los lenguajes de programaciónGeneraciones de los lenguajes de programación
Generaciones de los lenguajes de programaciónromeprofe
 
Lenguajes de cuarta generacion
Lenguajes de cuarta generacionLenguajes de cuarta generacion
Lenguajes de cuarta generacionAlexander Campues
 
Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajesmafer3388
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.carmenmc2017
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2danny7206
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacionLy Andre
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.dUi velazquez
 
Clasificación de lenguajes de
Clasificación de lenguajes deClasificación de lenguajes de
Clasificación de lenguajes deJoRgEp10
 

La actualidad más candente (20)

Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 
TIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONTIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACION
 
Lenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensambladorLenguaje de máquina y lenguaje ensamblador
Lenguaje de máquina y lenguaje ensamblador
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
 
Libro 1: introduccion a la programacion y su lenguaje
Libro 1: introduccion a la programacion y su lenguajeLibro 1: introduccion a la programacion y su lenguaje
Libro 1: introduccion a la programacion y su lenguaje
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivelLenguaje de programacion de alto nivel
Lenguaje de programacion de alto nivel
 
1er Trabajo
1er Trabajo1er Trabajo
1er Trabajo
 
Generaciones de los lenguajes de programación
Generaciones de los lenguajes de programaciónGeneraciones de los lenguajes de programación
Generaciones de los lenguajes de programación
 
Lenguajes de cuarta generacion
Lenguajes de cuarta generacionLenguajes de cuarta generacion
Lenguajes de cuarta generacion
 
Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajes
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Clasificación de lenguajes de
Clasificación de lenguajes deClasificación de lenguajes de
Clasificación de lenguajes de
 

Similar a Clase 15 06

Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de ProgramacionVelmuz Buzz
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónEliezer Cordova
 
Resumen Capitulo 1 - Sebesta
Resumen Capitulo 1 - Sebesta Resumen Capitulo 1 - Sebesta
Resumen Capitulo 1 - Sebesta Santiago Valdez
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.carmenmc2017
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.carmenmc2017
 
lenguaje especialidad, corpus, LSP
lenguaje especialidad, corpus, LSPlenguaje especialidad, corpus, LSP
lenguaje especialidad, corpus, LSPChelo Vargas
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidadLuisBeltrnAlvinoAlva
 
01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdfrosalesjonathan2024
 
Especialidad de operación de computadoras cetpro pun orufina
Especialidad de  operación de computadoras         cetpro  pun orufinaEspecialidad de  operación de computadoras         cetpro  pun orufina
Especialidad de operación de computadoras cetpro pun orufinarufina
 
Especialidad de operación de computadoras cetpro pun orufina
Especialidad de  operación de computadoras         cetpro  pun orufinaEspecialidad de  operación de computadoras         cetpro  pun orufina
Especialidad de operación de computadoras cetpro pun orufinarufina
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnosticoJavierCR2017
 
Criterio de _____disey=o_e_implementacion_de_los_lenguajes
Criterio de _____disey=o_e_implementacion_de_los_lenguajesCriterio de _____disey=o_e_implementacion_de_los_lenguajes
Criterio de _____disey=o_e_implementacion_de_los_lenguajesBlanca Estrada
 
Diapo2
Diapo2Diapo2
Diapo2Mayra
 
Babel, el lenguaje de la tecnologia
Babel, el lenguaje de la tecnologiaBabel, el lenguaje de la tecnologia
Babel, el lenguaje de la tecnologiaIvnMariano
 

Similar a Clase 15 06 (20)

Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Resumen Capitulo 1 - Sebesta
Resumen Capitulo 1 - Sebesta Resumen Capitulo 1 - Sebesta
Resumen Capitulo 1 - Sebesta
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
Programacion evolucion
Programacion evolucionProgramacion evolucion
Programacion evolucion
 
lenguaje especialidad, corpus, LSP
lenguaje especialidad, corpus, LSPlenguaje especialidad, corpus, LSP
lenguaje especialidad, corpus, LSP
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad
 
01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf01. Lenguajes de programación autor Virtuniversidad.pdf
01. Lenguajes de programación autor Virtuniversidad.pdf
 
Especialidad de operación de computadoras cetpro pun orufina
Especialidad de  operación de computadoras         cetpro  pun orufinaEspecialidad de  operación de computadoras         cetpro  pun orufina
Especialidad de operación de computadoras cetpro pun orufina
 
Especialidad de operación de computadoras cetpro pun orufina
Especialidad de  operación de computadoras         cetpro  pun orufinaEspecialidad de  operación de computadoras         cetpro  pun orufina
Especialidad de operación de computadoras cetpro pun orufina
 
Introducción a la Gerencia Informática
Introducción a la Gerencia InformáticaIntroducción a la Gerencia Informática
Introducción a la Gerencia Informática
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Clasificacion de lenguajes de programacion martha
Clasificacion de lenguajes de programacion marthaClasificacion de lenguajes de programacion martha
Clasificacion de lenguajes de programacion martha
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
Criterio de _____disey=o_e_implementacion_de_los_lenguajes
Criterio de _____disey=o_e_implementacion_de_los_lenguajesCriterio de _____disey=o_e_implementacion_de_los_lenguajes
Criterio de _____disey=o_e_implementacion_de_los_lenguajes
 
Diapo2
Diapo2Diapo2
Diapo2
 
Que es y tipos de programacion
Que es y tipos de programacionQue es y tipos de programacion
Que es y tipos de programacion
 
Babel, el lenguaje de la tecnologia
Babel, el lenguaje de la tecnologiaBabel, el lenguaje de la tecnologia
Babel, el lenguaje de la tecnologia
 

Más de Eliezer Cordova

Más de Eliezer Cordova (20)

Tipos de comunicacion
Tipos de comunicacionTipos de comunicacion
Tipos de comunicacion
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 1
Presentacion 1Presentacion 1
Presentacion 1
 
Introduccion publisher
Introduccion publisherIntroduccion publisher
Introduccion publisher
 
Presentaciones efectivas
Presentaciones efectivasPresentaciones efectivas
Presentaciones efectivas
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Presentacion aula virtual videoconferencia
Presentacion aula virtual videoconferenciaPresentacion aula virtual videoconferencia
Presentacion aula virtual videoconferencia
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0
 
Presentacion uno
Presentacion unoPresentacion uno
Presentacion uno
 
Intro
IntroIntro
Intro
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
2 arboles
2 arboles2 arboles
2 arboles
 
1 árbol
1 árbol1 árbol
1 árbol
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
3 funciones
3 funciones3 funciones
3 funciones
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
1 estructura programa-c
1 estructura programa-c1 estructura programa-c
1 estructura programa-c
 
Introduccion ia
Introduccion iaIntroduccion ia
Introduccion ia
 

Último

30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 

Clase 15 06

  • 1. Lenguajes de Programación Algoritmos y Computación Avanzada Prof. Eliezer Córdova
  • 2. Prof. Eliezer Córdova Lenguajes de Programación Los lenguajes de Programación son el corazón de la Ciencia de la Computación. Son herramientas que usamos no solo para comunicarnos con las máquinas sino también con las personas. “el valor de un lenguaje se debe juzgar según la forma en que afecta la producción de Software y a la facilidad con la que puede integrarse a otras herramientas”
  • 3. Prof. Eliezer Córdova Objetivos Adquirir habilidad de apreciar y evaluar lenguajes, identificando sus límites y posibilidades. Habilidad para elegir, para diseñar, implementar o utilizar un lenguaje. Enfatizar la abstracción.
  • 4. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Aumentar la capacidad para producir software. – Conocer profundamente las características de los lenguajes permite aprovechar su potencia y evitar errores, minimizando esfuerzo
  • 5. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Mejora la habilidad para desarrollar mejores algoritmos. – Aprendemos a elaborar los algoritmos más eficientes en concordancia con el lenguaje que estamos utilizando.
  • 6. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Mejora el uso de su lenguaje de programación preferido. – Si se entiende como se implementa cada característica se mejora la capacidad para escribir programas eficientes. – Ejemplo: Orientación a Objetos (Herencia)
  • 7. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Incrementar el vocabulario – El lenguaje • equivale a comunicación. • es una ayuda y una limitación al pensamiento. • permite expresar y estructurar el pensamiento – Incrementamos la capacidad para expresar ideas
  • 8. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Incrementa el conocimiento de construcciones posibles. – Libera la mente para poder pensar en términos del problema y no de determinado lenguaje. – Ejemplo: Tratar de resolver todo en termino de las capacidades de C.
  • 9. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Permite elegir mejor el lenguaje a utilizar para cada tarea. – Conocer las fortalezas y debilidades de los diferentes lenguajes nos permite saber que problema podemos resolver más fácilmente con cada uno y por lo tanto se reduce el esfuerzo de codificación.
  • 10. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Hace más fácil aprender nuevos lenguajes de programación. – Un conocimiento de la estructura de los lenguajes de programación reduce considerablemente la curva de aprendizaje de un lenguaje nuevo.
  • 11. Prof. Eliezer Córdova ¿Por qué estudiar Lenguajes? Hace más fácil el diseño e implementación de lenguajes. – El programador puede convertirse en diseñador o implementador de un lenguaje. – O no necesariamente nuevos lenguajes de programación, pero cuando programamos muchas veces necesitamos crear códigos de comunicación.
  • 12. Prof. Eliezer Córdova Paradigmas de Lenguajes Se reconoce generalmente 4 paradigmas de programación: – Imperativo (Estructurado) – Aplicativo (Funcional) – Orientado a Objetos – Lógico
  • 13. Prof. Eliezer Córdova Lenguajes Imperativos Su objetivo es entender y definir el estado de la máquina (conjunto de posiciones de memorias, cada una conteniendo un valor). Lenguajes orientados a instrucciones
  • 14. Prof. Eliezer Córdova Lenguajes Imperativos El programa consiste en elaborar un conjunto de instrucciones para que la máquina llegue a la respuesta. Ejemplos: C, Fortran, Pascal, Cobol Sintaxis: S1, S2, S3, S4, …
  • 15. Prof. Eliezer Córdova Lenguajes Imperativos  Programación: serie de pasos (input, cálculo, ouput).  Elementos: abstracción procedural, asignación, loops, secuencias, condicionales.
  • 16. Prof. Eliezer Córdova Lenguajes Funcionales Su objetivo es entender la función que produciría la respuesta deseada. Es orientada hacia la composición de funciones. Programar consiste en construir la función que halle la respuesta.
  • 17. Prof. Eliezer Córdova Orientados a Objetos Su objetivo es modelar el problema con elementos similares a los realmente presentes. Programar significa generar objetos que intercambian mensajes entre si para resolver un problema.
  • 18. Prof. Eliezer Córdova Orientados a Objetos Lenguajes imperativos que unen diseños aplicativos con sentencias imperativas. Sintaxis: Conjunto de objetos (clases) conteniendo datos (concepto imperativo) y métodos (conceptos aplicativos).
  • 19. Prof. Eliezer Córdova Orientados a Objetos Programación: colección de objetos que interactúan pasándose mensajes que transforman estados. Elementos: modelado de objetos, clases, herencia, encapsulamiento.
  • 20. Prof. Eliezer Córdova Lenguajes Lógicos Definen reglas para decidir cuando la respuesta ha sido alcanzada. Utiliza un conjunto de reglas para deducir los atributos de la respuesta. Ejemplos: Prolog Sintaxis: Regla -> Conclusión
  • 22. Prof. Eliezer Córdova Facilidad de Escritura La facilidad de escritura es la medida de cuan fácil resulta usar un lenguaje para construir soluciones. Simplicidad Claridad Ortogonalidad Soporte de Abstracción
  • 23. Prof. Eliezer Córdova Facilidad de Escritura Simplicidad – El lenguaje debería ser lo suficientemente pequeño y simple para ser entendido en su totalidad • Un pequeño número de construcciones primitivas. • Un conjunto consistente de reglas para combinarlas (ortogonalidad).
  • 24. Prof. Eliezer Córdova Facilidad de Escritura Simplicidad – ¿Qué tienen de malo los lenguajes “grandes” y “complejos”? • Contienen tantas características que muchas de ellas nunca llegan a usarse ni a entenderse. • La complejidad del lenguaje crece de forma no lineal con el número de características que incorpora.
  • 25. Prof. Eliezer Córdova Facilidad de Escritura Simplicidad – Sin embargo, • El lenguaje más usado (C++) es complejo. • Uno de los más recomendados (Ada) es grande y complejo. • Java, que nació con vocación de ser simple, tiende a hacerse más grande y complejo.
  • 26. Prof. Eliezer Córdova Facilidad de Escritura Claridad – Un programador sólo puede escribir programas fiables si entiende con toda claridad lo que significa (implica) cada una de las estructuras del lenguaje. – La especificación del lenguaje y la calidad de su documentación es absolutamente crítica en este aspecto: • Debe evitarse cualquier ambigüedad. • No debe ser necesario escribir y ejecutar fragmentos de código para descubrir el significado de una característica del lenguaje.
  • 27. Prof. Eliezer Córdova Facilidad de Escritura Ortogonalidad – El efecto de la combinación de características debe entenderse fácilmente y ser predecible. – Proporciona un mayor grado de generalidad sin restricciones ni casos especiales. – Las reglas del lenguaje deben tener las mínimas excepciones posibles. – El usuario comprende mejor si tiene un pequeño número de primitivas y un conjunto consistente de reglas de combinación.
  • 28. Prof. Eliezer Córdova Facilidad de Escritura  Ortogonalidad  Si es ortogonal, un lenguaje es fácil de aprender y usar.  Por ejemplo: Asignación y Tipos X=5 F(x)=x+3 A[y]=8
  • 29. Prof. Eliezer Córdova Facilidad de Escritura  Ortogonalidad – ¿Qué tienen de malo la falta de ortogonalidad? • Que hace imposible deducir nuevas propiedades del lenguaje de las que ya se conocen. • Que va en contra de la claridad.
  • 30. Prof. Eliezer Córdova Legibilidad Fácil de leer a las personas (equipo) SEMANTICA SINTAXIS DEFINICION ESTRUCTURAS DE DATOS ESTRUCTURAS DE CONTROL
  • 31. Prof. Eliezer Córdova Legibilidad Semántica – La semántica de un lenguaje especifica el significado algorítmico de un programa y se define como un conjunto de reglas que describen el comportamiento de ese lenguaje en tiempo de ejecución.
  • 32. Prof. Eliezer Córdova Legibilidad Sintaxis – La sintaxis determina la forma en que se combinan los elementos del lenguaje para construir sentencias y programas. – Unas reglas sintácticas adecuadas son fundamentales para que los programas sean legibles. • Documentación y comentarios • Elección de nombres • Uso de constantes • If-then-else anidados • Separación de sentencias • Indentación
  • 33. Prof. Eliezer Córdova Legibilidad Sintaxis – Ejemplos de una “mala” sintaxis: • Restringir el tamaño de los identificadores. • Uso del símbolo = para realizar asignaciones. • Uso de llaves {... ...} para delimitar bloques.
  • 34. Prof. Eliezer Córdova Legibilidad Definición del lenguaje – Precisión en la definición de la sintaxis y de la semántica – Ambigüedad: ejemplo, M(i) puede significar un elemento del arreglo M ó una llamada a la función M – Portabilidad – Definiciones formales
  • 35. Prof. Eliezer Córdova Legibilidad Estructuras de control – Programación estructurada Estructuras de datos – Facilidades para expresar los datos del problema
  • 36. Prof. Eliezer Córdova Confiabilidad  Correcto: cumple con las especificaciones  Verificación de programas: probar su corrección  Chequeo de tipos  Robusto
  • 38. Prof. Eliezer Córdova Mantenibilidad – Modificabiliad: facilidad de introducir cambios – Factoreo: una sola vez y luego rehusar – Localidad: el efecto de una característica se restringirse a una porción local del programa
  • 39. Prof. Eliezer Córdova Eficiencia  Tiempo y Espacio  Esfuerzo humano  Optimizable
  • 40. Prof. Eliezer Córdova ¿Qué hace a un lenguaje bueno? Naturalidad de la aplicación – La estructura del programa refleja la estructura lógica del algoritmo. – Cada lenguaje generalmente se especializa en un campo de acción determinado y es más fácil resolver ciertos problemas con él.
  • 41. Prof. Eliezer Córdova ¿Qué hace a un lenguaje bueno? Facilidad de verificación – Debe proveer una manera de corroborar que el programa efectivamente realiza su tarea. – Una sintaxis sencilla facilita la verificación.
  • 42. Prof. Eliezer Córdova ¿Qué hace a un lenguaje bueno? Ambiente de programación – Debe contar con un entorno que facilite la programación en el lenguaje. – Generalmente lenguajes no tan buenos, pero que tienen un buen entorno de programación, son más usados en el mercado.
  • 43. Prof. Eliezer Córdova ¿Qué hace a un lenguaje bueno? Portabilidad – Que tan fácil se puede transportar la aplicación de la máquina en que se desarrolló a otras máquinas donde va a ser ejecutada. – El mejor ejemplo de esto es programación para Internet.
  • 44. Prof. Eliezer Córdova ¿Qué hace a un lenguaje bueno? Costo de uso – Costo de ejecución – Costo de traducción – Costo de creación, prueba y uso – Costo de mantenimiento