Lenguajes de programación: Paradigmas de Programación

of 28/28
Lenguajes de Programación Paradigmas de Programación Autor(es ): Mtr. Luis Fernando Aguas
  • date post

    13-Jan-2017
  • Category

    Automotive

  • view

    128
  • download

    6

Embed Size (px)

Transcript of Lenguajes de programación: Paradigmas de Programación

Trabajo Final Empresa Pilanga

Lenguajes de ProgramacinParadigmas de ProgramacinAutor(es):Mtr. Luis Fernando Aguas

Indice Qu es un lenguaje de programacin ?AbstraccionesParadigmas de computacinDefinicin del lenguajeTraduccin del lenguajeHistoriaPreguntas

1.1 Qu es un LP ?ComputacinMquina Turing, tesis de ChurchLegibilidad por parte de la mquinaLegibilidad por parte del ser humano Definicin: Un lenguaje de programacin es un sistema notacional para describir computaciones de una forma legible tanto para la mquina como para el ser humano.

1.2 CaractersticasEficienciaExpresividadCapacidad de mantenimientoLegibilidadConfiabilidad SeguridadSimplicidadProductividad

1.3 Abstracciones Clases: Datos y controlNiveles: bsicas, estructuradas y unitariasAbstracciones de datos:

Bsicas: tipos bsicos (enteros, reales, ...)Estructuradas: tipos estructurados (arreglos, registros)Unitarias: Tipos abstractos de datos (TDAs), paquetes, mdulos, clases, componentes

1.3 AbstraccionesAbstracciones de controlBsicas: asignacin, gotoEstructuradas: condicionales e iteradoresUnitarias: paquetes, mdulos, hilos y tareas.Un lenguaje de programacin es completo en Turing siempre que tenga variables enteras y aritmticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignacin, seleccin e iteracin.

1.4 Paradigmas de programacinImperativomodelo de Von Neuman, cuello de botella de Von NeumanOrientado a ObjetosTDAs, encapsulacin, modularidad, reutilizacinFuncional nocin abstracta de funcin, clculo lambda, recursividad, listasLgicoLgica simblica, programacin declarativa

Paradigmas de LenguajesSe reconoce generalmente 4 paradigmas de programacin:Imperativo (Estructurado)Aplicativo (Funcional)Orientado a ObjetosLgico

Lenguajes ImperativosSu objetivo es entender y definir el estado de la mquina (conjunto de posiciones de memorias, cada una conteniendo un valor).Lenguajes orientados a instrucciones El programa consiste en elaborar un conjunto de instrucciones para que la mquina llegue a la respuesta.Ejemplos: C, Fortran, Pascal, CobolSintaxis: S1, S2, S3, S4,

Lenguajes ImperativosProgramacin: serie de pasos (input, clculo, ouput).Elementos: abstraccin procedural, asignacin, loops, secuencias, condicionales.

Lenguajes FuncionalesSu objetivo es entender la funcin que producira la respuesta deseada.Es orientada hacia la composicin de funciones.Programar consiste en construir la funcin que halle la respuesta.Ejemplos: ML, Lisp, Scheme, Haskell Sintaxis: F1(F2(F3(x)))

Lenguajes FuncionalesProgramacin: coleccin de funciones que se combinan en formas complejas para construir nuevas funciones.Elementos: alto orden, composicin, recursin.

Orientados a ObjetosSu 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.Ejemplos: Smalltalk, C++, Java, Squeak, C#Sintxis: O1 ->mensaje-> O2.

Orientados a ObjetosLenguajes imperativos que unen diseos aplicativos con sentencias imperativas.Sintaxis: Conjunto de objetos (clases) conteniendo datos (concepto imperativo) y mtodos (conceptos aplicativos).Programacin: coleccin de objetos que interactan pasndose mensajes que transforman estados.Elementos: modelado de objetos, clases, herencia, encapsulamiento.

Lenguajes LgicosDefinen reglas para decidir cuando la respuesta ha sido alcanzada.Utiliza un conjunto de reglas para deducir los atributos de la respuesta.Ejemplos: PrologSintaxis: Regla -> Conclusin

1.5 Definicin del lenguajeSintaxis (estructura)Gramticas libres de contexto, estructura lxica, tokensSemntica (significado)Lenguaje naturalSemntica operacionalSemntica denotacional

1.6 Traduccin del lenguajeTraductor es un programa que acepta otros programas escritos en un lenguaje y:los ejecuta directamente (interprete)los transforma en una forma adecuada para su ejecucin (compilador).entradacdigo fuentesalidaintrprete

1.6 TraduccinPseudointrpretes: intermedio entre interprete y compilador: lenguajes intermediosOperaciones de un traductor: analizador lxico (tokens), analizador sintctico, analizador semntico, preprocesadorcdigo fuentetraduccinadicionalcompilacin

cdigo objeto

cdigo ejecutable

1.6 TraduccinTiempo de compilacin y tiempo de ejecucinPropiedades estticas: tiempo de compilacinPropiedades dinmicas: tiempo de ejecucinRecuperacin de errores (compilacin y ejecucin)Eficiencia y optimizacin (compilacin o ejecucin)

1.7 HistoriaFORTRAN

AlGOL 60 COBOL

5060708090SimulaSmalltalkPascalAdaCPL/ILISPMLMirandaProlog

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)

Qu hace a un lenguaje bueno?Naturalidad de la aplicacinLa estructura del programa refleja la estructura lgica del algoritmo.Cada lenguaje generalmente se especializa en un campo de accin determinado y es ms fcil resolver ciertos problemas con l.

Qu hace a un lenguaje bueno?Facilidad de verificacinDebe proveer una manera de corroborar que el programa efectivamente realiza su tarea.Una sintaxis sencilla facilita la verificacin.

Qu hace a un lenguaje bueno?Ambiente de programacinDebe contar con un entorno que facilite la programacin en el lenguaje.Generalmente lenguajes no tan buenos, pero que tienen un buen entorno de programacin, son ms usados en el mercado.

Qu hace a un lenguaje bueno?PortabilidadQue tan fcil se puede transportar la aplicacin de la mquina en que se desarroll a otras mquinas donde va a ser ejecutada.El mejor ejemplo de esto es programacin para Internet.

Qu hace a un lenguaje bueno?Costo de usoCosto de ejecucinCosto de traduccinCosto de creacin, prueba y usoCosto de mantenimiento