PCASTL (acrónimo de Parent and Childset Accessible Syntax Tree Language ) es un lenguaje de programación interpretado de alto nivel . Fue creado en 2008 por Philippe Choquette. [ 1 ] PCASTL está diseñado para facilitar la escritura de código automodificable . El lenguaje tiene palabras reservadas parent y childset para acceder a los nodos del árbol de sintaxis del código que se está escribiendo. [ 2 ]
Hola Mundo
El programa " Hola mundo " es bastante simple:
"¡Hola Mundo!"
o
print("¡Hola, mundo!") haré lo mismo.
Sintaxis
La sintaxis de PCASTL deriva de los lenguajes de programación C y R. Se estudió el código fuente de R versión 2.5.1 para escribir la gramática y el analizador léxico utilizados en el intérprete de PCASTL.
Influencias
Al igual que en R , las sentencias pueden, pero no necesariamente, separarse con punto y coma . [ 3 ] Al igual que en R , una variable puede cambiar de tipo en una sesión . Al igual que en C y R , PCASTL utiliza corchetes balanceados ( { y } ) para formar bloques .
Los operadores que se encuentran en PCASTL tienen la misma precedencia y asociatividad que sus contrapartes en C. [ 2 ] [ 4 ] Los bucles for se definen como en C.++ Y --los operadores se utilizan como en C para incrementar o decrementar una variable antes o después de que se utilice en su expresión.
Un ejemplo de PCASTL usando la palabra reservada para y el operador :++
para ( i = 1 ; i < 4 ; i ++ ) imprimir ( i )Las funciones y los comentarios en PCASTL se definen como en R :
# definición de función (comentario) a = function () { print ( "Hola, mundo!" ) }# Llamada a la función a ()Palabras reservadas para padre e hijo
Esas palabras reservadas solo se pueden escribir en minúsculas y no se reconocerán de otra manera. La palabra reservada padre proporciona una referencia al nodo padre en el árbol de sintaxis del código donde se coloca la palabra. En el siguiente código, el nodo padre es el operador= .
a = padre
La variable "a" contendrá una referencia al =nodo. El siguiente código muestra cómo obtener referencias a los dos nodos hijos del operador= con la palabra reservada childset .
a.childset[0] a.childset[1]
Para mostrar el valor de "a", en este ejemplo se ofrecen algunas maneras:
a a.childset[0].parent a.childset[1].parent a.childset[0].parent.childset[0].parent # y así sucesivamente...
En el siguiente código: asignamos un segmento de código al hijo derecho del =nodo, ejecutamos el =nodo una segunda vez y llamamos a la función recién definida.
a.childset[1] = `function() print("hola")' ejecutar(a) a() Véase también
Referencias
- ↑ «pcosmos.ca» . Philippe Choquette . Consultado el 14 de junio de 2008 .
- 1 2 "PCASTL: lenguaje de árbol de sintaxis accesible por conjunto padre e hijo" . Philippe Choquette . Recuperado el 14 de junio de 2008 .
- ↑ "Una introducción a R" . Equipo central de desarrollo de R. Consultado el 14 de junio de 2008 .
- ↑ Hanly, Jeri R.; Elliot B. Koffman (1999). Resolución de problemas y diseño de programas en C, tercera edición . Addison-Wesley . ISBN 0-201-35748-8.
Enlaces externos
- PCASTL: lenguaje de árbol de sintaxis accesible por padre e hijo
- Intérpretes de código abierto y libre
- Lenguajes de programación procedimental
- Lenguajes de programación creados en 2008