Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки 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/

     2021/08/07 13:43, Anatoly          # 

BASIC задуман и реализован его авторами как быстрый построчный компилятор в системе разделения времени. Интерпретаторами были полее поздние однопользовательские клоны для мини- и микроЭВМ (Microsoft и др.).

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

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

Авторизация

Регистрация

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

Карта сайта


Содержание

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

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

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

Компилятор

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

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

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

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

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

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

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

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

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

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




Последние отзывы

2021/09/11 16:46 ••• Gudleifr
Изобретение очередного велосипеда?

2021/09/01 23:42 ••• Gudleifr
Философия языка

2021/08/31 22:04 ••• Gudleifr
Должна ли программа быть удобочитаемой?

2021/08/30 00:42 ••• Gudleifr
Все языки эквивалентны. Но некоторые из них эквивалентнее других

2021/08/19 20:52 ••• Gudleifr
В защиту PL/1

2021/08/19 20:34 ••• Gudleifr
Каким должен быть язык программирования?

2021/08/11 11:24 ••• Gudleifr
Почему обречён язык Форт

2021/08/07 13:43 ••• Anatoly
Компилятор

2021/08/07 13:30 ••• Anatoly
Многоязыковое программирование

2021/06/16 13:10 ••• Александр Коновалов aka Маздайщик
Не поминайте всуе PL/1

2021/05/19 23:15 ••• Денис Будяк
Энтузиасты-разработчики компиляторов и их проекты

2021/04/25 08:41 ••• kt
Некошерный «goto»

2021/04/19 17:01 ••• Клихальт
О наименовании проекта и языка программирования

2021/04/04 18:29 ••• kt
Переключатель

2021/04/02 19:32 ••• Александр Коновалов aka Маздайщик
Циклы