Сообщение Re: Реализация языка программирования Mini C на Nitra от 03.03.2017 22:55
Изменено 04.03.2017 12:11 Arsen.Shnurkov
Re: Реализация языка программирования Mini C на Nitra
Я не в теме, но подход нитры мне кажется слегка переусложнённым.
В нитре три внутренних представления:
1) синтаксис
2) AST
3) целевая модель
и соответственно, минимум пять языков (3 языка описания и 2 языка трансформации)
Если оставить только два представления:
1) исходное;
2) конечное;
то понадобиться всего три формализма:
1) для описания синтаксисов (EBNF)
2) для описания объектных моделей (тут какой-нибудь язык запросов для ОО-СУБД)
3) язык преобразования (типа XSLT)
(ну, ещё может пригодиться язык навигации по дереву EBNF типа XPath)
В нитре три внутренних представления:
1) синтаксис
2) AST
3) целевая модель
и соответственно, минимум пять языков (3 языка описания и 2 языка трансформации)
Если оставить только два представления:
1) исходное;
2) конечное;
то понадобиться всего три формализма:
1) для описания синтаксисов (EBNF)
2) для описания объектных моделей (тут какой-нибудь язык запросов для ОО-СУБД)
3) язык преобразования (типа XSLT)
(ну, ещё может пригодиться язык навигации по дереву EBNF типа XPath)
Re: Реализация языка программирования Mini C на Nitra
Я не в теме, но подход нитры мне кажется слегка переусложнённым.
В нитре три внутренних представления:
1) синтаксис
2) AST
3) целевая модель
и соответственно, минимум пять языков (3 языка описания и 2 языка трансформации)
Если оставить только два представления:
1) исходное;
2) конечное;
то понадобиться всего три формализма:
1) для описания синтаксисов (EBNF)
2) для описания объектных моделей (тут какой-нибудь язык запросов для ОО-СУБД)
3) язык преобразования (типа XSLT)
(ну, ещё может пригодиться язык навигации по дереву EBNF типа XPath)
UPD: Можно пойти ещё дальше.
Нам надо одну последовательность битов (исходный текст) преобразовать в другую (бинарный код).
Чем у нас описывают последовательности битов? ASN.1 XER.
Таким образом, нужно всего два формализма — этот и формализм для преобразования.
В нитре три внутренних представления:
1) синтаксис
2) AST
3) целевая модель
и соответственно, минимум пять языков (3 языка описания и 2 языка трансформации)
Если оставить только два представления:
1) исходное;
2) конечное;
то понадобиться всего три формализма:
1) для описания синтаксисов (EBNF)
2) для описания объектных моделей (тут какой-нибудь язык запросов для ОО-СУБД)
3) язык преобразования (типа XSLT)
(ну, ещё может пригодиться язык навигации по дереву EBNF типа XPath)
UPD: Можно пойти ещё дальше.
Нам надо одну последовательность битов (исходный текст) преобразовать в другую (бинарный код).
Чем у нас описывают последовательности битов? ASN.1 XER.
Таким образом, нужно всего два формализма — этот и формализм для преобразования.