2016-11-07 5 views
-1

Это всегда сложная задача создать компилятор, как известно большинству из нас. Я действительно задаюсь вопросом, какая библиотека имеет лучшее приложение для такого, Java или C. Проблема, которую я вижу здесь, - это Java, которая значительно длиннее по сравнению с C, но имеет больше свободы для управления. C короче и, возможно, быстрее в компиляции, но он не позволяет AS много контроля. По мнению, какой из них будет лучше для этого?Какой из лучших приложений для дизайна компилятора?

+0

«В какой библиотеке есть лучшее приложение для такого», т. Е. Писать компилятор, не имеет смысла. Вы спрашиваете, для чего * язык * * проще * написать компилятор? – EJP

ответ

0

Построение компилятора в основном требуется алгоритмы и структуры данных, которые не являются родными для стандартных библиотек, предоставляемых либо язык:

  • лексем
  • лексических экстракционных сочинения много регулярных выражений в государственной машину с несколько выхода
  • потоки лексем
  • абстрактные синтаксические деревья
  • парсеров для проверки синтаксиса и строительство ASTS
  • графы потока управления
  • строительство потока
  • управления
  • ... многое другое ...

Довольно много, чтобы построить компилятор вы в конечном итоге определения всех этих типов данных в качестве структур или объектов, а также ручной написания кода для реализации идей.

Таким образом, ни C, ни Java «легче» использовать для этой задачи.

С некоторой осторожностью версия C может быть быстрее, чем эквивалентная версия Java.

Если вы действительно хотите быстро написать компилятор, вам нужно найти инструмент или фреймворк, который предоставит вам эти структуры и алгоритмы such as our DMS Software Reengineering Toolkit, так что вам не придется их изобретать.