Ich habe wirklich eine Menge Zeit mit diesem Problem arbeiten und googeln um eine Lösung zu finden, aber ich kann nicht finden, was falsch ist.Wirklich kann nicht verstehen, warum mein Programm nicht funktioniert
Ich habe zu lernen, wie occam codieren und haben das folgende Programm:
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
:
Alles, was ich bin versucht, von einem Prozess zu einem anderen zu tun ist, zu kommunizieren, wenn ich die ‚o
‘ Taste drücken.
Die Fehlermeldung erhalte ich von den (KR o C) Compiler ist:
Error at lift.occ:11
Program failed, state = e, eflags = 00000000
die die light.on = 1
Linie ist.
Soweit ich sehen kann, ist die light
PROC
wird für eine Eingabe warten auf seine light.change
channel
und wird es dann light.on
variable
seiner zuweisen. Das Programm fährt dann mit einer bedingten Anweisung IF
fort, wobei die light.on = 1
Zeile in diesem Fall zu true
auswerten sollte. Aber stattdessen bekomme ich diesen Fehler.
Ich habe versucht, mit dem -verbose
Flag, aber der Compiler sagt, dass Sie es nicht für .occ-Dateien verwenden können.
Weiß jemand wie oder wenn ich genauere Informationen vom Compiler bekommen kann?
Jede Hilfe zu diesem würde sehr geschätzt werden.
Dank
Vielen Dank für Sie zu beantworten. Ich schätze es. Ich werde bis morgen warten müssen, um es auszuprobieren. – Joe