Информация об изменениях

Сообщение Re[6]: Реализация языка программирования Mini C на Nitra от 05.03.2017 23:54

Изменено 06.03.2017 3:07 VladD2

Re[6]: Реализация языка программирования Mini C на Nitra
Здравствуйте, Arsen.Shnurkov, Вы писали:

AS>Именно. Всё что ты сделал — прочитал какую-то аннотацию.


Вообще-то не аннотацию, а вводную статью. Ну, и в разговорах не раз видел.

Открой мне глаза, если я заблуждаюсь. Объясни зачем мне может быть нужен этот формат.

AS>Две возможности:

AS>1) Чтобы сгенерировать двоичный код.

А зачем мне генерировать двоичный код? Для генерации исполнимого кода есть специальные API. Для дотнета это CCI Metadata, Mono cecil. Для Яыв тоже свой есть.

AS>2) как бонус — входной файл тоже можно описывать как бинарный и унифицировать преобразования.


Дык не нужны преобразования бинарных данных. Вот сделать DSL для того же MSIL-а смысл есть, хотя и не очень большой. Это позволило бы сделать код преобразования из АСТ в него более декларативным и высокоуровневым, позволило бы абстрагироваться от API через которое идет генерация. А использовать тут какой-то язык описания форматов попросту не нужно.
Re[6]: Реализация языка программирования Mini C на Nitra
Здравствуйте, Arsen.Shnurkov, Вы писали:

AS>Именно. Всё что ты сделал — прочитал какую-то аннотацию.


Вообще-то не аннотацию, а вводную статью. Ну, и в разговорах не раз видел.

Открой мне глаза, если я заблуждаюсь. Объясни зачем мне может быть нужен этот формат.

AS>Две возможности:

AS>1) Чтобы сгенерировать двоичный код.

А зачем мне генерировать двоичный код? Для генерации исполнимого кода есть специальные API. Для дотнета это CCI Metadata, Mono cecil. Для Яыв тоже свой есть. Для нэйтив: LLVM API или просто генерация C-кода.

AS>2) как бонус — входной файл тоже можно описывать как бинарный и унифицировать преобразования.


Дык не нужны преобразования бинарных данных. Вот сделать DSL для того же MSIL-а смысл есть, хотя и не очень большой. Это позволило бы сделать код преобразования из АСТ в него более декларативным и высокоуровневым, позволило бы абстрагироваться от API через которое идет генерация. А использовать тут какой-то язык описания форматов попросту не нужно.