2013-03-22 4 views
0

Недавно я столкнулся с некоторыми проблемами в дизайне компилятора. То, что я хочу, - это инструмент, который может выполнять пошаговую компиляцию программы C. Один, который выполняет лексический анализ и дает выходной файл, а затем анализ синтаксиса в этом выходном файле и так далее, пока не будет получен окончательный исполняемый код. Есть ли такой инструмент или техника для этого? Конечно, я знаком с lex и yacc. Мне нужен только один инструмент, который может визуально вести вас через все этапы компиляции, лексического анализа, синтаксического анализа, семантического анализа, создания промежуточного кода, оптимизации кода и генерации кода.Пошаговая компиляция программы C

+1

ли вы посмотрите на панели инструментов, предоставленной лязгом и LLVM? –

+1

Мне нужен автоматический Spec-to-product-converter - где я могу его найти? - Шутка в сторону: напишите свой собственный, используя clang. –

+1

Я думаю, что clang/llvm - это то, что вы хотите для визуализации оптимизации. Для синтаксического анализа - я думаю, вы вряд ли найдете трафик, который сделает это за вас. – fuz

ответ

1

В случае, если вы заинтересованы в понимании внутренних компонентов GCC, вы можете использовать опцию -fdump. Он будет создавать множество файлов для каждого прохода (главным образом, от среднего конца до бэкэнда, не уверенного в интерфейсе). Эта ссылка может помочь вам:

http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html