Компиляция в исполняемый файл - PullRequest
2 голосов
/ 15 июля 2010

В настоящее время я пишу язык программирования на C / C ++ в качестве упражнения (но в основном для развлечения).На данный момент он компилируется в список команд, которые затем выполняются (что-то вроде низкоуровневого API).Однако он работает фантастически, но я думаю, что было бы гораздо интереснее, если бы вместо того, чтобы иметь исполняемый файл интерпретатора, фактически скомпилировать язык в файл .exe.Я не знаю, возможно ли это или насколько сложно это может быть.Я не мог найти никаких ресурсов, чтобы помочь мне с этим.- Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 15 июля 2010

Вы можете написать внешний интерфейс для LLVM ( учебник ) или GCC ( статья из журнала Linux ) - если это по-прежнему интересно для вас, это другоевопрос.

2 голосов
/ 15 июля 2010

Это, безусловно, было бы возможно, хотя для создания всех необходимых частей для создания исполняемого двоичного файла может потребоваться немало усилий.Если это то, о чем вы пытаетесь узнать, тогда это может быть отличным упражнением.

Однако, если вы просто хотите, чтобы он работал быстрее, есть и другие варианты.Например, вы можете создать код C / C ++ на основе входной программы, а затем скомпилировать / связать его.

0 голосов
/ 15 июля 2010

Во-первых, вы должны четко понимать синтаксис и лексику вашего языкового кода. Затем вы можете взглянуть на lex . Это создает лексический анализатор, который вы можете использовать для генерации кода на C (или чего угодно), который вам необходим.

Если ваш язык не использует динамические типы, вы можете легко это сделать.

...