Π‘Π»ΡΠΆΠ±Π° ΠΈΠΌΠ΅Π½
Π‘ΡΠ°Π½Π΄Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΈΠΌΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈ Ρ ΠΈΠΌΠ΅Π½ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΠ²ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° IOR-ΡΡΡΠ»ΠΊΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΡΠ»ΡΠΆΠ±Ρ ΠΈΠΌΠ΅Π½ ΠΈΠΌΡ, Π° ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ.
Π‘Π»ΡΠΆΠ±Π° ΠΈΠΌΠ΅Π½ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ Π΅ΡΡΡ Π½ΠΎΠΌΠ΅Ρ. ΠΡΠ° ΡΠ»ΡΠΆΠ±Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IOR-ΡΡΡΠ»ΠΎΠΊ, Π½ΠΎ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ (name binding). ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠΎΡ Π½ ΠΎΡΠΈΡΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° (naming context). Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈ Ρ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ ΠΌ ΠΈ ΠΈ ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌ ΠΈ. ΠΠ΄Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π³ΡΡΠΏΠΏΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ , Π° Π΄ΡΡΠ³ΠΈΠ΅ β ΠΊ Π³ΡΡΠΏΠΏΠ΅ Π±Π΅Π·ΠΎΠΏΠ°Ρ Π½ ΠΎΡΡΠΈ. ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ Π²ΠΈΠ΄Π°ΠΌ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°: ΠΏΠΎΠ΅Π·Π΄, Π°Π²ΡΠΎΠ±ΡΡ, Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²ΠΈΠ΄Π°ΠΌΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° ΠΈ ΡΠ²ΡΠ·Π°ΡΡ Ρ Π½ΠΈΠΌ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°. Π’Π°ΠΊΠΎΠ΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Ρ Π΅Π³ΠΎ IOR-ΡΡΡΠ»ΠΊΠΎΠΉ. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ½ΠΎΡΠΈΠΌ ΡΡΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΡΠΏΠΏ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ (naming graph). ΠΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌ)' ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΈΡ. 8.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡ Π» Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠΌΡ airborne (Π²ΠΎΠ·Π»ΡΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°). ΠΠ»Ρ ΠΈΠΌΠ΅Π½ΠΈ airborne ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ flying_machines (Π»Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΡ). ΠΠΎΠ½ΡΠ΅ΠΊΡΡ flying_machines ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ Π½Π΅ΡΠΊΠΎ Π» ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ). ΠΠΎΠ½ΡΠ΅ΠΊΡΡ transportation (ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°) Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ flying_machines ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ. ΠΠ° ΡΠΈΡ. 8.7 ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ flying_machines Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ sonic (Π·Π²ΡΠΊΠΎΠ²ΡΠ΅). ΠΠΌΡ sonic ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ fast_flying_machines. ΠΠΌΡ sonic ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ 8888. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡ Π³ΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎ β ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Β«ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Π½ΠΎΠ²ΠΎΠΉΒ» ΡΡΡΡΠΊΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π΅ΠΉ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΏΠ°Π½ΠΎΡΠ°ΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΌΡΠ»ΡΡΠΈΠ°Π³Π΅Π½ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΠΈ (ΡΠΌ. Β§ 8.1). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ, ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌ, ΠΈΠΌΠ΅Π½Π½ΠΎΠΉ Π³ΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ° ΡΠΈΡ. 8.8 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΈΡ. 8.7. ΠΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠΈΡΡΠ½ΠΊΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΡΠ΅ΡΠ»ΠΈΠ²ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ. ΠΠ° ΡΠΈΡ. 8.8 ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° transportation ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ fast_flying_machines ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ transportation.
ΠΠ»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄Π° Π³ΡΠ°ΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. Π‘Π»ΡΠΆΠ±Π° ΠΈΠΌΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠ° Π·Π°ΠΏΡΠΎΡΠ° Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΈΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ ΠΌ ΠΈ ΠΈΠΌΠ΅Π½Π½ΡΠΌ Π³ΡΠ°ΡΠ°ΠΌ. Π ΠΈΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠ΅Π½Π½ΡΠ΅ Π³ΡΠ°ΡΡ, Π° ΠΊ ΡΠ²ΡΠ·ΡΠΌ β ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ. Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΡΠΌΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 8.3, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Β«ΠΈΠ·Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΒ», ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΎΠΎΡΠ½ΠΎΡΡΡΠ΅Π³ΠΎ ΡΡΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ.
// ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 8.3
1Β #include <iostream>
2Β #include <fstream>
3Β #include Β«permutation_impl.hΒ»
4Β #define MICO_CONF_IMR
5Β #include <CORBA-SMALL.h>
6Β #include <iostream.h>
7Β #include <fstream.h>
8Β #include <unistd.h>
9Β #include <mico/CosNaming.h> 10
11
12Β int main(int argc, char *argv[])
13Β {
14Β CORBA::ORB_var Orb = CORBA: :ORB_init(argc,argv,Β«mico-local-orbΒ»);
15Β CORBA::Object_var PoaObj =Orb->resolve__initial_references(Β«RootPOAΒ»);
16Β PortableServer::POA_var Poa =PortableServer::POA::_narrow(PoaObj);
17Β PortableServer::POAManager_var Mgr =Poa->the_POAManager();
18Β inversion Server;
19Β PortableServer: :ObjectId_var Oid =Poa->activate_object(&Server);
20Β Mgr->activate () ;
21Β permutation_ptr ObjectReference = Server.__this();
22Β CORBA::Object_var NameService =Orb->resolve_initial_references (Β«NameServiceΒ»);
23Β CosNaming: :NamingContext_var NamingContext =CosNaming::NamingContext::_narrow (NameService);
24Β CosNaming: :Name name;
25Β name.length (1) ;
26Β name[0].id = CORBA::string_dup (Β«InflectionΒ»);
27Β name[0].kind = CORBA::string_dup ("");
28Β NamingContext->bind (name, ObjectReference);
29Β Orb->run();
30Β Poa->destroy(TRUE,TRUE);
31Β return(0) ;
32Β } 33 34
Β§ 8.1. Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠΈ
Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Π» ΡΠ΅ΡΡ (semantic network) β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ° ΠΌ ΡΡ ΡΡΠ°ΡΡΡ ΠΈ ΠΏΡΠΎΡΡΡΡ ΡΡ Π΅ ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π° Π½ ΠΈΠΉ. Π ΠΎΡ Π½ ΠΎΠ²Π΅ ΡΠ΅ ΠΌ Π° Π½ ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΠΈ Π»Π΅ΠΆΠΈΡ Π³ ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π·Π°ΠΈ ΠΌ ΠΎΠΎΡ Π½ ΠΎΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌ ΠΈ. ΠΠ° ΡΠΈΡ. 8.9 ΠΏΠΎΠΊΠ°Π·Π° Π½ Π° ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π·Π½Π° Π½ ΠΈΡ ΠΎ ΡΡΠ° Π½ ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ Π² ΡΠ΅Π»ΠΎ ΠΌ ΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ Π² ΡΠ°ΡΡ Π½ ΠΎΡΡΠΈ.
Π ΠΈΡ. 8.9. ΠΡΠΎΡΡΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²
ΠΠ²Π°Π»Ρ Π² ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ·Π»Π°ΠΌΠΈ, Π° Π»ΠΈΠ½ΠΈΠΈ β ΡΠ²ΡΠ·ΡΠΌΠΈ. Π‘Π²ΡΠ·ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ. Π£Π·Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ°ΠΊΡΠΎΠ² (ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ, Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½Ρ. Π‘Π²ΡΠ·ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΠΎΡΡΠΈ. Π£Π·Π»Ρ ΠΈ ΡΠ²ΡΠ·ΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠΈΠΈ Π·Π½Π°Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΡΡΠΈΠ² ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠΈΡ. 8.9, ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ F-15 β ΡΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΠΏΠΏΠ°ΡΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π²Π° ΠΊΡΡΠ»Π°. Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°Π½ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΠΠ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ²
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊΠΈ 22 ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΠΏΡΠΎ Π³ ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ»ΡΠΆΠ±Ρ ΠΈΠΌΠ΅Π½