stringtranslate.com

Teoría del lenguaje de programación

La letra griega minúscula λ ( lambda ) es un símbolo no oficial del campo de la teoría del lenguaje de programación. [ cita necesaria ] Este uso se deriva del cálculo lambda , un modelo de cálculo introducido por Alonzo Church en la década de 1930 y ampliamente utilizado por los investigadores de lenguajes de programación. Adorna la portada [1] del texto clásico Estructura e interpretación de programas de computadora , y el título de los llamados Lambda Papers de 1975 a 1980, escritos por Gerald Jay Sussman y Guy Steele , los desarrolladores del lenguaje de programación Scheme . [ jerga ]

La teoría del lenguaje de programación ( PLT ) es una rama de la informática que se ocupa del diseño, implementación, análisis, caracterización y clasificación de lenguajes formales conocidos como lenguajes de programación . La teoría del lenguaje de programación está estrechamente relacionada con otros campos, incluidas las matemáticas , la ingeniería de software y la lingüística . Hay una serie de conferencias y revistas académicas en el área.

Historia

En cierto modo, la historia de la teoría de los lenguajes de programación es anterior incluso al desarrollo de los propios lenguajes de programación. El cálculo lambda , desarrollado por Alonzo Church y Stephen Cole Kleene en la década de 1930, es considerado por algunos como el primer lenguaje de programación del mundo, aunque su objetivo era modelar la computación en lugar de ser un medio para que los programadores describieran algoritmos a un sistema informático. . Se ha descrito que muchos lenguajes de programación funcionales modernos proporcionan una "fina capa" sobre el cálculo lambda, [2] y muchos se describen fácilmente en términos de él.

El primer lenguaje de programación que se inventó fue Plankalkül , que fue diseñado por Konrad Zuse en la década de 1940, pero no se conoció públicamente hasta 1972 (y no se implementó hasta 1998). El primer lenguaje de programación de alto nivel ampliamente conocido y exitoso fue Fortran , desarrollado entre 1954 y 1957 por un equipo de investigadores de IBM liderados por John Backus . El éxito de FORTRAN llevó a la formación de un comité de científicos para desarrollar un lenguaje informático "universal"; el resultado de su esfuerzo fue ALGOL 58 . Por otra parte, John McCarthy del MIT desarrolló Lisp , el primer lenguaje con origen académico que tuvo éxito. Con el éxito de estos esfuerzos iniciales, los lenguajes de programación se convirtieron en un tema activo de investigación en la década de 1960 y más allá.

Línea de tiempo

Algunos otros eventos clave en la historia de la teoría de los lenguajes de programación desde entonces:

década de 1950
década de 1960
década de 1970
década de 1980
década de 1990

Subdisciplinas y campos relacionados

Hay varios campos de estudio que se encuentran dentro de la teoría de los lenguajes de programación o que tienen una profunda influencia en ella; muchos de ellos tienen una superposición considerable. Además, PLT hace uso de muchas otras ramas de las matemáticas , incluida la teoría de la computabilidad , la teoría de categorías y la teoría de conjuntos .

Semántica formal

La semántica formal es la especificación formal del comportamiento de los programas informáticos y los lenguajes de programación. Tres enfoques comunes para describir la semántica o "significado" de un programa de computadora son la semántica denotacional , la semántica operativa y la semántica axiomática .

Teoría de tipos

La teoría de tipos es el estudio de los sistemas de tipos ; que son "un método sintáctico manejable para demostrar la ausencia de ciertos comportamientos del programa clasificando frases según los tipos de valores que calculan". [4] Muchos lenguajes de programación se distinguen por las características de sus sistemas de tipos.

Análisis y transformación del programa.

El análisis de programas es el problema general de examinar un programa y determinar sus características clave (como la ausencia de clases de errores de programa ). La transformación de programas es el proceso de transformar un programa de una forma (lenguaje) a otra.

Análisis comparativo del lenguaje de programación.

El análisis comparativo de lenguajes de programación busca clasificar los lenguajes de programación en diferentes tipos en función de sus características; Las categorías amplias de lenguajes de programación a menudo se conocen como paradigmas de programación .

Genérico y metaprogramación

La metaprogramación es la generación de programas de orden superior que, cuando se ejecutan, producen como resultado programas (posiblemente en un idioma diferente o en un subconjunto del idioma original).

Idiomas específicos del dominio

Los lenguajes de dominio específico son lenguajes construidos para resolver eficientemente problemas de una parte particular del dominio.

Construcción del compilador

La teoría del compilador es la teoría de la escritura de compiladores (o, más generalmente, traductores ); programas que traducen un programa escrito en un idioma a otro formato. Las acciones de un compilador tradicionalmente se dividen en análisis de sintaxis ( escaneo y análisis ), análisis semántico (determinar qué debe hacer un programa), optimización (mejorar el rendimiento de un programa según lo indicado por alguna métrica; generalmente velocidad de ejecución) y generación de código. (generación y salida de un programa equivalente en algún idioma de destino; a menudo el conjunto de instrucciones de una CPU).

Sistemas en tiempo de ejecución

Los sistemas en tiempo de ejecución se refieren al desarrollo de entornos de ejecución de lenguajes de programación y sus componentes, incluidas máquinas virtuales , recolección de basura e interfaces de funciones externas .

Revistas, publicaciones y congresos.

Las conferencias son el lugar principal para presentar investigaciones en lenguajes de programación. Las conferencias más conocidas incluyen el Simposio sobre principios de lenguajes de programación (POPL), Diseño e implementación de lenguajes de programación (PLDI), la Conferencia internacional sobre programación funcional (ICFP), la Conferencia internacional sobre programación, sistemas, lenguajes y aplicaciones orientados a objetos ( OOPSLA) y la Conferencia Internacional sobre Soporte Arquitectónico para Lenguajes de Programación y Sistemas Operativos (ASPLOS) .

Las revistas notables que publican investigaciones sobre PLT incluyen ACM Transactions on Programming Languages ​​and Systems (TOPLAS), Journal of Functional Programming (JFP), Journal of Functional and Logic Programming y Higher-Order and Symbolic Computation .

Ver también

Referencias

  1. ^ Abelson, Harold (1996). Estructura e Interpretación de Programas Informáticos. Gerald Jay Sussman, Julie Sussman (2ª ed.). Cambridge, Massachusetts: MIT Press. ISBN 0-262-01153-0. OCLC  34576857.
  2. ^ "Modelos de computación". wiki.c2.com . 3 de diciembre de 2014. Archivado desde el original el 30 de noviembre de 2020.
  3. ^ C. Böhm y W. Gross (1996). Introducción al CUCH. En ER Caianiello (ed.), Teoría de los autómatas , p. 35-64/
  4. ^ Benjamín C. Pierce. 2002. Tipos y lenguajes de programación. MIT Press, Cambridge, Massachusetts, EE.UU.

Otras lecturas

enlaces externos