Паскаль-автокод пошёл!

97 views
Skip to first unread message

Leo B.

unread,
May 7, 2021, 1:30:49 PMMay 7
to БЭСМ-6
Вы будете смеяться, но я таки приступил к декомпиляции Паскаль-автокода (пока там около 1/5 всего кода): https://github.com/besm6/pasauto-re/blob/main/pasauto.pas

Если кто когда видел исходник Паскаль-автокода, то говорите, что помните.

Несколько замечаний и наблюдений по ходу процесса:

1. Размер двоичного кода компилятора - 027777, т. е. он занимает 12 листов памяти под завязку. Для сравнения, декомпилированный Паскаль-монитор кончается на 

адрес Nстр  
24120 8788  0 ЕND

Тексты диагностик явно пытались сокращать для экономии памяти путем откусывания букв ("ид не опред", "ид не перемен", "ДОЛЖНЫ БЫТЬ ТИПЫ RЕАL ИЛИ ЦЙ"), а хотя бы заменить "обнаружено" на "найдено" не догадались.

2. В диагностиках ошибок есть упоминания о каком-то препроцессоре:
НЕ ЗАКРЫТА УСЛ СЕКЦИЯ, ОШ ПРЕПРОЦЕССОРА
(в литеральных константах в пока еще не обработанном коде встречаются DEF и INC)
Что это было? В документации, сколько себя помню, не было ничего подобного.

3. Магическая процедура ГГ, описанная в инструкции как 
 ГГ(А) где А типа ALFA, эквивалентна следующей процедуре:
_PROCEDURE ГГ(А: ALFA);
_VAR I:INTEGER; T:_ARRAY [0..5] _OF CHAR;
_BEGIN
UNPCK(T[0], A);
_FOR I:=0 _TO 5 _DO
_IF T[I]#'0' _THEN _BEGIN
_FOR I:=I _TO 5 _DO
WRITE(T[I]);
EXIT;
_END;
WRITE(T[5])
_END

(что не даёт немедленного понимания, зачем бы оно было надо - ну печать с отбрасыванием старших нулей, ну и что?), применяется очень широко: оказывается, она нужна для печати коротких литеральных строк, т.к. порождает код, гораздо более короткий, чем аналогичный write. Трюк в том, что в Паскале-автокоде литеральные строки длиннее 6 символов допускались исключительно в операторах write, и в нём выдача строк любой длины, в т.ч. 1 символ, делалась одинаково.  Т. е. односимвольный литерал для write - это символ в старшем байте, а константа типа char для всех других применений - это символ в младшем байте.

Автоматически оптимизировать write(строка не длиннее 6 символов) не случилось.

4. Сходство структуры кода Паскаля-монитора с оригинальным CDC-шным я заметил довольно рано, буквально с первых декомпилированных процедур. Ничего подобного про Паскаль-автокод сказать не могу. 

5. Любовь к оператору select имеет свою цену. Он занимает на одно слово больше, чем эквивалентный if-then-else if-then-else if ...

6. Сколько выполняемого кода пошло на поддержку пресловутого оператора branch, я ещё не знаю, а ассемблерного кода ради него выдаётся знатное количество: 570 символов. Это больше, чем максимальное количество символов в строке, которое можно ввести редактором ПУЛЬТа (512). Как я уже знаю из декомпиляции других паскаль-автокодных программ, переводы строк внутри литералов допускаются, и обозначают символ ГОСТ 0175, который удобным образом при перекодировке в код ITM превращается в пробел (в составе диагностики ВЫХОД ПО ALT).  

7. По сравнению c Паскаль-монитором, возможность писать строки произвольной разумной длины заметно облегчает процесс. 

8. Отсутствие различий между целыми числами и символами/перечисляемыми типами (в отличие от  П-М) с одной стороны, облегчает процесс декомпиляции, а с другой - затрудняет понимание. 

9. Оператор перехода можно было писать не только как _GOTO, но и как _GO _TO. Уж что-что, а это надо было бы выкинуть (или вообще не делать) ради экономии места в первую очередь. Интересно, кто там в ВЦ АН был буквоед, требующий подобного поклона Алголу-60, не Курочкин ли? 

Leo

Макаров-Землянский Николай

unread,
May 8, 2021, 4:05:51 AMMay 8
to be...@googlegroups.com
Леонид!
Это очень замечательно!
Но расскажите, пожалуйста, как из ОС ДИСПАК записать файл в UNIX. С удовольствием использую Паскаль-автокод.
 
 
07.05.2021, 20:30, "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/d1a330c3-08af-477f-bf4e-ce56242ffab0n%40googlegroups.com.

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

unread,
May 8, 2021, 6:29:20 AMMay 8
to 'Кирилл Кобелев' via БЭСМ-6


7 мая 2021 г., в 20:30, Leo B. <leo...@gmail.com> написал(а):

Вы будете смеяться, но я таки приступил к декомпиляции Паскаль-автокода (пока там около 1/5 всего кода): https://github.com/besm6/pasauto-re/blob/main/pasauto.pas

Если кто когда видел исходник Паскаль-автокода, то говорите, что помните.
Я видел…

Что сказать?
Пока все «замечания и наблюдения» - соответствуют… 


То, что Лёня наверняка знает, но повторю на всякий случай:

 - «Паскаль-автокод» - это творение лаб. 18-2 ИТМ и ВТ, а именно:
  В.В. Кобелева, С.А.(?) Рыжакова и и С.А.(?) Рыжкова… 

Сделанное ровно в Unix-style, когда первая версия транслятора компилировалась практически врчучную, зато последующие - компилировались предыдущими версиями транслятора. 


Тема про «Паскаль-Монитор» Пирина - полностью независимая и да, готов поверить, что в качестве базы для него послужил Паскаль-CDC…. Потому как результирующий код отличался _очень_сильно_.



Что еще сказать?
 

dol@

Leo B.

unread,
May 8, 2021, 12:14:15 PMMay 8
to БЭСМ-6
Я не верю в ИТМовское происхождение Паскаля-автокода (по крайней мере, в ИТМовское происхождение его окончательной версии), поскольку
инструкция по нему - авторства Пирина. Лучшее, что могу предположить - это то, что в лаб. 18-2 сделали базовую самокомпилирующуюся версию и отдали Пирину 
для расширения входного языка ближе к стандарту. 

Leo

Leo B.

unread,
May 8, 2021, 12:16:08 PMMay 8
to БЭСМ-6
On Saturday, May 8, 2021 at 1:05:51 AM UTC-7 nvmz wrote:
Леонид!
Это очень замечательно!
Но расскажите, пожалуйста, как из ОС ДИСПАК записать файл в UNIX. С удовольствием использую Паскаль-автокод.
 
Из-под SIMH - никак. Из-под эмулятора Диспака - как-то можно, Миша Ярославцев приделывал к нему какие-то магические экстракоды с этой целью.

Миша?

Макаров-Землянский Николай

unread,
May 8, 2021, 1:13:08 PMMay 8
to be...@googlegroups.com
По-моему, утверждение "Из-под SIMH - никак" - ошибочно. Я исхожу из того, что Эмулятор это процесс в UNIX и параллельно нему может крутиться другой независимый процесс. Медуза (это транспортная станция) будет стандартно записывать файлы в формате КРАБа на один из архивных дисков с помощью Э70. Как я понимаю, файл образа диска будет доступен для независимого процесса. Этот процесс считает его, переформатирует в файл UNIXa. Если я нигде не ошибаюсь, то такая схема должна получится. Кстати, я уже читаю (могу, если надо писать) образы дисков от БЭСМ-6 под Виндой. Если пойдет Эмулятор VT-340 под UNIX (сейчас стараюсь это сделать), то указанный кусок Медузы не вызовет затруднений.
Я не прав?
 
 
08.05.2021, 19:16, "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/9d47de0b-5538-403b-a44d-b22699179498n%40googlegroups.com.

Leo B.

unread,
May 8, 2021, 1:25:45 PMMay 8
to БЭСМ-6
Описанный процесс - не "из ОС ДИСПАК под SIMH", а с помощью независимого процесса. Так, конечно, будет работать, и довольно эффективно, если можно сделать событие по изменению файла.
Эмулятор VT-340 под UNIX ждем с нетерпением!

Макаров-Землянский Николай

unread,
May 8, 2021, 1:46:18 PMMay 8
to be...@googlegroups.com
Леонид!
Медуза работает под SIMH! Основные Э/К в ней Э71 и Э70. Она написана на БЕМШе на основе текстов КРАБа. От КРАБа отрезали клешни - получилась Медуза. Это многоканальная транспортная станция для приема-передачи телеметрической информации. Клиентская часть всей этой фигни написана на Паскале под Виндой. Эмулятор VT-340 нужен мне, чтобы редактировать тексты на БЕМШе из КРАБа. В Putty нет режима SEND. Поэтому директива РЕД не работает. Сейчас загвоздка в Эмуляторе VT-340 в том, чтобы из него убрать RichElit, который не транслируется под UNIX. Все остальные компоненты должны транслироваться. Пробовали давно, но раньше все работало.
 
08.05.2021, 20:25, "Leo B." <leo...@gmail.com>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/a63c7242-68ed-4e7b-8b7c-7cc88dad41e8n%40googlegroups.com.

Макаров-Землянский Николай

unread,
May 8, 2021, 3:10:40 PMMay 8
to be...@googlegroups.com
Интересно, как функционирует ДИСПАК при режиме SEND? Сейчас идет заворот принимаемого символа. А в реальном VT-340 заворота не было.
Наверное, надо переехать в другую тему. Я стал писать здесь, т.к. вся моя конструкция написана на Паскале.
 
 
08.05.2021, 20:46, "Макаров-Землянский Николай" <nv...@yandex.ru>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/10815171620494837%40mail.yandex.ru.

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

unread,
May 8, 2021, 3:16:12 PMMay 8
to 'Кирилл Кобелев' via БЭСМ-6


8 мая 2021 г., в 19:14, Leo B. <leo...@gmail.com> написал(а):

Я не верю в ИТМовское происхождение Паскаля-автокода (по крайней мере, в ИТМовское происхождение его окончательной версии),
Не верь… :)

Дискутировать не буду, я никогда не дискутирую с людьми по вопросам веры :)
Это чревато… :)

поскольку
инструкция по нему - авторства Пирина.
Феерическая логика :)

Лучшее, что могу предположить - это то, что в лаб. 18-2 сделали базовую самокомпилирующуюся версию и отдали Пирину 
для расширения входного языка ближе к стандарту. 


Скорее уж отдали ему, чтобы он узнал как делаются  трансляторы  и сделал-таки Паскаль-Монитор… 
:)

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/1fbf3f6b-213d-4184-80ba-0edcd977df9bn%40googlegroups.com.

Michael Yaroslavtsev

unread,
May 8, 2021, 5:52:25 PMMay 8
to be...@googlegroups.com


On Sat, May 8, 2021 at 3:29 AM Василий Долматов <vdol...@gmail.com> wrote:
...
 - «Паскаль-автокод» - это творение лаб. 18-2 ИТМ и ВТ, а именно:
  В.В. Кобелева, С.А.(?) Рыжакова и и С.А.(?) Рыжкова… 
Рыжков только в 81-ом пришёл.
Надо бы его воспоминания заслушать. Поищу его. 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/35CCD52D-4A3E-4CD1-AC3E-829D4DA5A6C1%40gmail.com.


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
May 8, 2021, 5:55:07 PMMay 8
to be...@googlegroups.com
Не, не припомню такого.
А почему бы в СИМХе какой-нибудь ПЛ-перфоратор не замкнуть на файл? 

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


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
May 8, 2021, 7:59:06 PMMay 8
to be...@googlegroups.com
On Sat, May 8, 2021 at 3:29 AM Василий Долматов <vdol...@gmail.com> wrote:
...

 - «Паскаль-автокод» - это творение лаб. 18-2 ИТМ и ВТ, а именно:
  В.В. Кобелева, С.А.(?) Рыжакова и и С.А.(?) Рыжкова… 

Блин, Вася, попутал ты меня. То-то он нигде не находится!
Рожков он, а не Рыжков.
Послал ему ping.
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/35CCD52D-4A3E-4CD1-AC3E-829D4DA5A6C1%40gmail.com.


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
May 9, 2021, 4:26:49 AMMay 9
to be...@googlegroups.com, Sergey Rozhkov
Приглашаю Серёжу Рожкова для комментария.
(А как его в группу добавить, если он не возражает, конечно?)

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/3C649A8A-1AE9-4CB7-A5FF-DDB107334158%40gmail.com.


--
Thanks,
-- Michael

Serge Vakulenko

unread,
May 9, 2021, 5:05:00 AMMay 9
to БЭСМ-6
On Sunday, May 9, 2021 at 1:26:49 AM UTC-7 BOPOHOK wrote:
Приглашаю Серёжу Рожкова для комментария.
(А как его в группу добавить, если он не возражает, конечно?)

Я отправил ему приглашение.

--Сергей

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

unread,
May 9, 2021, 5:06:29 AMMay 9
to 'Кирилл Кобелев' via БЭСМ-6


9 мая 2021 г., в 02:58, Michael Yaroslavtsev <absolutel...@gmail.com> написал(а):



On Sat, May 8, 2021 at 3:29 AM Василий Долматов <vdol...@gmail.com> wrote:
...

 - «Паскаль-автокод» - это творение лаб. 18-2 ИТМ и ВТ, а именно:
  В.В. Кобелева, С.А.(?) Рыжакова и и С.А.(?) Рыжкова… 

Блин, Вася, попутал ты меня. То-то он нигде не находится!
Рожков он, а не Рыжков.

Склероз проклятый, извини… :( 
Да, Рожков… :(

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADLwzucwFsh7Uaz5T-%3DA9vEBK5THfvUfG3F_mvvo5%3D3OyJEc1Q%40mail.gmail.com.

Sergey Rozhkov

unread,
May 9, 2021, 7:32:32 PMMay 9
to БЭСМ-6
Привет всем!
Ну да, Сергей Рожков - это я :)
В группе у Вадима Валериановича были еще Владимир Тихорский и Александр Рыжаков (А.К. Рыжаков :)).
Саша и я были тогда студентами, а Володя уже был на старшем курсе.
Прекрасное было время! :-)
Насчет Паскаль-автокода могу прояснить ситуацию, поскольку был непосредственным участником событий.
Пскаль-автокод был написан Сергеем Ивановичем Пириным методом раскрутки (как у Вирта написано).
Потом уже появился Паскль-монитор, как отдельное творение.
Вадим Валерианович в ту пору сильно увлекался искуственныи интеллектом  и языком Лисп (он нам читал лекции на Физтехе и по ИИ и по Лисп).
Он активно общался с В.М.Брябриным. на ВЦ и там познакомился с Сергеем Пириным, с языклм Паскаль.
И с этого момента началась любовь к Паскалю.
Кстати, в ИТМ-овском препиринте В.Кобелева "Диалоговая сервисная система "Джин"" (не знаю, есть ли он у вас, если нет, то могу отсканировать) на странице 6 явно написано: "Транслятор с Паскаля для ЭВМ БЭСМ-6 выполнил С.И.Пирин".
А вот Володя Тихорский (и немного я) уже потом сделал ряд тулов на основе Паскаль-автокода и несколько оптимизаций (под псевдо-комментариями).
Есть препринт Володи Тихорского "Дополнительные средства системы Паскаль-автокод" (ИТМиВЕ, 1980 г.) с описанием всего этого.
Могу тоже отсканировать, если надо.
Вадим Валерианович много и часто общался с Пириным, и Сергей Иванович сделал довольно много правок в компиляторе в результате этого общения.
Очень здОрово, что Леня смог заняться Паскаль-автокодом.
Я так понял, что тексты компилятора не сохранились?
Могу еще раз спросить у Володи Тихорского, но, по-моему, все ленты у него пропали.

-сергей

Leo B.

unread,
May 10, 2021, 12:30:02 AMMay 10
to БЭСМ-6
Привет, Сергей!

Препринт Кобелева про Джин мы давно ищем, будем очень благодарны за скан.  

Если я правильно помню, "Дополнительные средства системы Паскаль-автокод" я видел примерно однажды, и запомнил из него всего одну деталь - оператор "выражение _IN тип" (это воспоминание мне потом сильно помогло). Так что скан этого текста тоже нам очень пригодится. Да и собственно инструкция к Паскаль-автокоду у нас неполная, без нескольких глав, набранная со слепой распечатки вручную: https://github.com/besm6/besm6.github.io/blob/master/wiki/pascal-autocode.txt Поэтому будем рады всему, что найдётся.

Текстов компиляторов у нас не было, но в 2017 году я, наконец, собрался и декомпилировал Паскаль-монитор и его утилиты, а потом руки постепенно дошли и до сохранившихся кусков Джина (калах, бега/посадка/шашки), благо они относительно простые. Весь 2020-й год я собирался с духом, и, наконец, взялся за собственно Паскаль-автокод. Даже после небольшого процента кода заметно, что два компилятора заметно разошлись, и уже обнаружилось несколько секретных псевдокомментариев, так что препринт Тихорского будет очень ко времени.

Спасибо,
Leo

Serge Vakulenko

unread,
May 10, 2021, 2:24:12 AMMay 10
to БЭСМ-6
Приветствую, Сергей!

Мы с Вами пересекались пару раз живьём, но не уверен, что Вы помните. Я тогда работал в Курчатнике под руководством Пасынкова и занимался Си-компилятором для Эльбруса-Б. 

Уточню для полноты картины. 
Вот исходники Паскаль-монитора, восстановленные Лёней: https://github.com/besm6/pascal-re/blob/master/pascompl.b6

Компилятор успешно компилирует сам себя и производит идентичный бинарник. Позже Лёня переписал его на Си: https://github.com/besm6/mesm6/blob/master/toolchain/pascompl/pascompl.cc

Совместными усилиями мы добавили к нему линкер, и теперь имеем под Линуксом полную систему кросс-компиляции, поддерживающую формат объектных файлов мониторки и ряд языков программирования (паскаль, алгол, фортран-гдр, фортран-дубна, форекс, мадлен, бемш).

С уважением,
Сергей Вакуленко

Sergey Rozhkov

unread,
May 10, 2021, 11:37:36 AMMay 10
to БЭСМ-6
Леня, привет!

Володе Тихорскому я на всякий случай написал, вдруг у него описание Паскаль-автокода осталась.
А насчет препринтов - сделаю, конечно. А куда выкладывать? Или просто тебе прислать pdf?

К оператору _IN Тихорский  отношения не имел. Это, вообще-то, стандартный оператор Паскал для выявления принадлежности величины множеству (set of <type>).
Единственное, может мы приложили руку к оптимизации _IN :) Но это весьма неточно.

Володя сделал следующее (и это описано в препринте):
- программа ЭХОЛОТ для определения объема памяти, необходимой программе
- программа ЧИСТКА для выявления конструкций (меток, констант, типов, переменных, процедур), не используемых в программе
- дополнительные отладочные средства, задаваемые псевдо-комментариями  F, V, G, S
- дополнительные отимизации по (*=M-*): целочисленное умножение, деление нацело, деление по модулю на константы, являющиеся положительными степенями двойки.

ЭХОЛОТ и ЧИСТКА были сделаны на основе компиялтора Паскаль (тексты у нас были). С.И.Пирин все одобрил.
А Вадим Валерианович активно всем этим пользовался при написании и отладки ДЖИНа.

-сергей
 

On Sunday, May 9, 2021 at 9:30:02 PM UTC-7 Leo B. wrote:

Sergey Rozhkov

unread,
May 10, 2021, 11:41:41 AMMay 10
to БЭСМ-6
Привет, Сергей!

Просто здОрово!!! Посмотрю исходники.
Я Ленечке ответил, постараюсь что-то еще раздобыть, а препринты отсканирую и выложу.

Да, пересекались наверняка )
Я что-то там творил для Эльбруса-Б (расширенный Паскаль), но все это потом осталось недоделаным, увы.

-сергей

Leo B.

unread,
May 10, 2021, 12:45:21 PMMay 10
to БЭСМ-6
On Monday, May 10, 2021 at 8:37:36 AM UTC-7 s.a.r...@gmail.com wrote:
Леня, привет!

Володе Тихорскому я на всякий случай написал, вдруг у него описание Паскаль-автокода осталась.
А насчет препринтов - сделаю, конечно. А куда выкладывать? Или просто тебе прислать pdf?

Можно прислать мне или Сергею, мы выложим. Или можно выложить в какое-нибудь хранилище типа яндекс-диска, мы оттуда заберём. Спасибо!

К оператору _IN Тихорский  отношения не имел. Это, вообще-то, стандартный оператор Паскал для выявления принадлежности величины множеству (set of <type>).
Единственное, может мы приложили руку к оптимизации _IN :) Но это весьма неточно.

Нет, там хитрее. На большинстве архитектур допустимый диапазон элементов множества был достаточно большой (или диапазон кодов символов достаточно маленький), чтобы можно было делать проверку на принадлежность к буквам как C _IN ['A'..'Z']. У Вирта на CDC коды были шестибитные, а длина слова - 60, ему было просто.

Но на БЭСМ-6 этот фокус не проходит, и для аналогичного эффекта надо писать примерно (ORD(C)-ORD'A') _IN [0..ORD('Z')-ORD('A')] . Это недёшево. 
Поэтому кто-то из вас придумал такое: раз тип LETTER = 'A'..'Z' объявлен, и компилятор умеет генерировать код для проверки принадлежности к диапазону значений типа, не пользующийся битовыми множествами, то пусть можно будет писать C _IN LETTER. Причём это точно был кто-то из вас, потому что Паскаль-монитор этого не умеет:

 ******23 ИДEHTИФИKATOP TИПA BMECTO ПEPEMEHHOЙ
 00010    5  2 WRITELN(C IN LETTER)
        *****                    0

А Паскаль-автокод работает:
           СИСТЕМА ПАСКАЛЬ ВЕРСИИ 1.7.76
         1. (*=Р-,Т-,L-*)
         2. _РRОGRАМ ТЕSТ;
         3. _ТУРЕ LЕТТЕR = ’А’..’Z’;
         4. _VАR Т,F: ВООLЕАN;
         5. _(
         6. Т := ’L’ _IN LЕТТЕR;
         7. F := ’_’ _IN LЕТТЕR;
         8. WRIТЕLN(Т, F)
         9. _).
        10.
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
________________________________________________________________________________________________________________________________
                АВТОКОД  00.00.70. БЛОК           N 000001 ЛИСТ 000000

  ТRUЕ FАLSЕ
ВСЕ СДЕЛАНО.


Володя сделал следующее (и это описано в препринте):
- программа ЭХОЛОТ для определения объема памяти, необходимой программе
- программа ЧИСТКА для выявления конструкций (меток, констант, типов, переменных, процедур), не используемых в программе

Бинарники я видел в образах дисков, при желании можно и декомпилировать.

- дополнительные отладочные средства, задаваемые псевдо-комментариями  F, V, G, S

Буквы F, V, G, S я видел в коде разборки псевдокомментариев, но пока не дошел  до мест, где они используются.

- дополнительные отимизации по (*=M-*): целочисленное умножение, деление нацело, деление по модулю на константы, являющиеся положительными степенями двойки.

Это есть и в Паскаль-мониторе. Надо будет сравнить.
 
ЭХОЛОТ и ЧИСТКА были сделаны на основе компиялтора Паскаль (тексты у нас были). С.И.Пирин все одобрил.
А Вадим Валерианович активно всем этим пользовался при написании и отладки ДЖИНа.

Пирина, боюсь, уже не найти. Я 3-4 года назад пытался, но не вышло.

Leo
 

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

unread,
May 10, 2021, 1:43:51 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 19:45, Leo B. <leo...@gmail.com> написал(а):

On Monday, May 10, 2021 at 8:37:36 AM UTC-7 s.a.r...@gmail.com wrote:
Леня, привет!

Володе Тихорскому я на всякий случай написал, вдруг у него описание Паскаль-автокода осталась.
А насчет препринтов - сделаю, конечно. А куда выкладывать? Или просто тебе прислать pdf?

Можно прислать мне или Сергею, мы выложим. Или можно выложить в какое-нибудь хранилище типа яндекс-диска, мы оттуда заберём. Спасибо!

К оператору _IN Тихорский  отношения не имел. Это, вообще-то, стандартный оператор Паскал для выявления принадлежности величины множеству (set of <type>).
Единственное, может мы приложили руку к оптимизации _IN :) Но это весьма неточно.

Нет, там хитрее. На большинстве архитектур допустимый диапазон элементов множества был достаточно большой (или диапазон кодов символов достаточно маленький), чтобы можно было делать проверку на принадлежность к буквам как C _IN ['A'..'Z']. У Вирта на CDC коды были шестибитные, а длина слова - 60, ему было просто.

Но на БЭСМ-6 этот фокус не проходит, и для аналогичного эффекта надо писать примерно (ORD(C)-ORD'A') _IN [0..ORD('Z')-ORD('A')] . Это недёшево. 

Насколько я помню в описании языка Паскаль-Автокод для БЭСМ-6 было явно указано "ограничение реализации" для типа SET, что он не может содержать более 48 элементов. 

Не уверен, что конструкция типа [0..ORD('Z')-ORD('A’)] вообще там скомпилировалась бы… :)

Но мой склероз может меня и подвести :)

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/cf3b9946-44d4-46c3-9ebc-7c3ad552b708n%40googlegroups.com.

Sergey Rozhkov

unread,
May 10, 2021, 1:47:28 PMMay 10
to be...@googlegroups.com
О, а вот это похоже на правду (то, что Василий написал)!
Я теперь тоже такое припоминаю )))


Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/4CA8A61D-5113-4E54-9CE1-A03DF69157EC%40gmail.com.

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

unread,
May 10, 2021, 1:49:57 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 20:47, Sergey Rozhkov <s.a.r...@gmail.com> написал(а):

О, а вот это похоже на правду (то, что Василий написал)!

Да, привет, кстати! Рад слышать живым и здоровым! :) :) :)

И когда ты сказал про Володю Тихорского, я вас, «трёх Кобелевских мушкетёров»,  вспомнил даже визуально… :)

dol@

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADF6C3hzctLFM7xeqPjZT1vcPnXudp9ZZuQuDzdviCRnNY_7qA%40mail.gmail.com.

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

unread,
May 10, 2021, 1:52:59 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 20:43, Василий Долматов <vdol...@gmail.com> написал(а):



10 мая 2021 г., в 19:45, Leo B. <leo...@gmail.com> написал(а):

On Monday, May 10, 2021 at 8:37:36 AM UTC-7 s.a.r...@gmail.com wrote:
Леня, привет!

Володе Тихорскому я на всякий случай написал, вдруг у него описание Паскаль-автокода осталась.
А насчет препринтов - сделаю, конечно. А куда выкладывать? Или просто тебе прислать pdf?

Можно прислать мне или Сергею, мы выложим. Или можно выложить в какое-нибудь хранилище типа яндекс-диска, мы оттуда заберём. Спасибо!

К оператору _IN Тихорский  отношения не имел. Это, вообще-то, стандартный оператор Паскал для выявления принадлежности величины множеству (set of <type>).
Единственное, может мы приложили руку к оптимизации _IN :) Но это весьма неточно.

Нет, там хитрее. На большинстве архитектур допустимый диапазон элементов множества был достаточно большой (или диапазон кодов символов достаточно маленький), чтобы можно было делать проверку на принадлежность к буквам как C _IN ['A'..'Z']. У Вирта на CDC коды были шестибитные, а длина слова - 60, ему было просто.

Но на БЭСМ-6 этот фокус не проходит, и для аналогичного эффекта надо писать примерно (ORD(C)-ORD'A') _IN [0..ORD('Z')-ORD('A')] . Это недёшево. 

Насколько я помню в описании языка Паскаль-Автокод для БЭСМ-6 было явно указано "ограничение реализации" для типа SET, что он не может содержать более 48 элементов. 

Не уверен, что конструкция типа [0..ORD('Z')-ORD('A’)] вообще там скомпилировалась бы… :)
Уточню, что указанная - скорее всего скомпилировалась бы, потому как там всего 26 элементов получается… :)

Sergey Rozhkov

unread,
May 10, 2021, 1:58:10 PMMay 10
to be...@googlegroups.com
Привет, Вася!

Ну конечно и я тебя помню )))
Общались в БЭСМовское время частенько.
Вадим Валерианович создал вокруг себя целое сообщество поклонников БЭСМ-6 и ДЖИНа.
По всей стране!
И стараниями ребят дело БЭСМ-6 живет!!!


Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/2A664ECB-CA78-49EC-8130-C64E5D6BEBC5%40gmail.com.

Макаров-Землянский Николай

unread,
May 10, 2021, 2:04:49 PMMay 10
to be...@googlegroups.com
Знатоки Паскаля!
Подскажите, пожалуйста, есть ли в Паскале какая-либо функция, чтобы удобно посмотреть значение множества? У меня не праздный вопрос, а чисто практический. Я эту конструкцию активно использую. И еще - ord применима к перечислимому типу?
 
 
10.05.2021, 20:53, "Василий Долматов" <vdol...@gmail.com>:
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/EA68AC82-E943-403E-953C-71E3474E5A28%40gmail.com.

Leo B.

unread,
May 10, 2021, 2:16:17 PMMay 10
to БЭСМ-6
On Monday, May 10, 2021 at 10:43:51 AM UTC-7 ReedCat wrote:
Но на БЭСМ-6 этот фокус не проходит, и для аналогичного эффекта надо писать примерно (ORD(C)-ORD'A') _IN [0..ORD('Z')-ORD('A')] . Это недёшево. 

Насколько я помню в описании языка Паскаль-Автокод для БЭСМ-6 было явно указано "ограничение реализации" для типа SET, что он не может содержать более 48 элементов. 

Совершенно верно. 

Не уверен, что конструкция типа [0..ORD('Z')-ORD('A’)] вообще там скомпилировалась бы… :)

А куда оно денется, оно мало того что синтаксически корректно, так и в кодировке ГОСТ между A и Z  хоть и больше 26, но меньше 48 символов. Чуть-чуть. (А - 040, Z - 0114).

           СИСТЕМА ПАСКАЛЬ ВЕРСИИ 1.7.76
         1. (*=Р-,Т-,L-*)
         2. _РRОGRАМ ТЕSТ;
         3. _ТУРЕ LЕТТЕR = ’А’..’Z’;
         4. _VАR С:СНАR;
         5. _(
         6. _FОR С := ’0’ _ТО ’◇’ _DО
         7. _IF (ОRD(С)-ОRD(’А’)) _IN [0..ОRD(’Z’)-ОRD(’А’)] _ТНЕN WRIТЕLN(С, ’ IS А LЕТТЕR’);
         8. _).
         9.
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
А IS А LЕТТЕR
Б IS А LЕТТЕR
В IS А LЕТТЕR
Г IS А LЕТТЕR
...
Д IS А LЕТТЕR
Z IS А LЕТТЕR


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

unread,
May 10, 2021, 2:39:54 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 21:04, Макаров-Землянский Николай <nv...@yandex.ru> написал(а):

Знатоки Паскаля!
Подскажите, пожалуйста, есть ли в Паскале какая-либо функция, чтобы удобно посмотреть значение множества?

А что такое «значение множества»?

У меня склероз говорит, что для множества было определено три операции:
«Добавление _элемента_ в множество»
«Удаление _элемента_ из множества»
и
«Проверка наличия _элемента_ в множестве»

Вот не помню других… :(

Даже про проверку наличия подмножества в множестве - как-то сильно сомневаюсь. 

У меня не праздный вопрос, а чисто практический. Я эту конструкцию активно использую.


И еще - ord применима к перечислимому типу?
Насколько помню - да, вот только результат надо посмотреть что выдаст… :)
Скорее всего номер элемента в перечислении, но «с 0» или «с 1» - я б проверил сначала :)

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/6084191620669388%40mail.yandex.ru.

Leo B.

unread,
May 10, 2021, 3:40:41 PMMay 10
to БЭСМ-6
On Monday, May 10, 2021 at 11:39:54 AM UTC-7 ReedCat wrote:
Знатоки Паскаля!
Подскажите, пожалуйста, есть ли в Паскале какая-либо функция, чтобы удобно посмотреть значение множества?

А что такое «значение множества»?

Содержимое слова в удобном для чтения виде.

write(s) печатала множество в восьмеричном виде в Паскаль-мониторе, а в Паскаль-автокоде нужно извращаться.


У меня склероз говорит, что для множества было определено три операции:
«Добавление _элемента_ в множество»
«Удаление _элемента_ из множества»
и
«Проверка наличия _элемента_ в множестве»

Вот не помню других… :( 
Даже про проверку наличия подмножества в множестве - как-то сильно сомневаюсь. 

s1 < s2 означает проверку на принадлежность.

Leo

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

unread,
May 10, 2021, 3:43:17 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 22:40, Leo B. <leo...@gmail.com> написал(а):

On Monday, May 10, 2021 at 11:39:54 AM UTC-7 ReedCat wrote:
Знатоки Паскаля!
Подскажите, пожалуйста, есть ли в Паскале какая-либо функция, чтобы удобно посмотреть значение множества?

А что такое «значение множества»?

Содержимое слова в удобном для чтения виде.

write(s) печатала множество в восьмеричном виде в Паскаль-мониторе, а в Паскаль-автокоде нужно извращаться.

А что Паскаль-автокод на write(s) выводит?
Вот не помню… :(



Макаров-Землянский Николай

unread,
May 10, 2021, 3:43:19 PMMay 10
to be...@googlegroups.com
 
 
10.05.2021, 21:39, "Василий Долматов" <vdol...@gmail.com>:
 
 
10 мая 2021 г., в 21:04, Макаров-Землянский Николай <nv...@yandex.ru> написал(а):
 
Знатоки Паскаля!
Подскажите, пожалуйста, есть ли в Паскале какая-либо функция, чтобы удобно посмотреть значение множества?
 
А что такое «значение множества»?

Множество это переменная, у которой есть значение. Как я понял, здесь обсуждалась одна из реализаций этой переменной (по-моему, это называется векторная реализация). Поэтому я спросил. Конечно, я сам написал свою функцию вывода. Но интересно, как предполагалось или выводилось значение. Например, в Паскалях БЭСМ-6.
 
У меня склероз говорит, что для множества было определено три операции:
«Добавление _элемента_ в множество»
«Удаление _элемента_ из множества»
и
«Проверка наличия _элемента_ в множестве»
 
Вот не помню других… :(
 
Даже про проверку наличия подмножества в множестве - как-то сильно сомневаюсь. 
 
У меня не праздный вопрос, а чисто практический. Я эту конструкцию активно использую.
 
 
И еще - ord применима к перечислимому типу?
Насколько помню - да, вот только результат надо посмотреть что выдаст… :)
Скорее всего номер элемента в перечислении, но «с 0» или «с 1» - я б проверил сначала :)

Почему-то ребята из Борланда говорят несовместимый тип. Наверное, где-то я промазал.
Кстати, почему говорили, что а in [0..9] эффективней, чем (а>=0) and (а>=9)?
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/397B91D4-2418-4C9F-A4E2-B2D02B2381D9%40gmail.com.

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

unread,
May 10, 2021, 3:46:25 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 22:43, Макаров-Землянский Николай <nv...@yandex.ru> написал(а):

 

Почему-то ребята из Борланда говорят несовместимый тип. Наверное, где-то я промазал.
Кстати, почему говорили, что а in [0..9] эффективней, чем (а>=0) and (а>=9)?
 
СЧ А
И КОНСТАНТА_1777
ПЕ …


СЧ А
ВЧ КОНСТАНТА_0
ПЕ
СЧ КОНСТАНТА_9
ВЧ А
ПЕ


Ммм? :)

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

unread,
May 10, 2021, 3:47:38 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 22:46, Василий Долматов <vdol...@gmail.com> написал(а):



10 мая 2021 г., в 22:43, Макаров-Землянский Николай <nv...@yandex.ru> написал(а):

 

Почему-то ребята из Борланда говорят несовместимый тип. Наверное, где-то я промазал.
Кстати, почему говорили, что а in [0..9] эффективней, чем (а>=0) and (а>=9)?
 
Извините… :)

СЧ КОНСТАНТА_1
  СД А

Leo B.

unread,
May 10, 2021, 3:57:20 PMMay 10
to БЭСМ-6
On Monday, May 10, 2021 at 12:43:17 PM UTC-7 ReedCat wrote:

А что такое «значение множества»?

Содержимое слова в удобном для чтения виде.

write(s) печатала множество в восьмеричном виде в Паскаль-мониторе, а в Паскаль-автокоде нужно извращаться.

А что Паскаль-автокод на write(s) выводит?
Вот не помню… :(

Увы, не компилирует вовсе.

            СИСТЕМА ПАСКАЛЬ ВЕРСИИ 1.7.76
         1. (*=Р-,Т-,L-*)
         2. _РRОGRАМ МАIN;
         3. _VАR S: _SЕТ _ОF 0..47;
         4. _ВЕGIN
         5. S := [3, 5, 7, 13, 25, 37];
         6. WRIТЕLN(S)
         7. _ЕND.
         8.
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
***ОШ.WRIТЕ=2 СТР.=6.NLЕХ=4.ИД=S.СИМ=).КОНТЕКСТ
IТЕLN(S)
_ЕND.
В 7 СТРОКАХ ОБНАРУЖЕНО 1 ОШИБ.

Что именно значит ОШ.WRIТЕ=2 в нашей инструкции было неразборчиво.

Макаров-Землянский Николай

unread,
May 10, 2021, 3:57:31 PMMay 10
to be...@googlegroups.com
Это правильно, если диапазон укладывается в разрядность машины и честные программисты программировали реализацию.
К примеру. Сейчас на Яндексе шла какая-то реклама какой-то школы программирования web-сайтов. У них у самих сайт кривой. Задал им вопрос - типа чему вы учите, если сами не умеете? Мне что-то долго объясняли...
Это я к тому, что раньше были ПРОГРАММИСТЫ (это мы), а сейчас полное говно!
Надо бы ответить про SEND VT-340. Что-то много там накопилось.
 
 
10.05.2021, 22:46, "Василий Долматов" <vdol...@gmail.com>:
--

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

Макаров-Землянский Николай

unread,
May 10, 2021, 4:14:16 PMMay 10
to be...@googlegroups.com
Я это сегодня проходил.
Пришлось писать типа:
WriteSet(a, b,'3', '5', '7', '13', '25', '37')
а тело типа
if a in b then write....
 
 
10.05.2021, 22:57, "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/59d75308-3e86-488f-b7a1-587c2a03b074n%40googlegroups.com.

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

unread,
May 10, 2021, 4:29:14 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 22:57, Leo B. <leo...@gmail.com> написал(а):

Судя по диагностике - он ожидал квадратную скобку после S, то есть, был готов принять элемент множества, но не все множество целиком…

Забавно… И что бы он печатал? TRUE или FALSE в зависимости от наличия элемента?

А можно 

WRITELN(S[3],S[4]) 
Ему подсунуть, если не сложно… ?

Leo B.

unread,
May 10, 2021, 4:35:32 PMMay 10
to БЭСМ-6
On Monday, May 10, 2021 at 1:29:14 PM UTC-7 ReedCat wrote:
Увы, не компилирует вовсе.

            СИСТЕМА ПАСКАЛЬ ВЕРСИИ 1.7.76
         1. (*=Р-,Т-,L-*)
         2. _РRОGRАМ МАIN;
         3. _VАR S: _SЕТ _ОF 0..47;
         4. _ВЕGIN
         5. S := [3, 5, 7, 13, 25, 37];
         6. WRIТЕLN(S)
         7. _ЕND.
         8.
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
***ОШ.WRIТЕ=2 СТР.=6.NLЕХ=4.ИД=S.СИМ=).КОНТЕКСТ
IТЕLN(S)
_ЕND.
В 7 СТРОКАХ ОБНАРУЖЕНО 1 ОШИБ.

Судя по диагностике - он ожидал квадратную скобку после S, то есть, был готов принять элемент множества, но не все множество целиком…

Никогда такого синтаксиса для элементов множества не было. 

Забавно… И что бы он печатал? TRUE или FALSE в зависимости от наличия элемента?

А можно 

WRITELN(S[3],S[4]) 
Ему подсунуть, если не сложно… ?

Как и ожидалось,

 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
***ОШ.WRIТЕ=2 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
***ОШ.WRIТЕL=7 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
***ОШ.WRIТЕL=1 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
В 7 СТРОКАХ ОБНАРУЖЕНО 3 ОШИБ.
 

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

unread,
May 10, 2021, 4:36:54 PMMay 10
to 'Кирилл Кобелев' via БЭСМ-6


10 мая 2021 г., в 23:35, Leo B. <leo...@gmail.com> написал(а):

On Monday, May 10, 2021 at 1:29:14 PM UTC-7 ReedCat wrote:
Увы, не компилирует вовсе.

            СИСТЕМА ПАСКАЛЬ ВЕРСИИ 1.7.76
         1. (*=Р-,Т-,L-*)
         2. _РRОGRАМ МАIN;
         3. _VАR S: _SЕТ _ОF 0..47;
         4. _ВЕGIN
         5. S := [3, 5, 7, 13, 25, 37];
         6. WRIТЕLN(S)
         7. _ЕND.
         8.
 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
***ОШ.WRIТЕ=2 СТР.=6.NLЕХ=4.ИД=S.СИМ=).КОНТЕКСТ
IТЕLN(S)
_ЕND.
В 7 СТРОКАХ ОБНАРУЖЕНО 1 ОШИБ.

Судя по диагностике - он ожидал квадратную скобку после S, то есть, был готов принять элемент множества, но не все множество целиком…

Никогда такого синтаксиса для элементов множества не было. 

Забавно… И что бы он печатал? TRUE или FALSE в зависимости от наличия элемента?

А можно 

WRITELN(S[3],S[4]) 
Ему подсунуть, если не сложно… ?

Как и ожидалось,

Угу, глюкаю… :( Сорри… :(

Спасибо...


 ПАСКАЛЬ-АВТОКОД 9.(17.05.88)
***ОШ.WRIТЕ=2 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
***ОШ.WRIТЕL=7 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
***ОШ.WRIТЕL=1 СТР.=6.NLЕХ=4.ИД=S.СИМ=[.КОНТЕКСТ
IТЕLN(S[3], S[4])
_ЕND.
В 7 СТРОКАХ ОБНАРУЖЕНО 3 ОШИБ.
 


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

Макаров-Землянский Николай

unread,
May 10, 2021, 4:45:57 PMMay 10
to be...@googlegroups.com
Правильно. Так писать нельзя. Это не по-Паскалевски.
 
 
10.05.2021, 23:35, "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/707b7a63-afa6-4229-b384-537504a915aan%40googlegroups.com.

Leo B.

unread,
May 17, 2021, 3:40:29 AMMay 17
to БЭСМ-6
Вы будете смеяться в очередной раз.  Дело дошло до вызова процедуры, которая ещё не была определена, в целях взаимной рекурсии.
В стандартном Паскале для этих случаев есть слово forward, и предопределение процедуры пишется, например, как

procedure procName(... параметры, если есть ...); forward;

... тут procName может вызываться ...

procedure procName; (* параметры повторно не декларируются *)
(* дальше как обычно, объявления и тело процедуры *)

Ровно так это устроено в Паскаль-мониторе. Но не таков Паскаль-автокод! Во-первых, в инструкции написано

7.1. Предопределение процедур.
        _PROCEDURE A;
        _BEGIN
            B(2);
        _END;

        _PROCEDURE B(T: INTEGER);
        _BEGIN
            A
        _END;

Последовательность процедур подобного рода со взаимными ссылками
в версии компилятора Паскаль на ассемблер Чайковского должна быть
прописана в виде:

        _PROCEDURE B(T: INTEGER);+
        _PROCEDURE A;
        _BEGIN
            B(2);
        _END;
        _PROCEDURE B(T: INTEGER);
        _BEGIN
            A
        _END;

Ну ладно, для экономии кода сделали вместо forward плюсик.  Повторное объявление параметров подозрительно; действительно, компилятор ругается на открывающую скобку после B в определении  с номером ошибки, отсутствующим в инструкции.
Ладно, спишем на ошибку copy-paste - уже не знаем, то ли публикатора инструкции, то ли того, кто её набирал со слепой распечатки. Оставляю _PROCEDURE B;  - ругается на точку с запятой с той же ошибкой.

Тогда я чисто интуитивно заменяю точку с запятой на +

        _PROCEDURE B+
        _BEGIN
            A
        _END;

и так оно компилируется. 

Мораль - доверяйте интуиции.

Leo B.

unread,
May 20, 2021, 3:53:38 AMMay 20
to БЭСМ-6
Когда размер исходного текста достиг примерно 020 зон, ввод с помощью "З БУФ=ТТ" перестал правильно работать.
Пришлось переключиться на "новый редактор" (РЕД ПАМ), но это даст только временное облегчение - он может работать с файлами вплоть до 024 зон, чего может не хватить - треть кода пока не обработана, т. е. окончательный размер исходника будет ближе к 030 зонам.

Leo

Макаров-Землянский Николай

unread,
May 20, 2021, 4:04:04 AMMay 20
to be...@googlegroups.com
Как в свое время сказал Коля Балакирев - модулиться надо. Правда, это относилось к БЕМШу.
 
 
20.05.2021, 10:53, "Leo B." <leo...@gmail.com>:
Когда размер исходного текста достиг примерно 020 зон, ввод с помощью "З БУФ=ТТ" перестал правильно работать.
Пришлось переключиться на "новый редактор" (РЕД ПАМ), но это даст только временное облегчение - он может работать с файлами вплоть до 024 зон, чего может не хватить - треть кода пока не обработана, т. е. окончательный размер исходника будет ближе к 030 зонам.
 
Leo

 

--

Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/152c1ec9-3c49-4689-8b22-35bdc80f05a4n%40googlegroups.com.

Michael Yaroslavtsev

unread,
May 20, 2021, 4:37:01 AMMay 20
to be...@googlegroups.com
Так вот почему Кобелёв так убористо писал.

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/152c1ec9-3c49-4689-8b22-35bdc80f05a4n%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
May 20, 2021, 12:41:08 PMMay 20
to БЭСМ-6
Какие у Кобелева могли быть программы на Паскале сравнимые по размеру с компилятором? Тот же калах, к примеру, даже в декомпилированном виде со всеми именами локальных переменных вида L4V12Z вместо каких-нибудь однобуквенных занимает в кодировке ГОСТ всего 015 зон. 

С файлами большого размера, по-видимому, боролись с помощью инклюдов. Секретный (не описанный в документации) препроцессор работает так:

$INC файл = #include "файл" из текущего архива. Вложенные инклюды не допускаются.
$DEF имя = #define имя
$BEG имя =  #ifdef имя
$END = #endif

Отсутствие аналога #else несколько удивляет.

Теперь понятно, с помощью чего, скорее всего, была сделана программа вычисления дебютов в калахе, что от неё не осталось никаких следов.

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

unread,
May 21, 2021, 10:30:31 AMMay 21
to 'Кирилл Кобелев' via БЭСМ-6


Меня тут наши музейщики просят найти тех, кто мог бы помочь им с описанием машин «Урал-1» и «Сетунь» и истории их создания.

Если кто знает людей, имеющих такую информацию (может быть занимающихся историей вычтехники в СССР), то поделитесь информацией о них, пожалуйста.


dol@

Макаров-Землянский Николай

unread,
May 21, 2021, 10:55:55 AMMay 21
to be...@googlegroups.com
Про Урал ничего не могу сказать. А про Сетунь - у меня два однокурсника ею занимались у Брусенцова. Они живут в стране НАТО. Но думаю, проблем не будет.
Что конкретно нужно от них?
 
 
21.05.2021, 17:30, "Василий Долматов" <vdol...@gmail.com>:



Меня тут наши музейщики просят найти тех, кто мог бы помочь им с описанием машин «Урал-1» и «Сетунь» и истории их создания.

Если кто знает людей, имеющих такую информацию (может быть занимающихся историей вычтехники в СССР), то поделитесь информацией о них, пожалуйста.


dol@
 

--

Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу БЭСМ-6.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Просмотреть это обсуждение в Сети можно по адресу https://groups.google.com/d/msgid/besm6/452BC005-AA70-4CB9-A3EC-F84C14E11624%40gmail.com.

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

unread,
May 21, 2021, 11:07:46 AMMay 21
to 'Кирилл Кобелев' via БЭСМ-6


21 мая 2021 г., в 17:55, Макаров-Землянский Николай <nv...@yandex.ru> написал(а):

Про Урал ничего не могу сказать. А про Сетунь - у меня два однокурсника ею занимались у Брусенцова. Они живут в стране НАТО. Но думаю, проблем не будет.
Что конкретно нужно от них?

написать про историю создания, устройство, если сохранилась какая-то техническая документация, то поделиться. 

музейная экспозиция будет иметь следующую структуру:

"В пространстве инсталляции представлены мокапы и части вычислительных машин ЭЦВМ "Урал-1 и «Сетунь». С помощью печатных материалов и интерактивных тач-панелей : 
- рассказывается история проектирования ЭЦВМ "Урал-1 и «Сетунь»; 
- демонстрируется эмулятор троичного компьютера «Сетунь»;
- карта распространения ЭВМ «Сетунь»;
- техническая информация о ЭЦВМ "Урал-1 и «Сетунь» (блок-схемы и технические характеристики);
- краткий таймлайн достижений России и СССР в создании вычислительной техники."

материал в любой раздел - будет принят с благодарностью. 

Leo B.

unread,
May 21, 2021, 11:41:51 AMMay 21
to БЭСМ-6
Писать новое сообщение с новым сабжектом не умеем, да?

Leo B.

unread,
May 21, 2021, 11:57:38 AMMay 21