Articulo de referencia

TXL (lenguaje de programación)

[[James Cordy]]"},"developer":{"wt":"[[James Cordy]] Charles Halpern-Hamu Ian Carmichael Eric Promislow"}},"i":0}}]}"> TXL es un lenguaje de programación de propósito especial d...

TXL es un lenguaje de programación de propósito especial diseñado originalmente por Charles Halpern-Hamu y James Cordy en la Universidad de Toronto en 1985. El acrónimo "TXL" originalmente significaba "Turing eXtender Language" (Lenguaje extensor de Turing), en referencia al propósito original del lenguaje: la especificación y la creación rápida de prototipos de variantes y extensiones del lenguaje de programación de Turing , pero ya no tiene ninguna interpretación significativa.

TXL moderno está diseñado específicamente para crear, manipular y prototipar rápidamente descripciones, herramientas y aplicaciones basadas en lenguaje mediante la transformación de código fuente. Es un lenguaje híbrido funcional / basado en reglas que utiliza programación funcional de primer orden en el nivel superior y reescritura de términos en el nivel inferior. La semántica formal y la implementación de TXL se basan en la reescritura formal de términos , pero las estructuras de términos permanecen ocultas para el usuario debido al estilo de especificación de patrones, similar a un ejemplo.

Cada programa TXL consta de dos componentes: una descripción de las estructuras fuente que se van a transformar, especificada como una gramática libre de contexto (posiblemente ambigua) mediante una forma extendida de Backus-Naur ; y un conjunto de reglas de transformación de árboles, especificadas mediante pares patrón/reemplazo combinados con programación funcional de primer orden. TXL está diseñado para permitir al programador un control explícito sobre la interpretación, aplicación, orden y retroceso de las reglas de análisis y reescritura, lo que permite expresar una amplia gama de técnicas basadas en gramáticas, como el análisis ágil.

El primer componente analiza la expresión de entrada y la convierte en un árbol mediante la coincidencia de patrones . El segundo componente utiliza la reescritura de términos de forma similar a Yacc para producir la salida transformada.

TXL se utiliza con mayor frecuencia en tareas de análisis y reingeniería de software, como la recuperación de diseño , y en la creación rápida de prototipos de nuevos lenguajes y dialectos de programación.

Ejemplos

Ordenación de burbuja

Fuente: [ 1 ]

Especificación de sintaxis % definir programa [número repetido] fin de definir Reglas de transformación % regla principal reemplazar $ [número de repetición] N1 [número] N2 [número] Resto [número repetido] dónde N1 [> N2] por N2 N1 Rest regla final 

Factorial

Fuente: [ 2 ]

Especificación de sintaxis % definir programa [número] fin de definir Reglas de transformación % función principal reemplazar [programa] p [número] por p [hecho][hecho0] función final hecho de la función reemplazar [número] n [número] construir nMenosUno [número] n [- 1] dónde n [> 1] construir factMenosUno [número] nMenosUno [hecho] por n [* factMenosUno] función final función fact0 reemplazar [número] 0 por 1 función final 

Véase también

Referencias

  1. "Copia archivada" . Archivado del original el 21/05/2005 . Recuperado el 19/03/2008 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  2. "Copia archivada" . Archivado del original el 26 de agosto de 2005. Recuperado el 19 de marzo de 2008 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  • JR Cordy, CD Halpern y E. Promislow, 1991. TXL: Un sistema de prototipado rápido para dialectos de lenguajes de programación. Computer Languages ​​16,1 (enero de 1991), 97-107.
  • JR Cordy, 2006. El lenguaje de transformación de código fuente TXL. Science of Computer Programming 61,3 (agosto de 2006), 190-210.
  • Sitio web de TXL
Obtenido de " https://en.wikipedia.org/w/index.php?title=TXL_(programming_language)&oldid=1321534554 "