АЛГОЛ-БЭСМ вспоминайте

21 views
Skip to first unread message

Leo B.

unread,
Jan 13, 2022, 9:20:06 PM1/13/22
to БЭСМ-6
Я тут между делом разобрался, как в курочинском алголе надо было обращаться к библиотеке стандартных процедур (которая хранилась в текстовом виде в коде УПП): перед началом программы _БИБ : список процедур; 
(пробел между БИБ и : обязателен). Вроде бы почти всё, что находится, то работает (за исключением пары процедур, в которых при вводе были допущены опечатки), всякие там интерполяции по Лагранжу, сортировки, печать графиков плюсиками и звёздочками, и т. п. Удобно то, что при упоминании процедуры и наличии $АЛГО её текст выводится на АЦПУ, хотя и в виде кирпича.

Вопрос вот в чём. В библиотеке имеются процедуры

1. _БИБ ПИ5, ПИ10, ПИ25; (эта строка в нашей версии не печаталась, а в версии от 25-01-80, которую я помню - печаталась бы)
2. _BEGIN _PROCEDURE ПИ5(A1,A2,A3,A4,A5,K,A);_REAL A1,A2,A3,A4,A5;_INTEGER K;_ARRAY A;_BEGIN A1:=A[K+1];A2:=A[K+2];A3:=A[K+3 ];A4:=A[K+4];A5:=A[K+5];_END ; 
3. _PROCEDURE ПИ10(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,K,A);_REAL A1,A2,A3,A4,A5,A6,A7,A8,A9,A10;_INTEGER K;_ARRAY A;_BEGIN A1:=A [K+1];A2:=A[K+2];A3:=A[K+3];A4:=A[K+4];A5:=A[K+5];A6:=A[K+6];A7:=A[K+7];A8:=A[K+8];A9:=A[K+9];A10:=A[K+10];_END ;
4. _PROCEDURE ПИ25(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,K,A);_REAL A1, A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25;_INTEGER K;_ARRAY A;_BEGIN A1:=A[K+1];A2 :=A[K+2];A3:=A[K+3];A4:=A[K+4];A5:=A[K+5];A6:=A[K+6];A7:=A[K+7];A8:=A[K+8];A9:=A[K+9];A10:=A[K+10];A11:=A[K+11];A12:=A[K+12];A13 :=A[K+13];A14:=A[K+14];A15:=A[K+15];A16:=A[K+16];A17:=A[K+17];A18:=A[K+18];A19:=A[K+19];A20:=A[K+20];A21:=A[K+21];A22:=A[K+22];A 23:=A[K+23];A24:=A[K+24];A25:=A[K+25];_END ; 
5. _END

Были ещё процедуры ПИ50 и ПИ100, но я уж решил не зверствовать. Вопрос, для чего бы это издевательство было нужно?

Василий Долматов

unread,
Jan 14, 2022, 1:57:34 AM1/14/22
to be...@googlegroups.com


14 янв. 2022 г., в 05:20, Leo B. <leo...@gmail.com> написал(а):

Алгол-БЭСМ был ОХРЕНЕННО медленным. 

При этом очень медленно почему-то обрабатывалась выборка элемента из массива. 
(Склероз в углу бубнит, что в свое время я интересовался этим вопросом и посмотрел генерируемый код… Индексация элемента массива там _всегда_ делалась через команду  МОД (ИК=)


Именно поэтому, как только появился Алгол-ГДР, мы ушли со своими задачами туда. Выигрыш по скорости достигал 5-10 раз(!).

Могу предположить, это "процедуры-лайфхаки», которые позволяли один раз выбрать какой-то слайс из массива и дальше работать с ним как с набором простых переменных… 

Мнемоника - «ПИ» - «пипец индексам»? :)

dol@



Leo B.

unread,
Jan 14, 2022, 2:54:53 AM1/14/22
to БЭСМ-6
Понятно, спасибо. Фортрановцы с EQUIVALENCE смотрят на это дело с жалостью.

Leo

Василий Долматов

unread,
Jan 14, 2022, 2:57:09 AM1/14/22
to be...@googlegroups.com
Алголовцы, пользующиеся нормальным Алголом (или Паскалем), смотрят на всякие эти извраты (что в БИБ, что в ФОРТРАНЕ) 
с сочувствием - «как же трудно плыть в серной кислоте» :)

dol@

14 янв. 2022 г., в 10:54, Leo B. <leo...@gmail.com> написал(а):

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/de4806be-a79c-42c6-8373-4fbb7092727an%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages