"Денис Гаев. Ксерион: язык и технология программирования" - читать интересную книгу автора

описаниях: каждый объект языка должен быть описан только один раз. Многие
часто употребляемые языковые конструкции могут быть записаны более
компактно. Активное использование макроопределений let также может
значительно "уплотнить" программу (возможно, в ущерб ее понятности).

-- переносимость реализации -- один из самых важных аспектов языка.
Результатом работы компилятора является внутренний код Ксерион-системы
(здесь не описанный). Этот код может быть выполнен в режиме интерпретации с
достаточно высокой эффективностью на любой 32-битовой платформе, но
ориентирован в основном на трансляцию в машинный код целевого процессора.

Лексический состав языка

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

В том месте, где допустим пробельный символ, всегда может встретиться и
комментарий. Комментарии определяются двумя способами:

╖ как (непустая) последовательность символов, ограниченная двумя
символами С!';

╖ как последовательность от двух символов С!' до конца текущей строки.

В случае, когда применяются комментарии первого типа, рекомендуется
использовать внутри них пару дополнительных скобок
("()","[]","{}","" или что-нибудь в этом роде), чтобы начало и конец
комментария легко различались. Вот примеры:

!! допустимый комментарий
! и это тоже ... !
!{ но такая форма предпочтительней }!

Идентификаторы -- это символические имена, которые имеют все объекты (в
широком смысле) языка: переменные, константы, типы данных, функции, классы,
макроопределения, метки и пр. К идентификаторам предъявляются практически те
же требования, что и в C: это последовательности латинских букв, десятичных
цифр и знаков подчеркивания, начинающиеся не с цифры. Как минимум первые 127
символов идентификатора являются значащими; заглавные и строчные буквы
различаются. Помимо этого, идентификатор должен отличаться от ключевого
слова. Следующие идентификаторы являются ключевыми словами:

abstract, alloc, assert
bool, break
case, char, class, conceal, const, constructor, continue
destructor, do, double