Jan. 22nd, 2025

spamsink: (Default)
[personal profile] spamsink
Незабвенный С. И. Пирин в своё время постарался обеспечить возможность комплексирования Паскаля с другими языками программирования. Так, например, вызывать внешние процедуры со стандартным (фортрановским) соглашением о связях из Паскаля можно было, объявив их как FORTRAN; вместо EXTERNAL;. Также можно было выключать проверку числа и типа параметров этих процедур, описывая их с включённым псевдокомментарием (*=F+*).

Делать паскалевские процедуры входными, чтобы их можно было вызывать извне, можно было с помощью псевдокомментария (*=E+*). В инструкции указываются ассемблерные вставки, необходимые для работы с файлами.

Также можно было вызывать целиком паскалевские программы как процедуры без параметров.

Всё бы хорошо, да была забыта одна существенная деталь. Как известно из Мазного, в редакторе *EDIT можно было определять собственные обработчики, вызываемые с помощью *U:FILTER, где FILTER должна была быть определена как
      SUBROUTINE FILTER(IN, SERV)
      DIMENSION IN(14),OUT(14)
      EXTERNAL SERV
C     обработка входящей строки в IN
С     формирование исходящей строки/исходящих строк в OUT
С     вызов
      CALL SERV(OUT)
С     для каждой из сформированных строк
      RETURN
      END


К сожалению, Паскаль-компилятор не позволяет указать, что формальный параметр процедуры должен вызываться согласно фортрановскому соглашению о связях, поэтому при использовании Паскаля для написания *U-фильтров приходится городить огороды.

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. 14th, 2026 08:46 am
Powered by Dreamwidth Studios