Блог программиста

Цель: пассивный доход 100 тыс. руб. в мес.

Задачи:

  1. Разработка языка Cj
  2. ...
  3. ...


Также в блоге: изучаем и разрабатываем что-то новое, делимся опытом.

Подписывайтесь:
Cj - язык программирования

Новый язык программирования, для разработки сайтов и приложений, подробнее...


Спецификация:

  1. Комментарии
  2. Типы данных, переменные, функции
  3. ...

Синтаксические диаграммы для языка Cj

Это уже 3-ая редакция, видимо не последняя. Приходится править, не получается нарисовать сразу корректно.

Программа на языке Cj - это блок кода, состоящий из набора инструкций (назовём их statement). Строчки кода можно заключать в блоки в виде скобочек { }.

Как мы видим из диаграммы, блок кода может быть 2-х типов: основным, с него начинается программа, и обычным, заключённым в скобки { }. Вложенность бесконечна )).

В зависимости от типа блока кода, в нём применяются основные или обычные инструкции statement. Отличие лишь в том, что в обычном блоке кода нельзя описывать функции, а в основном можно (и нужно).

Operator - это обычный оператор: if, for, while и т.д., std_type - стандартные типы данных, expression - арифметическое выражение.

Нарисуем синтаксические диаграммы вызова и описания функции. Как их разделить? Запоминаем позицию и ищем символ ')'. Если после него идёт ';' - вызываем обработку вызова функции, если нет - проверяем на символ '{', если да, то это описание функции. Вызов еще функции достаточно прост.

А вот описание, конечно, посложнее. Оно состоит не только из описания параметров, но и тела самой функции.

Если переменная ещё не описана и появилась в программе, даже без указания типа, то описываем её, где бы она не появилась. В отличии от С++, это не является ошибкой. Возможно описание переменной совмещается с участием в арифметическом выражении.

Всего несколькими синтаксическими диаграммами мы смогли описать язык Cj. Теперь дело за малым - реализовать сам язык!


Отправить комментарий
Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений