2016-01-14 3 views
1

В прошлом году я взял курс компилятора. Теперь я хочу узнать, как написать собственный лексический анализатор и парсер. Я искал сеть, наткнулся на эти два инструмента, которые находятся под Лицензия GNU.Должен ли я изучать Lex/YACC или FLEX/Bison

  • LEX
  • YACC

Но есть также альтернативные средства на эти известные как FLEX и BISON. Я думаю, что они находятся под лицензией BSD, я не уверен. Но я не могу понять, какой инструмент я должен изучить.

+0

Bison выпускается под лицензией Gnu. Ни один из этих других инструментов. Flex выпущен под лицензией BSD; byacc («Berkeley yacc») является общественным достоянием. Я честно не знаю, где вы найдете исходный исходный код для lex больше, но он определенно предшествует GNU. – rici

ответ

3

Для большинства начинающих пользователей инструменты практически идентичны. Тот же источник ввода будет создавать лексер/парсер, который выполняет ту же задачу. Существуют различия, но ни одна из них не ухудшит вашу способность учиться и использовать инструменты. Различия будут интересовать только более опытных кодеров или тех, кто хотел бы сосредоточиться на эзотерических внутренних операциях инструментов.

Просто используйте, который когда-либо работал лучше всего для вас в вашей программной среде. Я учу своих учеников с помощью flex и bison на основе того, что они могут работать с одними и теми же инструментами независимо от платформы (Windows, Linux, OSX и т. Д.).

+0

Так что я должен пойти с FLEX и BISON, я думаю. –

Смежные вопросы