С каким языком компиляторы записаны?

Компиляторы записаны на различных языках, чем язык, который они компилируют?

7
задан 27.06.2012, 00:29

3 ответа

Существует три языка, вовлеченные в компилятор: язык, скомпилированный (исходный язык), язык, скомпилированный на (выходной язык) и язык, что компилятор записан в (язык реализации). В целом язык реализации является или языком общего назначения как C или C++ или исходным языком. Выходной язык может быть некоторым языком, подходящим близко к исходному языку, который уже существует, или блок. Иногда существует пользовательский промежуточный язык, так, чтобы мог быть общий бэкенд для множества языков. Это - способ, которым работает gcc. Существует фронтэнд для C, C++, Фортрана, Ada и вероятно других. Каждый компилируется на тот же промежуточный язык, который затем компилируется в архитектурно-зависимый ассемблер.

Если компилятор записан на том же языке как тот, он компилирует, компилятор называют, саморазмещая. Если язык является новым, то никакой компилятор уже не существует для него, который означает, что его первый компилятор не может саморазмещать (иначе, как тот первый компилятор был бы скомпилирован?). В результате первое повторение любого компилятора для нового языка всегда пишется на другом языке. Это сказанное, самохостинг более удобно; автор (авторы) только должен быть опытным на одном языке.

18
ответ дан 07.12.2019, 14:29

Можно записать компилятор в, теоретически, любой язык. Даже тот Вы компилируете.

3
ответ дан 07.12.2019, 14:29

Существует намного больше информации об этом законченном при Переполнении стека, как то, В чем лучший язык должен записать компилятор?.

Более связанный в ТАК

Я знаю, что вопросы переезжают сюда от Переполнения стека, но я не знаю, работает ли оно наоборот также.

1
ответ дан 07.12.2019, 14:29

Теги

Похожие вопросы