IF a AND NOT b THEN ....
ΠΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π±ΡΠ»Π΅Π²Π° Π°Π»Π³Π΅Π±ΡΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅:
IF (x >= 0) and (x <= 100) THEN...
ΠΠ΄Π΅ΡΡ Π΄Π²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠ²Π»ΡΡΡΡΡ Π±ΡΠ»Π΅Π²ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΠΌΡ: x, 0 ΠΈ 100 ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ >= ΠΈ <= ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»Π΅Π²ΡΠΊΠΈΠ΅ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ, Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠΌΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ:
<relation> ::= <expression> <relop> <expression>,
Π³Π΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π΄Π΅ΡΡ β ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
=, <> (ΠΈΠ»ΠΈ !=), <, >, <= ΠΈ >=
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ Π²ΠΈΠ΄ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, TRUE ΠΈΠ»ΠΈ FALSE, ΡΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
<b-factor> ::= <b-literal>
| <b-variable>
| (<b-expression>)
| <relation>
ΠΠΎΡ ΡΡΠ° ΡΠ²ΡΠ·Ρ! ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ² Π°Π»Π³Π΅Π±ΡΡ. ΠΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΠ΅ΠΌ Π±ΡΠ»Π΅Π²ΡΠΊΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ Π²ΡΠ΅ Π±ΡΠ»Π΅Π²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΈΡΠΈΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², Π²Ρ ΠΏΡΠΈΠΉΠ΄Π΅ΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΏΠΈΡΠΊΡ:
Π£ΡΠΎΠ²Π΅Π½Ρ Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΠΏΠ΅ΡΠ°ΡΠΎΡ
0 factor literal, variable
1 signed factor unary minus
2 term *, /
3 expression +, -
4 b-factor literal, variable, relop
5 not-factor NOT
6 b-term AND
7 b-expression OR, XOR
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΠ½ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°, ΡΡΠ° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ. Π Π½Π΅ΡΡΠ°ΡΡΡΡ, ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ! ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎΠΉ Π² ΡΠ΅ΠΎΡΠΈΠΈ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π° Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
IF ((((((A + B + C) < 0 ) AND....
ΠΠΎΠ³Π΄Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ½ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡ ΡΠΎΠΊΠ΅Π½ IF ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΠ»Π΅Π²ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ Π½Π°ΡΠ°Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ A + B + C. Π₯ΡΠΆΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠΎΡΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΎΡΠΈΡΠ°Π» Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
IF ((((((A ,
ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ·Π½Π°ΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ. Π’Π°ΠΊ Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ»ΡΡΠ°Π΅Π². Π‘ΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ² (backtracking) ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡ Π½Π°Ρ ΠΏΡΡΡ ΠΎΡ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π² Π·Π΄ΡΠ°Π²ΠΎΠΌ ΡΠΌΠ΅ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΠ»ΡΡ Π±Ρ Π½Π° ΡΡΠΎ.
ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎ, ΡΡΠΎ ΠΊΡΠ°ΡΠΎΡΠ° ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΡΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ ΠΠΠ€ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»Π°ΡΡ Π»ΠΈΡΠΎΠΌ ΠΊ Π»ΠΈΡΡ Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ΄ΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ².
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π±ΡΠ»Π΅Π²ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ . Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Ρ Π»ΡΠ±ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π΅Π»ΠΎ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ, Ρ ΠΎΡΡ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π½Π°ΡΠ΅ΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. Π‘ΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΊ ΡΠ·ΡΠΊΡ. ΠΡΠΎ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ.
ΠΠΎΠ³Π΄Π° ΠΠΈΠΊΠ»Π°ΡΡ ΠΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΠ°ΡΠΊΠ°Π»Ρ, Π΅Π³ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° (ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ²). Π’Π°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ OR ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ OR ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ Addop ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ AND ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Mulop ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Ρ Term. Π£ΡΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠΉ ΠΊ ΠΎΠ±ΠΎΠΈΠΌ Π²ΠΈΠ΄Π°ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π’ΠΎΠ³Π΄Π° ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ°:
x + (y AND NOT z) DIV 3
ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌΠΈ. Π, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ... Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π² ΡΡΠΎΠΌ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½. ΠΠ°ΡΠΊΠ°Π»Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ ΡΠΊΠΎΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄Π΅Ρ Π²ΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΊΠΎΠ΄, ΡΠ΅ΠΌ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠ²ΡΠΎΡΡ C Π²Π·ΡΠ»ΠΈ Π΄ΠΈΠ°ΠΌΠ΅ΡΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄: ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΡΠ΅ ΠΈ C ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΎ-ΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° Π½Π°ΡΠΈ ΡΠ΅ΠΌΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π² C ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 17 ΡΡΠΎΠ²Π½Π΅ΠΉ! ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ C ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ '=', '+=' ΠΈ ΠΈΡ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ² '<<', '>>', '++', 'β' ΠΈ Ρ.Π΄. ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, Ρ ΠΎΡΡ Π² C Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π±ΡΠ»Π΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅Ρ... Π² C Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π±ΡΠ»Π΅Π²ΡΡ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠ°ΠΊ ΡΡΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½Π° Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ.
ΠΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π΅ΡΡΠΎ ΡΡΠ΅Π΄Π½Π΅Π΅. Π― ΡΠΊΠ»ΠΎΠ½Π΅Π½ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΠ°ΡΠΊΠ°Π»Π΅Π²ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΡΠ°Π½Π½ΠΎΡΡΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ Π»ΡΠ±ΠΈΠ», ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ:
IF (c >= 'A') and (c <= 'Z') then ...
ΡΠΊΠΎΠ±ΠΊΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. Π― Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π½ΡΡΠ΅ ΠΏΠΎΡΠ΅ΠΌΡ, ΠΈ Π½ΠΈ ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π½ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Β«andΒ», ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΠ΅ΠΌ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ:
IF c >= ('A' and c) <= 'Z' then
ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Ρ ΡΠ΅ΡΠΈΠ» ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ, Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π² C.
<b-expression> ::= <b-term> [<orop> <b-term>]*
<b-term> ::= <not-factor> [AND <not-factor>]*
<not-factor> ::= [NOT] <b-factor>
<b-factor> ::= <b-literal> | <b-variable> | <relation>
<relation> ::= | <expression> [<relop> <expression]
<expression> ::= <term> [<addop> <term>]*
<term> ::= <signed factor> [<mulop> factor]*
<signed factor>::= [<addop>] <factor>
<factor> ::= <integer> | <variable> | (<b-expression>)
ΠΡΠ° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΠΌΠΈ ΡΡΠΎΠ²Π½Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ°Π½Π΅Π΅. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ°... Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΠ» Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² ΡΠΊΠΎΠ±ΠΊΠΈ b-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ b-ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠΎΡΠΌΡ b-ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
ΠΡΡΡ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ½ΠΊΠΎΠ΅, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ relop ΠΈ Π²ΡΠΎΡΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
Π‘ΡΡΠ°Π½Π½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ (ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ Π² C) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠ»Π΅Π²ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π±ΡΠ»Π΅Π²ΡΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Β«ΡΠ»Π°Π΄ΠΈΡΒ» Π²ΡΠ΅ Π΄ΠΎ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ. Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΠ°ΡΠΊΠ°Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΏΠΎΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ C. ΠΡΠ»ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ Π²Π°Ρ β Π±ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΠΉΡΠ΅ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΠ°ΡΠΊΠ°Π»Ρ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΏΠ΅ΡΠΈΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΡ Π΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΡΠΎ ΠΌΠ½ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π΄ΠΎ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Cradle ΠΈ Π±ΡΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ΄Π½Π° Π·Π° Π΄ΡΡΠ³ΠΎΠΉ. Π’Π°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ.
ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎΠΉ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Π±ΡΠ»Π΅Π²ΡΠΌΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ Π° Π½Π΅ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΡΠΎ Π΄Π°Π΅Ρ Π½Π°ΠΌ Π½ΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½Π° Π½ΠΎΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈ Π½ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΡΡΠΈ Π΄Π²Π΅ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
{β}
{ Recognize a Boolean Literal }
function IsBoolean(c: char): Boolean;
begin
IsBoolean := UpCase(c) in ['T', 'F'];
end;
{β}
{ Get a Boolean Literal }
function GetBoolean: Boolean;
var c: char;
begin
if not IsBoolean(Look) then Expected('Boolean Literal');
GetBoolean := UpCase(Look) = 'T';
GetChar;
end;
{β}
ΠΠ½Π΅ΡΠΈΡΠ΅ ΡΡΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ°ΡΠΈ:
WriteLn(GetBoolean);
ΠΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π΅. ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠ΅Π½Ρ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΠ΅Ρ Π½ΠΎ ΡΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² D0. ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π΄Π»Ρ Π±ΡΠ»Π΅Π²ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ±ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π΅Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ 0 Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ FALSE ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ TRUE. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ C, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ 1. ΠΠΎ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ FFFF (ΠΈΠ»ΠΈ -1) ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ΅ NOT ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ NOT. ΠΡΠ°ΠΊ, Π½Π°ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ²Π°Ρ Π·Π°ΡΠ΅ΡΠΊΠ° Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ Π±ΡΠ»Π΅Π²ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (BoolExpression, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ):