Общее программирование: На каких 5 этапах исходный код преобразуется в исполняемый файл? - PullRequest
2 голосов
/ 26 мая 2010

Я получаю этот вопрос в тесте:

В каких 5 этапах преобразование исходного кода в исполняемый файл?

Ответы [ 3 ]

5 голосов
/ 27 мая 2010

Пять этапов являются поддельными. Например, стандартная ML Нью-Джерси когда-то был 33-проходным компилятором, переходя от исходного кода к машинному коду (без текстового сборка, он записывает машинный код прямо в память). Я сомневаюсь, что есть ровно пять представлений, через которые проходит код. В lcc C компиляторе есть следующие представления:

  • Необработанный источник
  • Предварительно обработанный источник
  • IR Dags
  • Текстовая сборка
  • Код перемещаемого объекта
  • Исполняемый бинарный файл

В наши дни большинство других компиляторов переводят исходный код в абстрактный синтаксис, и на самом деле разработчики lcc ретроспективно заявляют, что они хотели бы использовать деревья абстрактного синтаксиса.

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

4 голосов
/ 26 мая 2010

Там не может быть исправлено 5 шагов. Зависит от того, на каком языке находится исходный код и какой компилятор используется.

3 голосов
/ 26 мая 2010

Одна минута на Google решит ваш вопрос

Составитель - волшебное слово

Если ваши глаза не могут найти правильную линию:)

Компиляция в целом разделена примерно на 5 этапов:

Предварительная обработка, анализ, перевод, сборка и компоновка.

...