Здравствуйте, x-code, Вы писали:
AC>>процедура может быть потоковой(поток данных) или императивной(поток инструкций)
XC> Это как?
Код программы содержится в процедурах(они же значения-код из первого поста) и только в них.
"процедура" — когда речь идёт о представлении значения-кода как собственно кода(напр. "вызвать процедуру"),
"значение-код" — когда речь идёт о представлении процедуры как собственно значения(напр. "копировать значение-код").
Сам код это последовательность вызовов процедур(в императивной процедуре) или схема соединения вызовов процедур(вызов процедуры это и есть "code component")(в потоковой процедуре).
В императивной процедуре последовательно выполняется вызов за вызовом в порядке записи.
В потоковой процедуре значения поступают с входов(аргументов) "проходят через схему" и выходят через выходы(результаты). Вызов процедуры происходит когда на всех входах(аргументах) есть значение.
Вот например реализация процедуры которая суммирует свои аргументы:
SUM CODE[INT,INT,INT,INT][INT] \\Тип значений-кодов принимающих 4 аргумента и возвращающий один результат типа "INT"
S SUM(A,B,C,D){ \\Императивная процедура
\\Код код суммирования("=>" - оператор копирования значения)
A => T
T + B
T + C
T + D
T => R
\\Определения
T INT
}(R)
G SUM(A,B,C,D){| \\Потоковая процедура
\\Схема суммирования("C1" и "C2" - перемычки).
(A,B)+(C1)
(C,D)+(C2)
(C1,C2)+(R)
|}(R)
Можно представить потоковую процедуру так:
PS: !Ещё в разработке потому могут быть ошибки в концепции, синтаксисе, терминологии и т.п., не судите строго
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)