Откуда взялся этот компилятор и почему он выделен среди остальных?
Компилятор когда-то был дисассемблирован из исходного PL/I-86 фирмы Digital Reseach. Он выделен особо, поскольку его развитие идет в России почти 30 лет независимо от западных разработчиков. С этой точки зрения это один из немногих российских компиляторов для языка общего назначения, причем такого развитого.
Почему компилятор можно считать отечественным, если он получен дисассемблированием американского?
С тех пор введено огромное количество изменений и расширений. От первоначального кода почти ничего не осталось. Заодно исправлено и немало ошибок, содержавшихся в исходном варианте.
Современен ли этот компилятор и развивается ли он сейчас?
Да, развивается. В 1984 году при своем выпуске это был компилятор для MS DOS версии 1.0 и IBM-PC /XT. Сейчас он генерирует код для Win64 (x86-64), т.е. фактически теперь это совершенно другая программа. Поэтому, например, в исходном варианте можно было иметь переменные только типа BINARY FIXED(15), а теперь можно даже BINARY FIXED(63). Кроме этого, постоянно продолжается оптимизация генерируемого кода, а этот процесс бесконечен.
У меня есть старая программа, написанная еще для ЕС, она скомпилируется Вашим компилятором без проблем? Какие могут быть тут подводные камни?
Увы, скорее всего нет. Это подмножество языка, хотя и основано на общей структуре PL/1, имеет ряд особенностей. Например, здесь недопустимы неописанные переменные. Но, погодите, выбрасывать старую программу. Опыт показывает, что большинство требуемых изменений формально и не вызывает никаких затруднений.
Что еще «отечественного» есть в компиляторе?
Можно использовать русский язык совершенно свободно, в том числе для ключевых слов. Т.е. можно почти весь текст писать кириллицей. Также некоторые вновь введенные расширения имеются только в этом компиляторе.
Бесплатен ли компилятор?
Да, компилятор можно использовать безо всякой оплаты.
Используется ли сейчас этот компилятор?
Да, с успехом используется в РКК «Энергия». Например, на Российском сегменте МКС на лэптопах (ноутбуках) экипажа постоянно запущена программа, информирующая экипаж о полетной обстановке. Экраны с этой программой часто попадает в кадры хроники с МКС. Она создана с помощью данного компилятора и в данный момент продолжает развиваться.
Для каких задач может быть использован этот компилятор?
Для множества совершенно разных задач, поскольку язык по-настоящему универсален. Чаще всего это т.н. «инженерные» задачи, связанные с различными вычислениями. В компилятор даже вставлены «физические» типы, помогающие контролировать правильность записи формул, отражающих физические законы (см. соответствующую статью). Поскольку можно использовать русский язык, компилятор хорошо подходит для начального изучения программирования в школах и ВУЗах. Однако это «полный» продукт и мощный язык, на котором можно создавать серьезные профессиональные проекты. В данном случае предполагается прямое обращение к Win API.
Почему выбран язык PL/1?
На заре появления персональных компьютеров это был наиболее мощный язык, даже в виде подмножества. Потенциал языка оказался настолько большим, что даже сейчас, много лет спустя, он удовлетворяет большинству потребностей без серьезных переделок. Из крупных переделок потребовался лишь переход от 16-разрядных программ к 32-х разрядным, а затем и к 64-х разрядным.
Для создания программ, кроме компилятора нужно еще много других компонентов. Где их взять?
Все необходимые компоненты вместе с компилятором расположены в одном EXE-файле. Таким образом, для создания программ нужен лишь один этот EXE-файл и простой текстовый редактор. Отладку можно вести с помощью интерактивного отладчика, который автоматически встраивается в каждую выполняемую программу.
На чем написан компилятор? Что нужно из других средств программирования, чтобы перетранслировать его при внесении изменений?
Из-за исходного дисассемблирования компилятор фактически сам был написан на ассемблере, а некоторые утилиты на PL/1.
Для того чтобы перетранслировать его никаких других средств, кроме этого же продукта не требуется. Можно сказать, что компоненты написаны на ассемблере и PL/1, а транслятор с ассемблера написан на этом же ассемблере. Так, что перетрансляция всей системы программирования совершенна автономна.
Где дополнительно можно узнать, как устроен компилятор?
Большая часть статей на сайте в той или иной мере связана с описанием внутреннего устройства этого компилятора и его системной библиотеки.