lenguajes de programación tema 1. introducción y conceptos...
TRANSCRIPT
![Page 1: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/1.jpg)
Lenguajes de ProgramaciónTema 1. Introducción y
conceptos generales
Pedro García Ló[email protected]/
![Page 2: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/2.jpg)
Copyright
• © University Rovira i Virgili
• Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; provided its original author is mentioned and the link to http://libre.act-europe.fr/ is kept at the bottom of every non-title slide. A copy of the license is available at:
• http://www.fsf.org/licenses/fdl.html
![Page 3: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/3.jpg)
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
![Page 4: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/4.jpg)
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
![Page 5: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/5.jpg)
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
![Page 6: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/6.jpg)
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
![Page 7: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/7.jpg)
Bibliografía
• Construcción de Software Orientado a Objetos. Bertrand Meyer.
• Java, How to program. 6/E. Deitel & Deitel
![Page 8: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/8.jpg)
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:
– [email protected] (MSN)– [email protected]– Despacho 238
![Page 9: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/9.jpg)
Asignaturas relacionadas
• Programación 1 • Programación 2• Estructuras de datos• Lenguajes, Gramáticas y autómatas
![Page 10: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/10.jpg)
Indice1. ¿ Qué es un lenguaje de programación ?2. Abstracciones3. Paradigmas de computación4. Definición del lenguaje5. Traducción del lenguaje6. Historia7. Preguntas
![Page 11: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/11.jpg)
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.
![Page 12: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/12.jpg)
1.2 Características• Eficiencia• Expresividad• Capacidad de mantenimiento• Legibilidad• Confiabilidad • Seguridad• Simplicidad• Productividad
![Page 13: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/13.jpg)
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
![Page 14: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/14.jpg)
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.
![Page 15: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/15.jpg)
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
![Page 16: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/16.jpg)
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
![Page 17: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/17.jpg)
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
salidaintérprete
![Page 18: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/18.jpg)
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ónadicional
compilación
código objeto
código ejecutable
![Page 19: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/19.jpg)
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)
![Page 20: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/20.jpg)
1.7 Historia
FORTRAN
AlGOL 60 COBOL
50
60
70
80
90
SimulaSmalltalk
Pascal
AdaC
PL/I
LISP
ML
Miranda
Prolog
![Page 21: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/21.jpg)
1.7 Historia1950 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)
![Page 22: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/22.jpg)
1.8 Preguntas
• Clasifica los siguientes lenguajes (C, Ada, C++, Java, LISP, Prolog, Visual Basic, JavaScript, C#, PHP) en base a :– Paradigma– tipos de traductor (compilador, interprete,
pseudointérprete)– Propiedades estáticas y dinámicas– Eficiencia
• Extraed conclusiones de esta clasificación
![Page 23: Lenguajes de Programación Tema 1. Introducción y conceptos …deim.urv.cat/~pgarcia/LP/ppt2005/tema1.ppt · PPT file · Web viewLenguajes de Programación Tema 1. Introducción](https://reader031.vdocuments.site/reader031/viewer/2022022716/5c16248e09d3f28f0a8c0659/html5/thumbnails/23.jpg)
1.8 Preguntas
• Evalua los lenguajes del punto anterior respecto a las características del punto 1.2
• Extrae conclusiones de las dos clasificaciones