XL (язык программирования)
XL — основа расширяемого языка eXtensible Language. Это язык программирования, разработанный для поддержки концептуального программирования. ОписаниеXL предоставляет программно расширяемый синтаксис и семантику. Плагины компилятора могут быть использованы для добавления новых возможностей в язык. Базовый набор плагинов реализован согласно стандартным императивным языкам. Программисты могут написать собственные плагины для реализации специфических задач, таких как работа с другими системами счисления, что позже может быть просто встроено в язык. ЯзыкВ XL определено три уровня абстракции:
XL не имеет ни примитивных типов, ни зарезервированных слов. Все используемые операторы и типы данных, такие как целые числа или оператор сложения, объявлены в стандартной библиотеке (XL2). XL1 является переносимым для выполнения в разных средах и платформах, однако если конкретный процессор не поддерживает умножения чисел с плавающей точкой, то описание соответствующего оператора в стандартной библиотеке может быть пропущено и использование такого умножения может закончиться ошибкой во время компиляции. Пример программы Hello World в XL выглядит следующим образом: use XL.TEXT_IO WriteLn "Hello World" Альтернативным написанием в стиле, более пригодном для широко масштабируемых программ, в виде: import IO = XL.TEXT_IO IO.WriteLn "Hello World" Пример программы, вычисляющей факториал чисел от 1 до 20: 0! is 1
N! is N * (N-1)!
for I in 1..20 loop
print I! СинтаксисСинтаксис определён на уровне XL0. Этап компиляции XL0 может быть сконфигурирован используя специальный описательный файл, в котором определено как представляется текст и назначен приоритет операций. Базовый синтаксический файл определяет общие математические нотации, например «+» для сложения, которые обычно приняты в порядке операций. Структурное дерево содержит 7 типов узлов: 4 конечных узла типов (целое, вещественное, текст и символ) и 3 внутренних узла типов (инфиксный, префикс и блок).
Со стандартным синтаксическим файлом, ниже следующее является правильным XL0, независимым от любой семантики. A = B + "Hello" После обработки это будет выглядеть как: infix("=", symbol("A"), infix("+", symbol("B"), text("Hello"))) Ссылки |
Portal di Ensiklopedia Dunia