spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Допустим, захотелось нам в Фортране сделать указатель на функцию PF и сделать его указывающим на функцию F.
Пишем
      PROGRAM MAIN
      EXTERNAL F
      PF = F
      END

Так, разумеется, нельзя. Все три компилятора, указывая на строку присваивания, говорят
Форекс: ФYHKЦ F БEЗ APГ
Фортран-Дубна:
HEПPABИЛЬHO ИCПOЛЬЗOBAHO HAИMEHOBAHИE ФYHKЦИИ.

OШИБOЧHЫЙ OПEPATOP ЛИБO ПPOПYЩEH ЗHAK OПEPAЦИИ.

Фортран-ГДР: IMPROPER USE OF IDENTIFIER >F<

Теперь будем не присваивать, а попробуем сделать рассылку данных:
      PROGRAM MAIN
      EXTERNAL F
      DATA PF/F/
      END

Форекс говорит то же самое, что и раньше, Фортран-ГДР - ILLEGAL ITEM IN DATA SET PART, а вот Фортран-Дубна...

CЧETЧИK ПOBTOPEHИЙ DOЛЖEH БЫTЬ ЦEЛOЙ KOHCTAHTOЙ B ПPEDEЛAX 1 - 32767.

не указывая конкретно никуда, а потом еще и
 ABTOKOД  MADLEN
   (1.10.72)
 ДЛИHA ПOДПPOГPAMMЫ ПPEBЫШAET BOЗMOЖHOCTИ MAШИHЫ
                     , OCT ,  00000000 00000000

Ах, так!
      PROGRAM MAIN
      EXTERNAL F
      PF = CAST(F)
      END

      FUNCTION CAST(F)
      CAST=F
      RETURN
      END

Так, разумеется, компилируется, куда оно денется. Теперь попробуем это дело вызвать.
      PROGRAM MAIN
      EXTERNAL F
      PF = CAST(F)
      CALL CALL(PF)
      END

      FUNCTION CAST(F)
      CAST=F
      RETURN
      END

      SUBROUTINE CALL(F)
      CALL F
      RETURN
      END

      SUBROUTINE F
      PRINT 1
   1  FORMAT('HELLO WORLD')
      RETURN
      END

Вылетает на контроль команды (вот он, обман трудящихся). Тогда пишем
      PROGRAM MAIN
      EXTERNAL F
      CALL CAST(F, PF)
      CALL CALL(PF)
      END
      SUBROUTINE CALL(F)
      CALL F
      RETURN
      END
      SUBROUTINE F
      PRINT 1
   1  FORMAT('HELLO WORLD')
      RETURN
      END
*assem
 CAST:,NAME,
 14,STI,
 ,AOX,=3000000
 14,CTX,
 ,STX,
 13,UJ,
 ,END,

И вот так работает.

Date: 2025-08-26 03:13 am (UTC)
x86128: (Default)
From: [personal profile] x86128
В последнем листинге, что за команда CTX ?

Profile

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

January 2026

S M T W T F S
    123
45678910
11121314151617
18192021222324
2526272829 3031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 14th, 2026 01:51 pm
Powered by Dreamwidth Studios