По каким причинам в качестве промежуточного представления было выбрано синтаксическое дерево? Исключительно из-за простоты построения? Не дала бы выигрыша работа с трёхадресным кодом или представлением, основанным на классах? По ощущению это позволило иметь больше контекста для распознавания тех или иных паттернов в коде.
На мой взгляд всё банально сводится к тому, что наиболее удобный инструмент определяется нуждами проекта и средой, в которой ты работаешь.
Я занимаюсь разработкой компилятора в команде, где почти все используют gvim, для него ручками написали удобные плагины внутри команды, поддержали систему тегов и прочее. Дебаг осуществляется благодаря готовым скриптам и анализом логов с дебаг принтами. В такой ситуации когда подходишь помочь коллеге, работающему в Kate, пытаешься быстро перейти по тегам к определению макроса или функции, а у него данный функционал не работает - раздражает.
Аналогично когда подключаешься по ssh в терминале, удобен vim, а работая над большим проектом с необходимостью отладки я использую clion и подобные. Так что в каждом случае на мой взгляд надо уметь адаптироваться и выбрать подходящий инструмент
По каким причинам в качестве промежуточного представления было выбрано синтаксическое дерево? Исключительно из-за простоты построения? Не дала бы выигрыша работа с трёхадресным кодом или представлением, основанным на классах? По ощущению это позволило иметь больше контекста для распознавания тех или иных паттернов в коде.
На мой взгляд всё банально сводится к тому, что наиболее удобный инструмент определяется нуждами проекта и средой, в которой ты работаешь.
Я занимаюсь разработкой компилятора в команде, где почти все используют gvim, для него ручками написали удобные плагины внутри команды, поддержали систему тегов и прочее. Дебаг осуществляется благодаря готовым скриптам и анализом логов с дебаг принтами. В такой ситуации когда подходишь помочь коллеге, работающему в Kate, пытаешься быстро перейти по тегам к определению макроса или функции, а у него данный функционал не работает - раздражает.
Аналогично когда подключаешься по ssh в терминале, удобен vim, а работая над большим проектом с необходимостью отладки я использую clion и подобные. Так что в каждом случае на мой взгляд надо уметь адаптироваться и выбрать подходящий инструмент