Случился Новый Год, друзья! Вышел новый номер журнала "
Downgrade", где опубликована замечательная статья Алексея Завгороднего (aka Kakos_Nonos) "КРОСС КОМПИЛЯТОРЫ ДЛЯ INTEL 8080". Статья солидная, но сегодня предметом нашего внимания будет раздел "Все плохо?". В этом разделе рассказывается, что не все так плохо на самом деле, что существует язык программирования, который изначально разрабатывался с оглядкой на специфику процессора i8080 (тогда как тот же Си разрабатывался с оглядкой на мини-ЭВМ PDP-11). Имя этому языку PL/M. Собственно, далее лично у меня один вопрос к собравшимся, кто-нибудь из почтенных инженеров работал с этим языком?
Про себя скажу, что я не работал. Хотя у меня когда-то была целая книжка по ПЛ/М.
Однако я ее выкинул, когда пришел час Ч (вместе с книжкой по PL/1). Даже не помню, чтобы я тогда ее прочел. Еще помню, что под CP/M-80 у меня точно не было транслятора этого языка.
Сейчас я погуглил литературу по ПЛ/М, без проблем кое-что нашел, в том числе и русскоязычное. Что могу сказать? Язык действительно простой, теплый и ламповый, но не без чудинок. Пока меня поразили оператор DO - CASE, я даже не знаю, как такое можно было учудить, отсутствие рекурсии для процедур и оператор CALL TIME. Но я не сдаюсь и продолжаю чтение.
p.s.
Отыскалась хорошая
обзорная статья по сабжу (это кроме Вики). Приведу интригующую цитату:
"Язык процедурный, со строгой типизацией данных, имеет блочную структуру и правила видимости имён. Достоинство языка – его компактность. Интеловский компилятор с PL/M-80 создавал при трансляции очень компактный объектный код с коэффициентом расширения 6, то есть один оператор языка заменялся при трансляции в среднем шестью ассемблерными командами. Аналогично, объ ё мный коэффициент объектного кода по сравнению с эквивалентным ассемблерным лежал в пределах 1,2—1,3. То есть полученный после трансляции объектный код занимал в 1,2 раза больше памяти, нежели код программы, написанной на ассемблере i8080."
p.p.s.
А вот здесь есть
всякое, относящееся к этому языку.