Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Компилятор

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


            Закономерен так же вопрос: а почему, собственно, компилятор, а не интерпретатор? Обоснование этого выбора — в статье Философия языка.

            Теория по трансляции языков программирования представлена в сети достаточно хорошо, ниже приведены ссылки именно по практике создания компиляторов. Однако практика порою подкидывает такие вопросы, которых теория не всегда касается. Практику же обсудим в подразделах.

Что ещё почитать на эту тему

Опубликовано: 2012.09.25, последняя правка: 2018.10.29    15:54


Отзывы

     2014/03/18 18:20, Noname          # 

Уроки Креншоу в переложении на Форт (iForth)

     2016/04/15 12:58, utkin          # 

Закономерен так же вопрос: а почему, собственно, компилятор, а не интерпретатор? Или что-то ещё, сочетающее в себе и то, и другое — типа Форта? Наверное, всё-таки исполняемый код всё-таки более предпочтителен во многих отношениях. Но к этой теме ещё вернёмся.

Это зависит от направления использования языка. Так-то лидеры Ява и C# вообще-то интерпретаторы. Ну или что-то среднее. Ну никак не компиляторы. Конечно есть интерпретаторы языка Си как и компиляторы Бейсика, но реализация трансляторов как правило исходит от практического применения — где, когда и как это будет использоваться. Сейчас многие "традиционные" системы из-за конкуренции с интерпретацией вынуждены уметь генерировать код под разные платформы. Например последние изменения Делфи. Лазарус и Code Typhoon например умеют транслировать код под всякую экзотику, хоть под BeOs. Под Андроид уже не компилирует только самый ленивый, а все из-за конкуренции с кроссплатформенным Ява (который по сути развил идеи P-кода Паскаля). 1С тоже ни рыба, ни мясо, а неведома зверушка (хотя производитель гордо говорит о компиляции).

     2016/04/15 13:27, Автор сайта          # 

Теперь есть философия языка, поэтому этот вопрос можно закрыть. Но во что компилировать? Очень перспективна LLVM, но пока неясно, как реализовать некоторые неочевидные моменты. Существует код для Intel x86, но непонятно, что должно ему соответствовать в LLVM.

     2016/10/03 19:42, Павиа          # 

Цикл статей от tyomitch, в том числе 10 лекций по созданию оптимизирующего компилятора:
https://habrahabr.ru/users/tyomitch/topics/page5/

Добавить свой отзыв

Написать автору можно на электронную почту mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Каким должен быть язык программирования?

Анализ и критика

Описание языка

Компилятор

Надо ли использовать YACC, LEX и подобные инструменты

Выбор кодировки для компилятора

Раскрутка компилятора

Лексический анализатор

●  Разбор цепочек знаков операций

●  Как отличить унарный минус от бинарного

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее

Последние комментарии

2019/03/20 09:05 ••• ВежливыйЛис
Двухстековая модель: тесты на скорость

2019/03/20 08:32 ••• ВежливыйЛис
Размещение объектов переменной длины с использованием множества стеков

2019/03/20 00:33 ••• ВежливыйЛис
Реализация двухстековой модели размещения данных

2019/03/19 12:38 ••• Comdiv
Реализация параметрического полиморфизма

2019/03/18 01:08 ••• Автор сайта
Обработка ошибок

2019/02/24 23:14 ••• MihalNik
Каким должен быть язык программирования?

2019/02/20 14:09 ••• Автор сайта
Ошибка при отсутствии выполняемых действий

2019/02/16 14:52 ••• kt
Заметки о выходе из функции без значения и зеркальности get и put

2019/02/14 20:42 ••• Автор сайта
Новости и прочее

2019/02/12 22:46 ••• Антон
В защиту PL/1

2019/02/09 13:07 ••• Автор сайта
Почему динамическое распределение памяти — это плохо

2019/02/08 16:34 ••• Автор сайта
Некошерный «goto»