SlideShare una empresa de Scribd logo
1 de 20
Lenguajes de Programación
Tema 1. Introducción y conceptos
generales
Dilan caballero
LENGUAJES DE PROGRAMACIÓN
Presentación de los diferentes paradigmas de los
lenguajes de programación. Así como de sus
carácterísticas fundamentales. Introducción a un
lenguaje típico de cada paradigma. Análisis de los
conceptos clave sobre los que se construyen los
diferentes lenguajes. Introducción a las formas de
descripción formal de los lenguajes de programación.
Objetivos
LENGUAJES DE PROGRAMACIÓN
I - Introducción (5h). Conceptos y constructores. Descripciones
formales: sintaxis y semántica. Paradigmas del los lenguajes de
programación. Breve repaso histórico.
II - Paradigmas de los lenguatges de programación (35h).
Paradigma funcional: Haskell. Paradigma lógico: Prolog.
Paradigma imperativo: Ada. Programación orientada a objetos:
Smalltalk, Java.
III - Conceptos y constructores (10h). Valores.
Almacenamiento y variables. Enlaces (bindings). Abstracción.
Encapsulación. Sistema de tipos. Secuenciadores.
Programa
LENGUAJES DE PROGRAMACIÓN
IV - Descripción formal de los lenguajes de programación
(8h). Sintaxis. Semántica. Modelos de los lenguajes de
programación.
V - Conclusiones (2h).
Programa
LENGUAJES DE PROGRAMACIÓN
•“Lenguaje de programación, principios y práctica”,
Segunda edición. Kenneth C Louden. Thomson 2004.
•"Programming Language Concepts and Paradigms
D. A.Watt Ed.Prentice-Hall, 1990
•"Programming Language Syntax and Semantics
D. A.Watt Ed.Prentice-Hall, 1990.
•"Programming in
PROLOG” W. F.Clocksin,
C.S.Mellish Ed.Springer.
•“Introducción a la programación funcional con
Haskell. “ Richard Bird, Ed.Prentice-Hall, 1999.
Bibliografía
Bibliografía
• Construcción de Software Orientado a
Objetos. Bertrand Meyer.
• Java, How to program. 6/E. Deitel & Deitel
Evaluación
• Examen (Febrero) 50 %
– 75% POO, 25% Funcional y Lógico
• Prácticas 50%
– Grupos unipersonales
– Lenguajes: Java, Python, Haskell, Prolog
• Se hace media en Febrero a partir de 4
• Tutorías:
– tutorias_etse@hotmail.com (MSN)
– pgarcia@etse.urv.es
– Despacho 238
Asignaturas relacionadas
• Programación 1
• Programación 2
• Estructuras de datos
• Lenguajes, Gramáticas y autómatas
Indice
1. ¿ Qué es un lenguaje de programación ?
2. Abstracciones
3. Paradigmas de computación
4. Definición del lenguaje
5. Traducción del lenguaje
6. Historia
7. Preguntas
1.1 ¿ Qué es un LP ?
• Computación
– Máquina Turing, tesis de Church
• Legibilidad por parte de la máquina
• Legibilidad por parte del ser humano
Definición: Un lenguaje de programación es un sistema
notacional para describir computaciones de una forma
legible tanto para la máquina como para el ser humano.
1.2 Características
• Eficiencia
• Expresividad
• Capacidad de mantenimiento
• Legibilidad
• Confiabilidad
• Seguridad
• Simplicidad
• Productividad
1.3 Abstracciones
• Clases: Datos y control
• Niveles: básicas, estructuradas y unitarias
Abstracciones de datos:
● Básicas: tipos básicos (enteros, reales, ...)
● Estructuradas: tipos estructurados (arreglos, registros)
● Unitarias: Tipos abstractos de datos (TDAs), paquetes,
módulos, clases, componentes
1.3 Abstracciones
• Abstracciones de control
– Básicas: asignación, goto
– Estructuradas: condicionales e iteradores
– Unitarias: paquetes, módulos, hilos y tareas.
Un lenguaje de programación es completo en Turing
siempre que tenga variables enteras y aritméticas, y que
ejecute enunciados en forma secuencial, incluyendo
enunciados de asignación, selección e iteración.
1.4 Paradigmas de programación
• Imperativo
– modelo de Von Neuman, cuello de botella de
Von Neuman
• Orientado a Objetos
– TDAs, encapsulación, modularidad, reutilización
• Funcional
– noción abstracta de función, cálculo lambda,
recursividad, listas
• Lógico
– Lógica simbólica, programación declarativa
1.5 Definición del lenguaje
• Sintaxis (estructura)
– Gramáticas libres de contexto, estructura léxica,
tokens
• Semántica (significado)
– Lenguaje natural
– Semántica operacional
– Semántica denotacional
1.6 Traducción del lenguaje
• Traductor es un programa que acepta otros
programas escritos en un lenguaje y:
– los ejecuta directamente (interprete)
– los transforma en una forma adecuada para su
ejecución (compilador).
entrada
código
fuente
salida
intérprete
1.6 Traducción
• Pseudointérpretes: intermedio entre
interprete y compilador: lenguajes
intermedios
• Operaciones de un traductor: analizador
léxico (tokens), analizador sintáctico,
analizador semántico, preprocesador
código
fuente
traducción
adicional
compilación
código
objeto
código
ejecutable
1.6 Traducción
• Tiempo de compilación y tiempo de
ejecución
• Propiedades estáticas: tiempo de compilación
• Propiedades dinámicas: tiempo de ejecución
• Recuperación de errores (compilación y
ejecución)
• Eficiencia y optimización (compilación o
ejecución)
1.7 Historia
FORTRAN
AlGOL 60 COBOL
50
60
70
80
90
Simula
Smalltalk
Pascal
Ada
C
PL/I
LISP
ML
Miranda
Prolog
1.7 Historia
1950 1960 1970 1980 1990
Fortran(54)
PL/I(66)
Ada(95)
Java(96)
Basic(66)
C(72)
Pascal(70)
Cobol(58)
Algol(60)
Simula(67) Smalltalk(80)
C++(89)
ENSAMBLADOR
Eiffel (86)
Ada(83)

Más contenido relacionado

Similar a programacion

intro_lenguajes.pptx
intro_lenguajes.pptxintro_lenguajes.pptx
intro_lenguajes.pptxoviroger
 
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
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncionalAshley Stronghold Witwicky
 
Contratos fuertes y debiles presentacion final
Contratos fuertes y debiles presentacion finalContratos fuertes y debiles presentacion final
Contratos fuertes y debiles presentacion finalAtahualpa Acosta
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnosticoJavierCR2017
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónOscar Delgado
 
Clasificacion de los lenguajes federico
Clasificacion de los lenguajes federicoClasificacion de los lenguajes federico
Clasificacion de los lenguajes federicogearsofwarfederico
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionhundertaker46
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacionLy Andre
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22soto0106
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosRicardoAlbertoSalmor
 

Similar a programacion (20)

intro_lenguajes.pptx
intro_lenguajes.pptxintro_lenguajes.pptx
intro_lenguajes.pptx
 
El estudio de los lenguajes de programacion
El estudio de los lenguajes de programacionEl estudio de los lenguajes de programacion
El estudio de los lenguajes de programacion
 
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
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Contratos fuertes y debiles presentacion final
Contratos fuertes y debiles presentacion finalContratos fuertes y debiles presentacion final
Contratos fuertes y debiles presentacion final
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
Diseño de progra tarea
Diseño de progra tareaDiseño de progra tarea
Diseño de progra tarea
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Programacion evolucion
Programacion evolucionProgramacion evolucion
Programacion evolucion
 
Clasificacion de los lenguajes federico
Clasificacion de los lenguajes federicoClasificacion de los lenguajes federico
Clasificacion de los lenguajes federico
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
 
Lenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetosLenguajes de programacion orientada a objetos
Lenguajes de programacion orientada a objetos
 

Último

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 

Último (8)

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 

programacion

  • 1. Lenguajes de Programación Tema 1. Introducción y conceptos generales Dilan caballero
  • 2. LENGUAJES DE PROGRAMACIÓN Presentación de los diferentes paradigmas de los lenguajes de programación. Así como de sus carácterísticas fundamentales. Introducción a un lenguaje típico de cada paradigma. Análisis de los conceptos clave sobre los que se construyen los diferentes lenguajes. Introducción a las formas de descripción formal de los lenguajes de programación. Objetivos
  • 3. LENGUAJES DE PROGRAMACIÓN I - Introducción (5h). Conceptos y constructores. Descripciones formales: sintaxis y semántica. Paradigmas del los lenguajes de programación. Breve repaso histórico. II - Paradigmas de los lenguatges de programación (35h). Paradigma funcional: Haskell. Paradigma lógico: Prolog. Paradigma imperativo: Ada. Programación orientada a objetos: Smalltalk, Java. III - Conceptos y constructores (10h). Valores. Almacenamiento y variables. Enlaces (bindings). Abstracción. Encapsulación. Sistema de tipos. Secuenciadores. Programa
  • 4. LENGUAJES DE PROGRAMACIÓN IV - Descripción formal de los lenguajes de programación (8h). Sintaxis. Semántica. Modelos de los lenguajes de programación. V - Conclusiones (2h). Programa
  • 5. LENGUAJES DE PROGRAMACIÓN •“Lenguaje de programación, principios y práctica”, Segunda edición. Kenneth C Louden. Thomson 2004. •"Programming Language Concepts and Paradigms D. A.Watt Ed.Prentice-Hall, 1990 •"Programming Language Syntax and Semantics D. A.Watt Ed.Prentice-Hall, 1990. •"Programming in PROLOG” W. F.Clocksin, C.S.Mellish Ed.Springer. •“Introducción a la programación funcional con Haskell. “ Richard Bird, Ed.Prentice-Hall, 1999. Bibliografía
  • 6. Bibliografía • Construcción de Software Orientado a Objetos. Bertrand Meyer. • Java, How to program. 6/E. Deitel & Deitel
  • 7. Evaluación • Examen (Febrero) 50 % – 75% POO, 25% Funcional y Lógico • Prácticas 50% – Grupos unipersonales – Lenguajes: Java, Python, Haskell, Prolog • Se hace media en Febrero a partir de 4 • Tutorías: – tutorias_etse@hotmail.com (MSN) – pgarcia@etse.urv.es – Despacho 238
  • 8. Asignaturas relacionadas • Programación 1 • Programación 2 • Estructuras de datos • Lenguajes, Gramáticas y autómatas
  • 9. Indice 1. ¿ Qué es un lenguaje de programación ? 2. Abstracciones 3. Paradigmas de computación 4. Definición del lenguaje 5. Traducción del lenguaje 6. Historia 7. Preguntas
  • 10. 1.1 ¿ Qué es un LP ? • Computación – Máquina Turing, tesis de Church • Legibilidad por parte de la máquina • Legibilidad por parte del ser humano Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano.
  • 11. 1.2 Características • Eficiencia • Expresividad • Capacidad de mantenimiento • Legibilidad • Confiabilidad • Seguridad • Simplicidad • Productividad
  • 12. 1.3 Abstracciones • Clases: Datos y control • Niveles: básicas, estructuradas y unitarias Abstracciones de datos: ● Básicas: tipos básicos (enteros, reales, ...) ● Estructuradas: tipos estructurados (arreglos, registros) ● Unitarias: Tipos abstractos de datos (TDAs), paquetes, módulos, clases, componentes
  • 13. 1.3 Abstracciones • Abstracciones de control – Básicas: asignación, goto – Estructuradas: condicionales e iteradores – Unitarias: paquetes, módulos, hilos y tareas. Un lenguaje de programación es completo en Turing siempre que tenga variables enteras y aritméticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignación, selección e iteración.
  • 14. 1.4 Paradigmas de programación • Imperativo – modelo de Von Neuman, cuello de botella de Von Neuman • Orientado a Objetos – TDAs, encapsulación, modularidad, reutilización • Funcional – noción abstracta de función, cálculo lambda, recursividad, listas • Lógico – Lógica simbólica, programación declarativa
  • 15. 1.5 Definición del lenguaje • Sintaxis (estructura) – Gramáticas libres de contexto, estructura léxica, tokens • Semántica (significado) – Lenguaje natural – Semántica operacional – Semántica denotacional
  • 16. 1.6 Traducción del lenguaje • Traductor es un programa que acepta otros programas escritos en un lenguaje y: – los ejecuta directamente (interprete) – los transforma en una forma adecuada para su ejecución (compilador). entrada código fuente salida intérprete
  • 17. 1.6 Traducción • Pseudointérpretes: intermedio entre interprete y compilador: lenguajes intermedios • Operaciones de un traductor: analizador léxico (tokens), analizador sintáctico, analizador semántico, preprocesador código fuente traducción adicional compilación código objeto código ejecutable
  • 18. 1.6 Traducción • Tiempo de compilación y tiempo de ejecución • Propiedades estáticas: tiempo de compilación • Propiedades dinámicas: tiempo de ejecución • Recuperación de errores (compilación y ejecución) • Eficiencia y optimización (compilación o ejecución)
  • 19. 1.7 Historia FORTRAN AlGOL 60 COBOL 50 60 70 80 90 Simula Smalltalk Pascal Ada C PL/I LISP ML Miranda Prolog
  • 20. 1.7 Historia 1950 1960 1970 1980 1990 Fortran(54) PL/I(66) Ada(95) Java(96) Basic(66) C(72) Pascal(70) Cobol(58) Algol(60) Simula(67) Smalltalk(80) C++(89) ENSAMBLADOR Eiffel (86) Ada(83)