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,

И вот так работает.
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

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 03:12 pm
Powered by Dreamwidth Studios