Инструкция
1
Обдумайте основные концепции создаваемого языка программирования. Выделите его главные особенности и предполагаемые функциональные возможности. Выберите парадигму (объектно-ориентированную, логическую и т.д.), которой будет следовать язык, и его вычислительную модель. Ясно ответьте на вопросы о том, чем он будет отличаться от существующих аналогов, какие их черты заимствовать.
2
Продумайте систему типов данных. Ответьте на вопрос о том, будет ли это язык программирования со статической или динамической типизацией. Обозначьте перечень встроенных и способы определения новых типов. Декларируйте методы определения структур данных. Опишите другие возможности. Так, если создается объектно-ориентированный язык программирования, выделите возможные способы наследования (например, прямое наследование реализации, агрегирование, и т.д.).
3
Досконально продумайте концепцию организации вычислений. Действуйте, следуя знаниям о парадигме и вычислительной модели. Так, например, для процедурно-ориентированного языка нужно будет выявить способы передачи управления (вызовы функций, конструкции условных переходов, циклов и т.д.), принципы вычисления выражений (перечень операций, их приоритет) и пр.
4
Полностью опишите синтаксис языка. На основе знаний, полученных на предыдущих этапах проектирования, формально специфицируйте синтаксис всех возможных конструкций. Например, синтаксис определения типов данных и их структур, управляющих конструкций, записи арифметических выражений, литерального определения объектов данных. Используйте запись в форме Бекуса-Наура (БНФ) или правил регулярной грамматики.
5
Определите набор символов документа с исходным кодом на создаваемом языке программирования. Укажите возможные правила и ограничения в использовании символов. Так, например, запись языковых конструкций может ограничиваться только символами из набора ASCII, но при этом в комментариях и строковых литералах допускаться применение символов всего диапазона UTF.
6
Создайте набор спецификаций, полностью описывающий язык программирования. Включите в него данные о синтаксисе и семантике всех конструкций. Используйте формальные способы записи и подробные пояснения.