Конструкция компилятора тега должна быть применена к вопросам относительно программирования компиляторов или для вопросов о подробных внутренних работах компиляторов. НЕ ИСПОЛЬЗУЙТЕ для вопросов о *использующий* определенные компиляторы или ошибки компиляции.

Компилятор является программой, которая переводит один язык в другого. Конструкция компилятора является процессом создания компилятора.

тега должна быть применена к вопросам относительно программирования компиляторов или для вопросов о подробных внутренних работах компиляторов.

Один язык другому? Я думал, что они сделали исполняемые файлы!

Немного компиляторов делают точно что:

  • Они главным образом переводят человекочитаемый язык программирования (как Фортран, Кобол, Алгол, МН/1, Паскаль, C, C++, C#, и т.д.) в файл объектного кода, который должен быть впоследствии связан.

  • Много компиляторов реального мира переводят высокоуровневый язык в ассемблерный код, который впоследствии собран отдельной программой и затем связан.

  • Стандартный компилятор Java переводит код Java в байт-код JVM, который должен быть выполнен специализированной программой (JVM), который может включать Как раз вовремя (JIT) или компилятор HotSpot, который переводит байт-код в собственные машинные команды на лету.
  • Ранние версии Unix шли с Фортраном к компилятору C.
  • Самые ранние версии языка, который стал C++, были скомпилированы в C названной программой cfront.
  • Существуют много других примеров компиляторов от источника к источнику.
  • Некоторые языки, такие как JavaScript и много других языков 'сценариев' не имеют компиляторов вообще, но выполняются непосредственно от исходного кода.

Большой список ресурсов: