class A feature {B, ...}
f...
...
Π΄Π΅Π»Π°Π΅Ρ f Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² B. ΠΠΎΡΠΎΠΌΠΊΠΈ B, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΊΠ°, Π° ΠΏΠΎΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΏΡΠ°Π²Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ B Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΊ f.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΡΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»Π°ΡΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°ΠΌ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° B Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² A ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠΎΡΡΠ°.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π‘ΠΊΡΡΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΡΠΊΡΡΡ-ΠΠ°ΠΊΡΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ A Π΄Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΎ ΡΠ΅ΡΠ°ΡΡ, Π΄Π΅Π»Π°ΡΡ Π»ΠΈ f Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ B, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΅ΠΌΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° B. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ, ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
ΠΡΠ°Π²ΠΈΠ»ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΌ ΡΠΊΡΠΏΠΎΡΡΠ΅
ΠΡΠ±ΠΎΡΠΎΡΠ½ΠΎ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ, ΡΠ°ΠΊ ΠΈ Π²ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
[x]. Π ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ.
[x]. Π ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΈΠ΄Π΅Π΅ ΡΡΠ±ΠΏΠΎΠ΄ΡΡΠ΄ΠΎΠ².
[x]. ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π±ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅.
[x]. ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ require else (ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ΡΠ²ΡΠ·ΠΊΠΎΠΉ "ΠΈΠ»ΠΈ") ΠΈ ensure then (ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ΡΠ²ΡΠ·ΠΊΠΎΠΉ "ΠΈ"). ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ require/ensure Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ. Π ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π°Π·Π²Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ.
[x]. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ GENERAL ΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ»Π°ΡΡ NONE Π·Π°ΠΌΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ΅ΡΠΊΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ½ΠΈΠ·Ρ.
[x]. ΠΠ°ΠΌΠΎΡΠΎΠ·ΠΈΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²Π΅ΡΠ½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ.
[x]. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
[x]. ΠΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡ ΡΠΈΠΏΡ. ΠΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ.
[x]. ΠΠΎΡΠΎΠΌΠΎΠΊ Π²ΠΏΡΠ°Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ (Π°ΡΡΠΈΠ±ΡΡΠ°, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ). ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΌ - Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ, ΡΠΎΠ³Π»Π°ΡΡΡΡΡ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎΡΠΎΠΌΠΊΠ°.
[x]. ΠΠ°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ (like anchor) - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ², ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ.
[x]. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ - ΡΡΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ. ΠΠΎΡΠΎΠΌΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΊΡΡΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ.
[x]. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ°ΠΌΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌ.
ΠΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ
ΠΠ½ΡΡ ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΡΡΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΌ. Π² [Snyder 1986].
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
Π£16.1 ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°, ΡΠ΄Π΅Π»Π°Π² ΠΊΠ»Π°ΡΡ STACK3 ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ, Π° Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ STACK, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΉ. (ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΡΠΌ. ΠΏΡΠ°Π²ΠΈΠ»Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΡΡΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.)
Π£16.2 ΠΠ΅ΠΊΡΠΎΡΡ
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ VECTOR, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° (ΠΊΠΎΠ»ΡΡΠΎ) Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. Π‘Π°ΠΌ ΠΊΠ»Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ, Π΄ΠΎΠΏΡΡΠΊΠ°Ρ Π²Π΅ΠΊΡΠΎΡΠ° Π²Π΅ΠΊΡΠΎΡΠΎΠ². ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ NUMERIC (ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΈΠ· [M 1994a]).
Π£16.3 ΠΠΊΡΡΡΠ°ΠΊΡ?
Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° x1 ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ X, y1 ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Y, ΠΈ Y ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ X, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ y1 := x1 Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ extract, ΡΠ°ΠΊΠΎΠΉ, ΡΡΠΎ y1.extract (x1) ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ° x1 Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° y1 ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Void.
ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ extract ΡΡΠΎΠΈΡ ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡΡ. (ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ°.) ΠΡΡΡΠ½ΠΈΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΈΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠ΅ΠΊΡΠΈΡ 17. Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (static typing), Π΄Π΅Π»Π°Π΅Ρ Π½Π°ΡΠ΅ ΠΠ: Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΡΡΡΠ°Π½ΡΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΡΠΌΠΎΠ³ΡΡ Π½Π°Π½Π΅ΡΡΠΈ Π²ΡΠ΅Π΄; Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ: Π°Π²ΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ΅Ρ , ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ; Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. Π₯ΠΎΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈΡΡ ΠΈ Π²Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, Π΄Π° ΠΈ ΡΠ°ΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ·ΡΠΊΠ°Ρ , Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΠΠ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΊΠΎ ΡΡΠΈ ΠΈΠ΄Π΅ΠΈ ΠΏΡΠΎΡΠ²ΠΈΠ»ΠΈ ΡΠ΅Π±Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° ΠΏΠΎΠ½ΡΡΠΈΠΈ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΡΠ»ΠΈΠ²Π°ΡΡΡ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΠ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ - ΠΊΠ»Π°ΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (static typing), Π΄Π΅Π»Π°Π΅Ρ Π½Π°ΡΠ΅ ΠΠ:
[x]. Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΡΡΡΠ°Π½ΡΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΡΠΌΠΎΠ³ΡΡ Π½Π°Π½Π΅ΡΡΠΈ Π²ΡΠ΅Π΄;
[x]. Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ: Π°Π²ΡΠΎΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ΅Ρ , ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ;
[x]. Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π₯ΠΎΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈΡΡ ΠΈ Π²Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, Π΄Π° ΠΈ ΡΠ°ΠΌΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ·ΡΠΊΠ°Ρ , Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΠΠ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΊΠΎ ΡΡΠΈ ΠΈΠ΄Π΅ΠΈ ΠΏΡΠΎΡΠ²ΠΈΠ»ΠΈ ΡΠ΅Π±Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° ΠΏΠΎΠ½ΡΡΠΈΠΈ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΡΠ»ΠΈΠ²Π°ΡΡΡ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΠΠ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ - ΠΊΠ»Π°ΡΡ.
Π ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΠΠ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ΄Π½ΠΎ: ΡΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΎΡΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, Π½ΠΎ ΡΠ΅ΡΠΈΡΡ Π΅Π΅ ΠΏΠΎΠ΄ΡΠ°Ρ Π½Π΅Π»Π΅Π³ΠΊΠΎ.
ΠΠ°Π·ΠΈΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΡΠΎΡΡΠΎΡΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΠ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΏΡΡΠΊΠ°Ρ Π΄Π΅ΡΠ°Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΠ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° - Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (feature call):
x.f (arg)
ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ f Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌ ΠΊ x, Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° arg (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Smalltalk Π³ΠΎΠ²ΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎ "ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ x ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ f Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ arg", Π½ΠΎ ΡΡΠΎ - Π»ΠΈΡΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° ΠΏΠΎΡΠΎΠΌΡ ΠΎΠ½ΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ.
Π’ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΡΠΎΠΉ ΠΠ°Π·ΠΈΡΠ½ΠΎΠΉ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Basic Construct), ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠ°ΡΠΎΡΡ ΠΠ-ΠΈΠ΄Π΅ΠΉ.
ΠΠ· ΠΠ°Π·ΠΈΡΠ½ΠΎΠΉ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡ ΠΈ ΡΠ΅ Π½Π΅Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°
ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π² ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ, Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ, ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° (type violation) Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° x.f (arg), Π³Π΄Π΅ x ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ OBJ, Π΅ΡΠ»ΠΈ Π»ΠΈΠ±ΠΎ:
[x]. Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ f ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠ³ΠΎ ΠΊ OBJ,
[x]. ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ arg Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ - ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ:
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΠ-ΡΠΈΡΡΠ΅ΠΌ
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΠ-ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°?