Descargar

Introducción y conceptos generales a lenguajes de programación

Enviado por Pablo Turmero


    edu.red

    LENGUAJES DE PROGRAMACIÓN (Gp:) 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.

    (Gp:) Objetivos

    edu.red

    Bibliografía Construcción de Software Orientado a Objetos. Bertrand Meyer. Java, How to program. 6/E. Deitel & Deitel

    edu.red

    Indice ¿ Qué es un lenguaje de programación ? Abstracciones Paradigmas de computación Definición del lenguaje Traducción del lenguaje Historia Preguntas

    edu.red

    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.

    edu.red

    1.2 Características Eficiencia Expresividad Capacidad de mantenimiento Legibilidad Confiabilidad Seguridad Simplicidad Productividad

    edu.red

    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

    edu.red

    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.

    edu.red

    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

    edu.red

    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

    edu.red

    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

    edu.red

    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

    edu.red

    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)

    edu.red

    (Gp:) 1.7 Historia

    FORTRAN

    AlGOL 60 COBOL 50 60 70 80 90 Simula Smalltalk Pascal Ada C PL/I LISP ML Miranda Prolog

    edu.red

    1.7 Historia (Gp:) 1950

    (Gp:) 1960

    (Gp:) 1970

    (Gp:) 1980

    (Gp:) 1990

    (Gp:) Fortran(54)

    (Gp:) PL/I(66)

    (Gp:) Ada(95)

    (Gp:) Java(96)

    (Gp:) Basic(66)

    (Gp:) C(72)

    (Gp:) Pascal(70)

    (Gp:) Cobol(58)

    (Gp:) Algol(60)

    (Gp:) Simula(67)

    (Gp:) Smalltalk(80)

    (Gp:) C++(89)

    ENSAMBLADOR (Gp:) Eiffel (86)

    (Gp:) Ada(83)

    edu.red

    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

    edu.red

    1.8 Preguntas Evalua los lenguajes del punto anterior respecto a las características del punto 1.2 Extrae conclusiones de las dos clasificaciones