You are on page 1of 4

Teora de lenguajes de programacin

1
Teora de lenguajes de programacin
La teora de lenguajes de programacin es una rama de la informtica que se encarga del diseo, implementacin,
anlisis, caracterizacin y clasificacin de lenguajes de programacin y sus caractersticas. Es un campo
multi-disciplinar, dependiendo tanto de (y en algunos casos afectando) matemticas, ingeniera del software,
lingstica, e incluso ciencias cognitivas. Es una rama bien reconocida de la informtica, y a fecha de 2006, un rea
activa de investigacin, con resultados publicados en un gran nmero de revistas dedicadas a la PLT, as como en
general en publicaciones de informtica e ingeniera.La mayora de los programas de los estudiantes universitarios
de informtica requieren trabajar en este tema.
Un smbolo no oficial de la teora de lenguajes de programacin es la letra griega lambda en minsculas. Este uso
deriva del clculo lambda, un modelo computacional ampliamente usado por investigadores de lenguajes de
programacin. Muchos textos y artculos sobre programacin y lenguajes de programacin utilizan lambda de una u
otra manera. Ilustra la portada del texto clsico Estructura e Interpretacin de Programas de Ordenador, y el ttulo
de muchos de los llamados Artculos Lambda, escritos por Gerald Jay Sussman y Guy Steele, creadores del lenguaje
de programacin Scheme. Un sitio muy conocido sobre teora de lenguajes de programacin se llama Lambda the
Ultimate (Lambda el primordial), en honor al trabajo de Sussman y Steele.
Historia
Cuadro cronolgico y taxonmico de los lenguajes de programacin.
Desde algunos puntos de vista, la historia de
la teora de lenguajes de programacin
precede incluso al desarrolllo de los propios
lenguajes de programacin. El clculo
lambda, desarrollado por Alonzo Church,
Max HL. Solis Villareal y Stephen Cole
Kleene en la dcada de 1930, es considerado
ser uno de los primeros lenguajes de
programacin del mundo, incluso pese a que
tena intencin de modelar la computacin
ms que ser un medio para que los
programadores describan algoritmos para un
sistema informtico. Muchos lenguajes de
programacin funcional se han caracterizado
por proveer una "fina apariencia" al clculo
lambda [1], y muchos se describen en sus
trminos.
El primer lenguaje de programacin (como
tal) que se propuso fue Plankalkl, que fue
diseado por Konrad Zuse en los aos 40,
pero no fue conocido pblicamente hasta
1972 (y no implementado hasta 2000, cinco
aos despus de la muerte de Zuse). El
primer lenguaje de programacin ampliamente conocido y exitoso fue Fortran, desarrollado entre 1954 y 1957 por
un equipo de ivestigadores en IBM liderados por John Backus. El xito de FORTRAN condujo a la creacin de un
comit de cientficos para desarrollar un lenguaje de programacin "universal"; el resultado de su esfuerzo fue
ALGOL 58. Separadamente, John McCarthy del MIT desarroll el lenguaje de programacin Lisp (basado en el
Teora de lenguajes de programacin
2
clculo Lambda), el primer lenguaje con orgenes acadmicos en conseguir el xito. Con el triunfo de estos esfuerzos
iniciales, los lenguajes de programacin se convirtieron en un tema candente en la investigacin en la dcada de
1960 y en adelante.
Algunos otros eventos claves en la historia de la teora de lenguajes de programacin desde entonces:
En la dcada de 1950, Noam Chomsky desarroll la Jerarqua de Chomsky en el campo de la lingstica; un
descubrimiento que impact directamente a la teora de lenguajes de programacin y otras ramas de la
informtica.
En la dcada de 1960, el lenguaje Simula fue desarrollado por Ole-Johan Dahl y Kristen Nygaard; muchos
consideran que es el primero lenguaje orientado a objetos; Simula tambin introdujo el concepto de corrutinas.
Durante 1970:
Un pequeo equipo de cientfico en Xerox PARC encabezado por Alan Kay elaboran Smalltalk, un lenguaje
orientado a objetos muy conocido por su novedoso (hasta ese momento desconocido) entorno de desarrollo.
Sussman y Steele desarrollan el lenguaje de programacin Scheme, un dialecto de Lisp que incorpora mbitos
lxicos, un espacio de nombres unificado, y elementos del modelo Actor incluyendo continuaciones de primera
clase.
Backus, en la conferencia del Premio Turing de 1977, asedi el estado actual de los lenguajes industriales y
propuso una nueva clase de lenguajes de programacin ahora conocidos como lenguajes de programacin
funcional.
La aparicin del process calculi, como el clculo de sistemas comunicantes de Robin Milner, y el modelo de
Comunicacin secuencial de procesos de C. A. R. Hoare, as como modelos similar de concurrencia como el
Modelo Actor de Carl Hewitt.
La aplicacin de la teora de tipos como una disciplina a los lenguajes de programacin, liderada por Milner;
esta aplicacin ha conducido a un tremendo avance en la teora de tipos en cuestin de aos.
En la dada de 1990:
Philip Wadler introdujo el uso de monads para estructurar programas escritos en lenguajes de programacin
funcional.
Subdisciplinas y campos relacionados
Hay varios campos de estudio que o bien caen dentro de la teora de lenguajes de programacin, o bien tienen una
profunda influencia en ella; muchos de estos se superponen considerablemente.
Teora de los compiladores es la base formal sobre la escritura de compiladores (o ms generalmente
traductores); programas que traducen un programa escrito en un lenguaje a otra forma. Las acciones de un
compilador se dividen tradicionalmente en anlisis sintctico (escanear y parsear), anlisis semntico
(determinando que es lo que debera de hacer un programa), optimizacin (mejorando el rendimiento indicado por
cierta medida, tpicamente la velocidad de ejecucin) y generacin de cdigo (generando la salida de un
programa equivalente en el lenguaje deseado; a menudo el set de instrucciones de una CPU).
La Teora de tipos es el estudio de sistemas de tipos, que son "mtodos sintcticos tratables para proveer la
ausencia de ciertos comportamientos de programa mediante la clasificacin de frases segn los tipos de valores
que computan." (Types and Programming Languages, MIT Press, 2002). Muchos lenguajes de programacin se
distinguen por las caractersticas de sus sistemas de tipos.
La Semntica formal es la especificacin formar del comportamiento de programas de ordenador y lenguajes de
programacin.
La Transformacin de programas es el proceso de transformar un programa de una forma (lenguaje) a otra forma;
el anlisis de programas es problema general de examinar un programa mediante la determinacin de sus
caractersticas clave (como la ausencia de clases de errores de programa).
Teora de lenguajes de programacin
3
Sistemas en tiempo de ejecucin se refiere al desarrollo de entornos runtime para lenguajes de programacin y sus
componentes, incluyendo mquinas virtuales, recoleccin de basura, e interfaces para funciones externas.
Anlisis comparativo de lenguajes de programacin busca clasificar los lenguajes de programacin en
diferentes tipos basados en sus caractersticas; amplias categoras de diferentes lenguajes de programacin se
conocen frecuentemente como paradigmas de computacin.
Metaprogramacin es la generacin de programas de mayor orden que, cuando se ejecutan, producen programas
(posiblemente en un lenguaje diferente, o en un subconjunto del lenguaje original) como resultado.
Lenguajes dedicados son lenguajes construidos para resolver problemas en un dominio de problemas en particular
de manera eficiente.
Adems, PLT hace uso de muchas otras ramas de las matemticas, ingeniera del software, lingstica, e incluso
ciencias cognitivas
Revistas y publicaciones especficas sobre PLT
Entre las revistas que publican investigacin sobre la teora de lenguajes de programacin estn:
ACM Transactions on Programming Languages and Systems [2]
Computer Languages, Systems, and Structures [3]
Journal of Functional Programming, The
Journal of Functional and Logic Programming, The
Journal of Symbolic Computation, The
Theoretical Computer Science
Una bibliografa ms completa est disponible aqu
[4]
; ver tambin la siguiente lista de publicaciones sobre
informtica.
Enlaces externos
The History of Haskell
[5]
Computer Languages History
[6]
Frank Atanassow's PLT Online
[7]
Programming Language Research
[8]
Types and Programming Languages by Benjamin Pierce (MIT Press 2002) [9]
Programming Language Pragmatics, 2nd Edition by Michael Scott (Morgan-Kaufmann, 2006) [10]
Essentials of Programming Languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes (MIT
Press 2001) [11]
Referencias
[1] http:/ / www. c2. com/ cgi/ wiki?ModelsOfComputation
[2] http:/ / www. cs. wustl.edu/ ~toplas/
[3] http:/ / www. elsevier. com/ wps/ find/ journaldescription. cws_home/ 638299/ description
[4] http:/ / www. disi. unige. it/ research/ Categorical_semantics/ language/ publications. html
[5] http:/ / www. haskell.org/ haskell-history.html
[6] http:/ / www. levenez.com/ lang/ history. html
[7] http:/ / homepages.cwi.nl/ ~atanasso/ ref
[8] http:/ / www. cs. cmu. edu/ afs/ cs.cmu.edu/ user/ mleone/ web/ language-research. html
[9] http:/ / www. cis. upenn.edu/ ~bcpierce/ tapl/ main. html
[10] http:/ / www.cs. rochester.edu/ ~scott/ pragmatics/
[11] http:/ / www.cs. indiana.edu/ eopl/
Fuentes y contribuyentes del artculo
4
Fuentes y contribuyentes del artculo
Teora de lenguajes de programacin Fuente: http://es.wikipedia.org/w/index.php?oldid=73317245 Contribuyentes: Betomorales, Biasoli, Ciencia Al Poder, Ctrl Z, Dodo, Dromero, Edulix,
GermanX, Plux, Queninosta, Rimac, RoyFocker, Technopat, 18 ediciones annimas
Fuentes de imagen, Licencias y contribuyentes
Archivo:TaxonomyofProgrammingLanguages.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:TaxonomyofProgrammingLanguages.png Licencia: Creative Commons
Attribution 2.5 Contribuyentes: JohnManuel
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

You might also like