私はこの問題を解決するために多くの時間を費やしていましたが、何か問題があるとは思われません。本当に私のプログラムが動作しない理由を理解できません
私はオッカムをコーディングし、次のプログラムを持っている方法を学習しました:
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)コンパイラから取得していますエラーメッセージは次のとおりです。light.on = 1
ラインである
Error at lift.occ:11
Program failed, state = e, eflags = 00000000
。
私の知る限り見ることができるように、light
PROC
はそのlight.change
channel
にいくつかの入力を待つことになると、そのlight.on
variable
に割り当てます。プログラムは、IF
の条件文に進みます。この場合、light.on = 1
行はこの場合、true
と評価されます。しかし、代わりにこのエラーが発生します。
私は-verbose
フラグを使用しようとしましたが、.occファイルには使用できないと言われています。
コンパイラから詳しい情報を入手する方法がわかっているのですか?
これに関するお手伝いをさせていただきます。
おかげ
お返事ありがとうございます。それは有り難いです。私は明日までそれを試してみる必要があります。 – Joe