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

Компилятор

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


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

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

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

Опубликовано: 2012.09.25, последняя правка: 2022.06.01    20:25


Отзывы

     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татьи на компьютерные темы

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

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




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

2024/04/19 22:13 ••• Автор сайта
Признаки устаревшего языка

2024/04/18 11:14 ••• Ivan
Энтузиасты-разработчики компиляторов и их проекты

2024/04/11 00:08 ••• Автор сайта
Постфиксные инкремент и декремент

2024/04/09 23:50 ••• Автор сайта
Русский язык и программирование

2024/04/07 15:33 ••• MihalNik
Все языки эквивалентны. Но некоторые из них эквивалентнее других

2024/04/01 23:39 ••• Бурановский дедушка
Новости и прочее

2024/04/01 23:32 ••• Бурановский дедушка
Русской операционной системой должна стать ReactOS

2024/03/22 20:41 ••• void
Раскрутка компилятора

2024/03/20 19:54 ••• kt
О многократном резервировании функций

2024/03/20 13:13 ••• Неслучайный читатель
Надёжные программы из ненадёжных компонентов

2024/03/07 14:16 ••• Неслучайный читатель
«Двухмерный» синтаксис Python

2024/03/03 16:49 ••• Автор сайта
О неправомерном доступе к памяти через указатели

2024/02/28 18:59 ••• Вежливый Лис
Про лебедей, раков и щук