私は本当にこの問題に多くの時間を費やし、解決策を見つけるためにグーグルで検索しましたが、何が問題なのかを見つけることができないようです.
私はoccamをコーディングする方法を学び、次のプログラムを持っています:
PROC light (CHAN OF BYTE screen, CHAN OF INT light.change)
INT light.on :
WHILE TRUE
SEQ
light.change ? light.on
IF
light.on = 1
screen ! 'y'
TRUE
SKIP
:
PROC test(CHAN OF BYTE keyboard, scr)
CHAN OF INT to.light :
INITIAL INT on IS 1(INT) :
BYTE b :
SEQ
light(scr, to.light)
WHILE TRUE
SEQ
keyboard ? b
IF
b = 'o'
to.light ! on
TRUE
SKIP
:
私がやろうとしているのは、「o
」キーを押したときにあるプロセスから別のプロセスに通信することだけです。
(KR o C) コンパイラから得られるエラー メッセージは次のとおりです。
Error at lift.occ:11
Program failed, state = e, eflags = 00000000
これがlight.on = 1
線です。
私が見る限り、 は何らかの入力を待ってから、それを に割り当てます。次に、プログラムは条件ステートメントに進みます。この場合、行は に評価されます。しかし、代わりにこのエラーが発生します。light
PROC
light.change
channel
light.on
variable
IF
light.on = 1
true
フラグを使用してみまし-verbose
たが、コンパイラは .occ ファイルには使用できないと言っています。
コンパイラからより詳細な情報を取得する方法、または取得できるかどうかを知っている人はいますか?
これに関する任意の助けをいただければ幸いです。
ありがとう