spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Незабвенный С. И. Пирин в своё время постарался обеспечить возможность комплексирования Паскаля с другими языками программирования. Так, например, вызывать внешние процедуры со стандартным (фортрановским) соглашением о связях из Паскаля можно было, объявив их как 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-фильтров приходится городить огороды.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

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 02:18 pm
Powered by Dreamwidth Studios