lenguajes de programación tema 1. introducción y conceptos...

23
Lenguajes de Programación Tema 1. Introducción y conceptos generales Pedro García López [email protected] /

Upload: doankien

Post on 16-Dec-2018

217 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.8 Preguntas

• Evalua los lenguajes del punto anterior respecto a las características del punto 1.2

• Extrae conclusiones de las dos clasificaciones