spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Программа
   1.   _BEGIN
   2.  _PROCEDURE POP(Q); _PROCEDURE Q;
   3.  _BEGIN Q(3); _END;
   4.
   5.  _PROCEDURE PIP(A); _LABEL A;
   6.  _BEGIN _GOTO A; _END;
   7.
   8.  _PROCEDURE PAP(B); _INTEGER B;
   9.  _BEGIN OUTPUT(‘T’, ‘INTEGER ’, ‘ZD’, B) _END;
  10.
  11.  POP(PAP);
  12.  _IF _FALSE _THEN 3: OUTPUT(‘T’, ‘ LABEL 3’) _ELSE POP(PIP);
  13.  _END

компилируется и работает, печатая

          INTEGER 3 LABEL 3

Date: 2021-07-11 10:22 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
А на PL/1 это безумие можно повторить?

Date: 2021-07-12 01:36 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
Тогда как насчёт FORTRAN?

Date: 2021-07-12 04:46 pm (UTC)
paserbyp: (Default)
From: [personal profile] paserbyp
Ясно…

Date: 2021-07-12 05:30 am (UTC)
vak: (Default)
From: [personal profile] vak
По моему, только в Алголе 60 целые числа можно было ничтоже сумняшеся преобразовывать в метки. Уже в Алголе 68 эту дичь убрали.

Date: 2021-07-12 08:35 pm (UTC)
vak: (Default)
From: [personal profile] vak
То есть никакая раздельная компиляция в принципе не подразумевалась. Интересно, найдётся хоть один современный компилятор Алгола, который сумеет воспроизвести этот трюк с передачей числа как метки.

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 13th, 2026 04:40 am
Powered by Dreamwidth Studios