SG | |
---|---|
clase de idioma | multiparadigma : imperativo |
Apareció en | 2000 |
Autor | Cristóbal De Dinechin [d] |
Liberar | 0,1 (2010) |
Versión de prueba | 27-2-2010 |
sistema de tipos | estricto |
sido influenciado | Adá , C++ |
Licencia | GPLv2 |
Sitio web | xlr.sf.net |
sistema operativo | Sistema operativo similar a Unix |
XL es la base del lenguaje extensible eXtensible Language. Es un lenguaje de programación diseñado para soportar la programación conceptual .
XL proporciona sintaxis y semántica ampliables mediante programación. Los complementos del compilador se pueden usar para agregar nuevas funciones a un idioma. El conjunto básico de complementos se implementa de acuerdo con los lenguajes imperativos estándar. Los programadores pueden escribir sus propios complementos para implementar tareas específicas, como trabajar con otros sistemas numéricos, que luego pueden integrarse simplemente en el lenguaje.
XL define tres niveles de abstracción:
XL no tiene tipos primitivos ni palabras reservadas. Todos los operadores y tipos de datos utilizados, como los números enteros o el operador de suma, se declaran en la biblioteca estándar (XL2). XL1 es portátil para ejecutarse en diferentes entornos y plataformas. Pero en XL2 ya no existe tal garantía: si un procesador en particular no admite la multiplicación de punto flotante, entonces la descripción del operador correspondiente en la biblioteca estándar puede omitirse y el uso de dicha multiplicación puede resultar en un tiempo de compilación. error.
Un ejemplo de programa Hello World en XL se ve así:
usar XL.TEXT_IO WriteLn "Hola mundo"Una ortografía alternativa en un estilo más adecuado para programas ampliamente escalables sería:
importar E/S = XL.TEXT_IO IO.WriteLn "Hola mundo"La sintaxis se define en el nivel XL0. El paso de compilación XL0 se puede configurar utilizando la sintaxis del archivo descriptor, que define cómo se presenta el texto y asigna la precedencia del operador. El archivo de sintaxis base define notaciones matemáticas comunes, como "+" para la suma, que generalmente se adoptan en el orden de las operaciones.
El árbol estructural contiene 7 tipos de nodos: 4 nodos de tipo hoja (entero, real, texto y símbolo) y 3 nodos de tipo interno (infijo, prefijo y bloque).
Con un archivo de sintaxis estándar, el siguiente es un XL0 válido independientemente de cualquier semántica.
A = B + "hola"Después de procesar se verá como:
índice("=", símbolo ("A"), índice("+", símbolo("B"), texto("Hola")))