Сайт: PL1.SU

Этот сайт пока не обновляется, но в ближайщие месяцы, скорее всего, сайт начнёт полноценно работать.

Разработчик: Дмитрий Юрьевич Караваев, к.т.н, сотрудник РКК «Энергия».

Сайт предназначен для распространения и оказания помощи в использовании отечественного транслятора с языка PL/1, работающего в среде Wintel (x86+Win32).

Транслятор разрабатывался на основе программы PL/I-86 фирмы Digital Research и использовался в течение 25 лет в РКК «Энергия», постепенно видоизменяясь по мере развития вычислительных средств и операционных систем.

Цели распространения транслятора

1. Предоставление российскому сообществу программистов компактного отечественного бесплатного средства программирования, реально используемого на практике, причем язык программирования проверен временем и ранее был широко известен в нашей стране.

2. Пропаганда создания Национальной Программной Платформы в части отечественной среды разработки программного обеспечения.

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

Примеры использования транслятора

За десятилетия транслятор использовался на практике для решения разных задач, например, при разработке программ управления каналами связи, при расчетах на прочность, для обработки фотоснимков Земли, для моделирования процесса стыковки и т.п.
Впервые транслятор был использован для создания вспомогательного наземного программного обеспечения при подготовке данных системы управления «Бураном». Вместе с компьютером ЕС-1840 он был задействован как элемент контроля во время испытательного полета 18 ноября 1988 года.
Затем транслятор был использован для создания программ управления научной аппаратурой на орбитальной станции «Мир», в том числе для телеоператорного управления поворотной платформой, находящейся на внешней поверхности модуля «Квант-2».
В настоящее время транслятор продолжает использоваться для создания прикладного программного обеспечения бортовых компьютеров (ноутбуков) экипажа на российском сегменте Международной космической станции.

Возможные пользователи

Большой задел по данному транслятору и независимость от иностранных разработчиков позволяет предлагать его российскому сообществу программистов как одно из универсальных средств разработки, отладки и сопровождения программ. Среди старшего поколения отечественных программистов есть много людей, использовавших язык PL/1 и имевших большой опыт его применения при большом объеме готовых наработок. Появление свободного и бесплатного транслятора может помочь им вдохнуть в старые работы новую жизнь.

Особенности транслятора

Транслятор основан на стандарте языка X3.74, появившемся уже после стандарта X3.52, т.е. того стандарта, который был ранее реализован для IBM-360 и ЕС ЭВМ. Это одновременно и преимущество и недостаток. Недостаток заключается в том, что большинство программ EC ЭВМ потребует исправления для использования данного транслятора. Например, здесь нельзя использовать неописанные переменные, отсутствует класс памяти CONTROLLED, нет механизма AREA и ряда других элементов «старого» языка, которые в новом стандарте были исключены в пользу упрощения.
Но наличие изменений является одновременно и преимуществом, отражающим объективный ход развития и компьютеров и представлений, каким должен быть язык программирования. Например, индекс массива теперь может иметь атрибуты BINARY(31), а не оставаться BINARY(15) как на ЭВМ 60-х годов с их ограниченной памятью.

Краткая история создания транслятора

Не пытаясь развязать очередную «религиозную войну» следует отметить некоторой перекос в развитии языков программирования в последние 10-15 лет в сторону неоправданной сложности и постоянного поиска новых волшебных средств или «серебряных пуль». Проверенный и надежный PL/1, удобный для инженерных задач, оказался пасынком на персональных компьютерах. Вероятно, в этом был и элемент случайности, поскольку новая эра развития компьютеров, так сильно повлиявшая на весь окружающий мир, началась с IBM PC. Тогда можно было ожидать, что IBM, выпустив свой персональный компьютер, предоставит для него и свой же язык PL/1 (до сих пор использующийся внутри самой IBM). Авторитет IBM был очень высок, язык стал бы доступен для миллионов пользователей и, возможно, сейчас бы мы жили совсем в другом компьютерном мире. Однако этого не произошло и даже транслятор PL/I-86, разработанный Гарри Килделом (Gary Kildall) года через полтора после появления в магазинах IBM PC, остался незамеченным и неизвестным большинству программистов.
Транслятор PL/1 «прижился» в одном из подразделений РКК «Энергия» также благодаря случайности, просто потому, что был куплен вместе с одним из первых персональных компьютеров. Первоначально задачи сопровождения и развития транслятора не ставилось. Однако объективная необходимость заставила начать анализ, а затем и исправления транслятора, который к тому же автором более не обновлялся. К началу 90-х, когда стали доступны разные системы программирования, транслятор PL/1 уже был достаточно освоен и развит, чтобы принять решение продолжать им пользоваться и сохранить все наработки. При этом удалось перейти от команд IA-16 к IA-32, а затем и от MS DOS к Windows (был период работы программ уже в 32-х разрядном режиме, но еще под MS DOS). Сейчас на повестке дня стоит очередной переход к новой архитектуре – IA-32e.

Транслятор PL/1 (модуль plink.exe) транслирует не только программы на PL/1, но и на ассемблере x86 (исходный язык определяется по расширению имени файла). Транслятор не использует сторонних технологий. Т.е. это self-hosted, самодостаточная технология, льёт воду на мельницу нашей технологической независимости.