Этот компилятор существенно отличается от остальных, приведенных на сайте. Есть мнение, что реализованное в компиляторе подмножество языка – это уже не PL/1, а другой язык, лишь за структуру которого была взята общая структура PL/1. Отличий и дополнений действительно много. Но все-таки, «дух» и основные методы и приемы при создании программ остаются прежними. И в этом смысле это именно PL/1. При этом есть еще одно существенное отличие. Этот компилятор можно считать отечественным. И дело не в том, что здесь возможно свободное использование русского языка, а в том, что развитие этого компилятора (исходный вариант разработан в 1982 году в США) много лет идет уже в России, в РКК «Энергия» и не зависит от зарубежных разработчиков. Компилятор активно применялся при разработке ПО, используемого для системы «Энергия-Буран» и орбитального пилотируемого комплекса «Мир», а сейчас используется для различных задач, связанных с Международной космической станцией. Например, для создания программы баллистико-навигационного отображения космонавтам полетной обстановки. Эти программы постоянно работают на Российском сегменте и постоянно совершенствуются.
КРАТКИЕ СВЕДЕНИЯ О РЕАЛИЗАЦИИ КОМПИЛЯТОРА PL/1-KT
- Система программирования, включающая компилятор, редактор связей, редактор библиотеки, транслятор с ассемблера, встроенный отладчик, системные библиотеки, файлы стандартных описаний, словом, все, кроме редактора исходного текста, находится в единственном файле-контейнере PLINK.EXE (PLINK64.EXE).
- Какая именно утилита будет запущена, определяется видом командной строки, по умолчанию по имеющемуся расширению имени файла:
<style=”padding-left: 40px;”>.PL1 – исходная программа на языке PL/1
.A86 – исходная программа на ассемблере
.OBJ – объектный модуль, полученный в результате трансляции
.L86 – библиотека объектных модулей
- Имеется два варианта компиляторов: PLINK.EXE для Win32 и PLINK64.EXE для Win64. Установка компилятора и настройка операционной системы не требуется, хотя и можно режимы компиляции задавать через реестр Windows. Сам компилятор работает как 32-разрядная Windows-программа.
- Исходный текст программы на PL/1 может быть создан с помощью любого текстового редактора (например, FAR) с длиной строк не более 245 символов в кодировке «кириллица DOS» или «кириллица Windows». Все английские ключевые слова имеют русские эквиваленты. Можно использовать и те и другие, даже в одном тексте. Максимальный размер файла с исходным текстом (без учета вложенности других текстов оператором %INCLUDE) не должен превышать 1 Мбайт.
- В результате работы компилятор создаст файл с тем же именем, как и у файла с исходным текстом и расширением .OBJ, представляющий собой объектный модуль в формате OMF 8086/8087 INTEL. Файл помещается в текущую папку на диске. После обработки всех файлов типа .OBJ редактором связей, создается файл с расширением .EXE (максимальный размер коды+данные до 16 Мбайт), который и является выполняемой программой в Windows XP/7/8/10.
- Выполняемая программа не обязательно должна создавать «окна» Windows, использовать механизм «обратных вызовов» или вообще явно обращаться к процедурам Win API. По умолчанию вывод идет в стандартное окно-консоль. Таким образом, пример простейшей программы в виде:
P:PROC MAIN; PUT (‘Hello, world!’); END;
выдаст соответствующий текст на экран.
- С помощью встроенного редактора библиотеки LIB-KT файлы типа .OBJ могут быть объединены в библиотеки и использоваться при формировании выполняемых файлов. Свои собственные библиотеки можно с помощью оператора %INCLUDE включить в список вызываемых по умолчанию библиотек.
- При необходимости (например, для использования команд SSE2) отдельные процедуры или даже целый драйвер для Windows можно написать на ассемблере – для этого имеется транслятор с ассемблера RASM-KT.
- Встроенный в каждый EXE-файл интерактивный отладчик SID-KT позволяет выполнять созданную программу по командам или подпрограммам или по строкам исходного текста, устанавливая контрольные точки и сохраняя при этом связь между именами меток и переменных в программе и их адресами. А с помощью специального режима трансляции можно дополнительно сохранить связь между переменными и их типами в смысле PL/1.
- Утилита LINT-KT проверяет одинаковость параметров внешних (EXTERNAL) процедур в различных модулях.
В настоящее время компилятор сопровождается и развивается в его 64-разрядной версии.