8.3.2. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ²
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ ΠΏΡΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΊ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΡ, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²Π΅ΡΠ½ΡΠΌ ΠΊ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ.
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π»Π΅Π΅ Π² ΡΠ΅Π»ΡΡ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ "Π±Π°Π·ΠΎΠ²ΡΠΌ" (host) ΡΠ·ΡΠΊΠΎΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ°ΠΊΠΎΠΌ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ΅, ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΊΠ°ΠΊ ΠΊΠ°ΡΠΊΠ°Ρ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ΡΡ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ.
ΠΠ°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ°. Lisp-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΡΠ°ΡΠΎΠΉ ΡΠΊΠΎΠ»Ρ (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°) ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠ΅ΠΌ ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ. ΠΠ½ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Emacs ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Π² ΡΠ·ΡΠΊΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΠΎΠ»Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Tel, Python ΠΈ Perl. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ»ΠΈ Π΅Π³ΠΎ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎΠΉ Π΄Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠ»ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°ΠΆΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°. Π ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘ (ΠΈΠ»ΠΈ Π‘++) ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ.
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π‘-ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π² Π‘-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². Π Π°ΡΡΠΈΡΠΈΡΡ ΡΠ·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΡΡΠ°Π²ΠΈΠ² Π΅Π³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π‘-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π‘ ΡΡΠ°Π»ΠΈ Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΡΡΠΎΠΈΡΡ ΡΠ·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ Π² Π‘-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π‘.
ΠΠ±Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΡΠΈΠΏΠΎΠ² Π‘ ΠΈ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π² ΡΠ΅Π»ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ . ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Tel, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π΅ 14, Π΄ΡΡΠ³ΠΈΠΌ β Guile, Π΄ΠΈΠ°Π»Π΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Lisp-Π²Π°ΡΠΈΠ°Π½ΡΠ° Scheme. Guile ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π² Π‘-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Ρ ΠΎΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΄Π½ΠΎ) ΡΠ°ΡΡΠΈΡΡΡΡ ΠΈΠ»ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ·ΡΠΊ Perl. ΠΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ Python ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π²Π½Π΅Π΄ΡΡΡΡ Π΅Π³ΠΎ; Π‘-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π² ΠΌΠΈΡΠ΅ Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ. Π―Π·ΡΠΊ Java ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° "ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²" Π² Π‘, Ρ ΠΎΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎΠ³ΠΎ Π±Π΅ΡΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Unix (shell) Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Korn (ksh93 ΠΈ Π±ΠΎΠ»Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½ Π½Π΅ Π½Π°Π΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊ Π½Π°Π΄ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΠΎΠΌΡΡ ΠΏΡΠΈΡΠΈΠ½ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΠΏΠΏΠ°ΡΠ°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡ ΡΠ°ΡΡ ΠΈ lex.
8.3.3. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ
ΠΠ»Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ XML Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ ΠΊΠ°ΠΊ ΡΠΈΠΏ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²Π΅ΡΠ΅Π½ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² Π³Π»Π°Π²Π΅ 5, ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ β XML ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΠΌ. ΠΡΠ»ΠΈ XML Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Unix-ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ (ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΊΡΠ΅ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π‘-ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ ΠΈ Ρ.Π΄.).
ΠΡΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠΎ ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°ΡΡ ΠΈ lex (ΠΈΠ»ΠΈ ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅), Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠ°, ΡΡΠΎ ΡΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π½ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ°ΠΆΠ΅ ΡΠΎΠ³Π΄Π° ΡΡΠΈΠ»ΠΈΡΠ° ΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π³/Π°ΡΡ-ΡΠΏΠ΅ΡΠΈΡΠΈ-ΠΊΠ°ΡΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ·ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅. Π Π³Π»Π°Π²Π΅ 9 ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΎΡ ΡΠ°ΡΡ ΠΈ lex ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² ΡΠ·ΡΠΊΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΄ΡΡΠ²Π°, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Ρ4(1) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
8.3.4. ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠ°ΠΊΡΠΎΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΈΠ·Π»ΡΠ±Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ·ΡΠΊΠΎΠ² Π² ΡΠ°Π½Π½Π΅ΠΉ Unix. Π―Π·ΡΠΊ Π‘, Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠΈΠ½ΠΈ-ΡΠ·ΡΠΊΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ pic(1). ΠΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Ρ4 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ°ΠΊΡΠΎ-ΡΠ°ΡΡΠΈΡΡΡΡΠΈΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ².
ΠΠ°ΠΊΡΠΎΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΡΡΠ½ΡΡ ΠΈ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ². ΠΠ° ΡΠ°Π½Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΠΎΠΊΠ°Π·ΡΠ²Π°Π» Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠΏΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°ΡΡΠΎ Π±ΡΠ»ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΡΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠ°ΠΊΡΠΎΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅, Π»Π΅ΠΆΠ°ΡΠ΅ΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ, Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ³Π°ΡΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΡΠΆΠ΅Π»ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ»Ρ ΡΠ·ΡΠΊΠ° Π‘ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΎΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ.
#define max(x, Ρ)Β Ρ > Ρ ? Ρ : Ρ
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌ Π² ΡΠ΅Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°, ΡΠ΅ΠΌ > ΠΈΠ»ΠΈ ?:. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ max (Π° = Π¬, ++Ρ). ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π·Π°Π±ΡΠ», ΡΡΠΎ ΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π° = b ΠΈ ΠΏΡΠ΅ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ max Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π° = b > ++Ρ ? Π° = b : ++Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π‘ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π° = (b > ++Ρ ? Π° = b : ++Ρ). Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π°.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ, ΠΊΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ° Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ.
#define max(x, Ρ)Β ((Ρ ) > (Ρ) ? (Ρ ) : (Ρ))
Π‘ ΡΠ°ΠΊΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎ ΠΊΠ°ΠΊ ((Π° = Π¬) > (++Ρ) ? (Π° = Π¬) : (++Ρ) ), ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π²Π°ΠΆΠ΄Ρ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΠΊΡΠΎΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ ΡΡΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΄Π½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π‘ ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΡΡΡΠΌ. ΠΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.