PROGRAM DEMO; VAR OKTOBUY:SEMAPHORE[0]; OKTOBAKE:SEMAPHORE[8]; PROCEED:BOOLEAN; PROCEDURE PRODUCER(PID:CHAR); BEGIN REPEAT WAIT(OKTOBAKE); WRITELN('PROCESS #',PID,' BAKED A LOAF'); SIGNAL(OKTOBUY); UNTIL (PROCEED=FALSE); END; PROCEDURE CONSUMER(PID:CHAR); BEGIN REPEAT WAIT(OKTOBUY); WRITELN('PROCESS #',PID,' BOUGHT A LOAF'); SIGNAL(OKTOBAKE); UNTIL (PROCEED=FALSE); END; BEGIN (*MAIN*) PROCEED:=TRUE; COBEGIN PRODUCER('1'); CONSUMER('2'); COEND; END. SE); END; PROCEDURE CONSUMª…ÿž(OP$,"L")´²0§LL³1:„LL³0 (A ´…ÿž(OP$,"S")´²0§SE$³"SYNTAX ERROR" (X ¾…ÿž(F$,"/")´²0§230 (o È…ÿž(F$,".")´²0§230 (‚ Ò…ÿ‡(F$)²10§110 (™ ÜF$³F$«".FOR":�¥250 (¬ æ…ÿ‡(F$)²14§110 (Ï ðP³ÿž(F$,"/"):…P³0§P³ÿž(F$,".") ) úP³ÿž(F$,"/"):…P³0§P³ÿž(F$,"."):S$³ÿŽ(F$,P¬1):™"I",#1,F$ )»‰#1,A$ )<…ÿ�(A$,1)³" "§A$³ÿŽ(A$,ÿ‡(A$)¬1) )N…LL³1§‡#DV,A$ )`"…ÿŒ(1)³¬1§710 )v,…ÿŽ(A$,1)³"C"§260 )‘6…ÿž(A$," DATA")³0§360 )«@P³ÿž(A$,"/"):…P³0§350 )ËJP1³ÿž(P«1,A$,"/"):…P1³0§350 )ÕT�¥460 )å^XT³16:�¥380 *hP³ÿž(A$," INTEGER"):…P³0§390 *rXT³P«1 *>|EC³EC«1:‡#DV,A$:‡#DV,¤XT)"^":‡SE$:�¥260 *W†…ÿž(A$," IF")³0§460 *€�P1³ÿž(A$,"IF"):P³ÿž(A$,"("):…P³0§450 *ŸšP1³P:P³ÿž(A$,"."):…P³0§450 *äP1³P:P³ÿž(P1«1,A$,"."):…P³0§450 *â®P1³P:P³ÿž(A$,")"):…P³0§450 *ì¸�¥460 *þÂXT³P1«1:�¥380 +Ì…ÿŽ(A$,2)³" "§490 +8Ö…ÿŠ(A$)´&H3A °ÿŠ(A$)²&H2F §490 +GàXT³0:�¥380 +gêP³ÿž(A$," PRINT"):…P³0§520 +xôXT³P«1:�¥380 +™þP³ÿž(A$," INPUT"):…P´²0§500 +µSY$³" WRITE":RI³6:FL³0 +ËFL³FL«1:…FL²2§620 +á…ÿž(A$,SY$)³0§610 +ü&P³ÿž(A$,"("):…P´²0§570 ,0XT³ÿž(A$,SY$)«RI:�¥380 ,2:P³ÿž(A$,")"):…P´²0§590 ,LDXT³ÿž(A$,"(")«4:�¥380 ,gNP³ÿž(A$,","):…P´²0§610 ,�XXT³ÿž(A$,"(")«1:�¥380 ,�bSY$³" READ":RI³5:�¥530 ,½lP³ÿž(A$," FORMAT"):…P³0§260 ,Ôv…ÿž(A$,"(")´²0§650 ,å€XT³P«6:�¥380 ,üŠ…ÿž(A$,")")´²0§670 -”XT³P«12:�¥380 -(žP³ÿž(A$,"'"):…P³0§700 -I¨P1³ÿž(P«1,A$,"'"):…P1´²0§700 -Z²XT³P¬1:�¥380 -d¼�¥260 -lÆš#1 -�Ї#DV,"TOTAL SYNTAX ERRORS=";EC -�Ú…DV³0§750 -¼ä‡"TOTAL SYNTAX ERRORS=";EC -Êî…EC³0§770 -ìø‡"EDIT FILE AND RE-COMPILE":Š -ÿ™"I",#1,F$:J³0 .T$³S$«".TMP":™"O",#2,T$ .1‡"SECOND PASS..." .C J³J«1:»‰#1,A$ .V*…ÿŒ(1)³¬1§1070 .{4…ÿ�(A$,1)³" "§A$³ÿŽ(A$,ÿ‡(A$)¬1) .‘>…ÿŽ(A$,1)³"C"§800 .H…ÿž(A$," REAL")´²0§800 .ÎR…ÿž(A$," CHARACTER")´²0§800 .ò\P³ÿž(A$," DIMENSION"):…P³0§880 /fP³P«10:AC ********************** C DEMO FORTRAN PROGRAM * C ********************** REAL I,J,L,M CHARACTER NAME$,LAST$,ALL$ CHARACTER SPACE$ DIMENSION K(4) DATA SPACE$ / / WRITE(5,100) 100 FORMAT('$ENTER A NUMBER') READ(5,200)I 200 FORMAT(F9.2) WRITE(5,100) READ(5,200)J L=I**2 M=J**2 WRITE(5,300) 300 FORMAT('$YOUR FIRST NAME') READ(5,400)NAME$ 400 FORMAT(A9) WRITE(5,450) 450 FORMAT('$YOUR LAST NAME') READ(5,400)LAST$ ALL$=NAME$//SPACE$//LAST$ K(1)=I K(2)=J K(3)=L K(4)=M CALL COMPARE(I,J) WRITE(5,500)ALL$ 500 FORMAT(' THE NUMBERS, ',A9) WRITE(5,600)L 600 FORMAT(' NUM1 SQRD=',F9.2) WRITE(5,700)M 700 FORMAT(' NUM2 SQRD=',F9.2) CALL LISTER(K) STOP END SUBROUTINE LISTER(K) DO N=1,4,1 WRITE(5,800)N,K(N) 800 FORMAT(' NUM',F2.0,F9.2) END DO RETURN STOP END SUBROUTINE COMPARE(I,J) IF(I.GT.J) GOTO 20 WRITE(5,30) 30 FORMAT(' 2ND NUM LARGEST') RETURN 20 CONTINUE WRITE(5,40) 40 FORMAT(' 1ST NUM LARGEST') RETURN STOP M',F2.0,F9.2) END DO RETURN STOP END SUBROUTINE COMPARE(I,J) IF(I.GT.J) GOTO 20 WRITE(5,30) 30 FORMAT(' 2NC":„FR$(FC)³"CR" 4œ�¥1200 45¦FO$(FC)³"N":FP$(FC)³"" 4c°LN$³ÿŽ(A$,ÿž(A$," ")¬1):FL$(FC)³LN$:�¥800 4§ºP³ÿž(A$,"="):P1³ÿž(A$,","):P2³ÿž(P1«1,A$," "):…P2³0§P2³ÿ‡(A$)«1 4ÃÄ…P´²0°P1²P °P2²P1 §1240 5·#DV,A$:‡#DV,¤P¬1)"^":‡#DV,SE$:‡"EDIT FILE AND RE-COMPILE":š#1:š#2:ÒT$:Š 5'ØP3³ÿž(P1«1,A$,",") 5CâFR$³ÿ�(A$,P«1,P1¬(P«1)) 5hì…P3´²0§ST$³ÿ�(A$,P3«1,P2¬(P3«1)) 5zö…P3³0§ST$³"1" 5‰ …P3²0§1300 5® T0$³ÿ�(A$,P1«1,P2¬(P1«1)):�¥1310 5ÌT0$³ÿ�(A$,P1«1,P3¬(P1«1)) 5ëP4³ÿž(A$,"DO "):…P4³0§1230 6?(P4³P4«3:VR$³ÿ�(A$,P4,P¬P4):A$³"FOR "«VR$«"="«FR$«" TO "«T0$«" STEP "«ST$:�¥1000 6d2P³ÿž(A$,"SUBROUTINE "):…P³0§1230 6o