Преобразование кода вх. языка в код выходного языка.

Гость3 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
30.01.2022

Работа делится на 4 последовательных этапа.

Необходимо написать программу/программы, которые: 

  • Выполняет лексический анализ (Парсинг кода по служебным словам, идентификаторам(названиям переменных) и составить табличку).  Пример: int a = 1; (id: 0, lex: TYPE_WORD, value: "int")(id: 1, lex: ID, value: "a") (id: 2, type: EQUAL, value: "=" ), и тд.
  • Выполняет синтаксический анализ - построить дерево разбора по результатам предыдущей работы. Преподаватель рекомендует использовать узел как класс или структуру, содержащие описание конструкции языка - оператор, переменные, над которыми он выполняется, какие-то атрибуты, и, возможно, список из таких же структур, если это, например, цикл, чтобы отобразить вложенность.
  • Выполняет семантический анализ - Анализ дерева и поиск необъявленных переменных
  • Синтезирует код.  Анализ дерева и построение кода на выходном языке.
По требованиям:

  • Вы можете выбрать язык реализации по своему усмотрению (JS/PHP/JAVA/C++/C#/PYTHON).
  • Код входного ЯПнаВУ си-подобный.
  • Код выходного ЯПнаВУ можно выбрать попроще(Паскаль/python/JS).
  • Подробные и осмысленные комментарии в коде лишними не будут.
  • Оцените бюджет и сроки, пожалуйста.

Заявки фрилансеров