PC-01 Lviv

It is currently 28 Mar 2024, 13:50

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 3 posts ] 
Author Message
 Post subject: PL/M
PostPosted: 02 Jan 2017, 19:24 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Случился Новый Год, друзья! Вышел новый номер журнала "Downgrade", где опубликована замечательная статья Алексея Завгороднего (aka Kakos_Nonos) "КРОСС КОМПИЛЯТОРЫ ДЛЯ INTEL 8080". Статья солидная, но сегодня предметом нашего внимания будет раздел "Все плохо?". В этом разделе рассказывается, что не все так плохо на самом деле, что существует язык программирования, который изначально разрабатывался с оглядкой на специфику процессора i8080 (тогда как тот же Си разрабатывался с оглядкой на мини-ЭВМ PDP-11). Имя этому языку PL/M. Собственно, далее лично у меня один вопрос к собравшимся, кто-нибудь из почтенных инженеров работал с этим языком?

Про себя скажу, что я не работал. Хотя у меня когда-то была целая книжка по ПЛ/М.

Image

Однако я ее выкинул, когда пришел час Ч (вместе с книжкой по 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


Top
   
 Post subject: Re: PL/M
PostPosted: 05 Jan 2017, 11:47 
Offline
User avatar

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

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: PL/M
PostPosted: 28 Jul 2020, 14:16 
Offline

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 3 posts ] 

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited