ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 08 авг 2020, 03:03

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 3 сообщения ] 
Автор Сообщение
 Заголовок сообщения: PL/M
СообщениеДобавлено: 02 янв 2017, 19:24 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Случился Новый Год, друзья! Вышел новый номер журнала "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.
А вот здесь есть всякое, относящееся к этому языку.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: PL/M
СообщениеДобавлено: 05 янв 2017, 11:47 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Еще прибыло материалу - Знакомство с CP/M80: программирование, где тоже идет речь о PL/M, и The PLMX Compiler.

Читать старые доки еще в простом .txt формате - просто роскошь. )

p.s.
Кросскомпилятор со страницы z80pack отлично собрался под Линуксом, пришлось только поставить компилятор Фортрана. )))
Настоящий олдскул.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: PL/M
СообщениеДобавлено: 28 июл 2020, 14:16 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 223
PL/M это сильно обрезанная версия PL/1, а вот PL/1 это "чёрт в ступе" - там, как и в АДА есть всё - мультизадачность, конкуррентное выполнение и т.п. В своё время IBM его так и не смогли довести до ума, а поскольку по дизайну он был несколько устаревший к моменту выхода, то его потом вытеснили другие языки. Что от него осталось в PL/M сказать не могу.

p.s. отсутствие рекурсии - это преднамеренная "фича", тогда остальные языки были такими-же (например Фортран), тут дело в том, что вся память отводится на этапе компиляции и стек не нужен, что в свою очередь повышает надёжность (такая вещь, как динамическое переполнение стека, становится невозможной). Кстати, для встраиваемого программирования на Си это проблема, т.к. управлять стеком из программы невозможно (нельзя перехватить и обработать исключение по доступу к нему и т.п.), поэтому во многих системах используют свой параллельный стек. Например, стандартная реализация qsort() как правило использует массив фиксированного размера (зависит от максимального доступного в системе ОЗУ, по факту он невелик, т.к. его размер это логарифм от объёма) и не осуществляет рекурсивный вызов самой себя.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 3 сообщения ] 

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB