XL язык программирования

XL язык программирования

XL — основа расширяемого языка eXtensible Language. Это язык программирования, разработанный для поддержки концептуального программирования.

XL предоставляет программно расширяемый синтаксис и семантику. Плагины компилятора могут быть использованы для добавления новых возможностей в язык. Базовый набор плагинов реализован согласно стандартного императивного языка. Программисты могут написать собственные плагины для реализации специфических задач, таких как работа с другими системами счисления, что позже может быть просто встроено в язык.

Язык

В XL определено три уровня абстракции:

  • XL0 определяет как исходный текст должен преобразовыватся в структурное дерево
  • XL1 определяет основу языка с возможностями сравнимыми с C++
  • XL2 определяет стандартную библиотеку, включающую основные типы данных и операторы.

XL не имеет ни примитивных типов, ни зарезервированных слов. Все используемые операторы и типы данных, как то: целые числа или оператор сложения, объявлены в стандартной библиотеке (XL2). XL1 является переносимым для выполнения в разных средах и платформах. А вот в XL2 такой гарантии уже нет: если конкретный процессор не поддерживает умножения чисел с плавающей точкой, то описание соответствующего оператора в стандартной билиотеке может быть пропущено и использование такого умножения может закончиться ошибкой во время компиляции.

Пример программы Hello World в XL выглядит следующим образом:

 use XL.TEXT_IO
 WriteLn "Hello World"

Альтернативным написанием в стиле, более пригодном для широко масштабируемых программ, будет так:

 import IO = XL.TEXT_IO
 IO.WriteLn "Hello World"

Синтаксис

Синтаксис определён на уровне XL0. Этап компиляции XL0 может быть сконфигурирован используя синтаксис описательного файла, в котором определено как представляется тест и назначен приоритет операций. Базовый синтаксический файл определяет общие математические нотации, например «+» для сложения, которые обычно приняты в порядке операций.

Структурное дерево содержит 7 типов узлов: 4 конечных узла типов (целое, вещественное, текст и символ) и 3 внутренних узла типов (инфиксный, префикс и блок).

  • целый (integer) узел представляет собой целый литерал, такой как 2. Знак # может быть использован для указания основания числа отличного от 10, например 2#1001 — число 1001 в двоичной системе счисления. Для удобочитаемости можно использовать знак «_» нижнее подчёркивание: 1_000_000.
  • вещественный (real) узел представляет собой не слитные числа, как например 2.5. Нотации основы и разделителей могут быть использованы как и для целых узлов, например 16#F.FFF#E-10.
  • текстовый (text) узел представляет текстовое содержимое. Они обычно заключаются в одинарные или двойные кавычки, например "Слава КПСС!" or 'Ё'. В тоже время с помощью синтаксического файла можно добавить другие разделители, включая разделители для многострочного текстового содержимого.
  • символьный (symbol) узел представляет имена или операторы. Имена — это последовательность букв или цифр начинающееся с буквы. Например: Пётр1. В уровне XL0 учитывается регистр букв, но XL1 игнорирует регистр и символы нижнего подчёркивания, так что ИванСусанин иван_сусанин являются равнозначными именами.
  • инфиксные (infix) узлы представляются двумя узлами связаными инфиксным символом. Например: A+1 или 2 and 3.
  • префиксные (prefix) узлы представляются двумя последовательными узлами. Например: Write "Слава КПСС!". Их так же используют для постфиксной записи: 3! или Open?.
  • блочные (block) узлы представляются как узел заключённый в группировочные сиволы, как например (A), [Index]. Отступ непосредственно представлен блочным узлом.

Со стандартным синтаксическим файлом, ниже следующее является правильным XL0, независимым от любой семантики.

A = B + "Hello"

После обработки это будет выглядеть как:

infix("=",
      symbol("A"),
      infix("+",
            symbol("B"), text("Hello")))

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "XL язык программирования" в других словарях:

  • Язык программирования C++ — Эта статья о книге; о языке программирования см.: C++. Язык программирования C++ The C++ Programming Language Автор: Бьёрн Страуструп Язык оригинала: английский Оригинал издан: 1986 Издательство: Addison–Wesley …   Википедия

  • Язык программирования Java — разработанный корпорацией Sun Microsistems межплатформенный, интерпретируемый, объектно ориентированный язык программирования, используемый для создания приложений, работающих в под управлением веб браузера и характеризующихся высоким уровнем… …   Финансовый словарь

  • Язык программирования Паскаль — процедурно ориентированный язык программирования высокого уровня, предназначенный для широкого класса задач. Язык Паскаль считается языком структурного программирования. По английски: Pascal language См. также: Процедурно ориентированные языки… …   Финансовый словарь

  • Язык программирования — искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора. По английски: Programming language Синонимы:… …   Финансовый словарь

  • Язык программирования COBOL — язык программирования, предназначенный для решения экономических задач и задач обработки коммерческой информации. Язык COBOL отличается развитыми средствами работы с файлами и формой записи, приближенной к английскому языку. По английски: COBOL… …   Финансовый словарь

  • Язык программирования Лисп — универсальный язык программирования высокого уровня. Язык Лисп: относится к декларативным языкам функционального типа; предназначен для обработки символьных данных, представленных в виде списков. Основой языка являются функции и рекурсивные… …   Финансовый словарь

  • Язык программирования Ада — универсальный язык программирования: предназначенный для создания сложных систем; характеризующийся высокой степенью независимости от операционных систем; обеспечивающий поддержку средств параллельной обработки данных в реальном времени. По… …   Финансовый словарь

  • Язык программирования Алгол — язык программирования, предназначенный для решения численных задач. Программа на языке ALGOL имеет блочную структуру, позволяющую эффективно реализовывать механизмы динамического распределения памяти. По английски: ALGOL language См. также:… …   Финансовый словарь

  • Язык программирования Модула — алгоритмический язык, предназначенный для составления программ, работающих в реальном времени. В языке Модула используются: понятия модуля и процесса; средства программирования низкого уровня. Программа на языке Модула формируется из независимых… …   Финансовый словарь

  • Язык программирования Пролог — язык логического программирования, программа на котором состоит: из логических утверждений, образующих базу данных; и из правила вывода новых утверждений из известных. По английски: PROLOG language См. также: Декларативные языки программирования… …   Финансовый словарь

  • Язык программирования Форт — процедурно ориентированный язык программирования, предназначенный для эффективной работы с персональными системами. Форт близок к языку ассемблера. См. также: Процедурно ориентированные языки программирования Финансовый словарь Финам …   Финансовый словарь


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»