[x]. Π Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π½Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°. ΠΠ°ΠΊ Π²ΡΡΡΠ½ΠΈΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π΄Π»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΊΠ»Π°ΡΡΠ° ARRAY Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ΅ΡΠ΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ»Ρ Π½Π°ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΎΡ ISE ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΡΠ½ΡΡ Π½Π° C ΠΈΠ»ΠΈ Fortran.
Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΠΈΠΊΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
ΠΠ»Π°ΡΡ ARRAY ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ½ΠΎΡΡΡΡΡΡΡ ΠΊ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΡΡΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° item ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈ Π΅Π³ΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ - ΠΈΠ½ΡΠΈΠΊΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ10.4) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
infix "@", item (i: INTEGER): G is...
ΠΠ΄Π΅ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: infix "@" ΠΈ item ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΡΠΎΡΠΌΠ΅:
a, b, c... "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°"
ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΡΠ°ΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ:
a "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°"
b "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°"
c "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°"
...
Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°".
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊΠ°ΠΊ Π΄Π»Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² (Π³Π΄Π΅ "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°" ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡΠΌΡ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ_ΡΠΈΠΏ), ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (is ΡΠ΅Π»ΠΎ_ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ).
ΠΠΎΡΠ°ΡΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΠ½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΡΠΊΡΡΡ, Ρ ΠΎΡΡ, Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ a.item(i) Π±ΠΎΠ»Π΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½Π°, ΡΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ΅ a[i], Π²ΡΡΡΠ΅ΡΠ°ΡΡΠ΅Π΅ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π°ΡΠΈΠ°ΡΠΈΡΠΌΠΈ Π² Pascal, C, Fortran ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΏΡΠ΅Π΄Π΅Π»ΡΡ "@" ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ item, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π²Π·ΠΎΠΉΡΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π² ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ³ΡΠ΅ Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ°ΠΏΠΈΡΠ°Π² a @ i, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΡ, - Π·Π°ΠΏΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π΄Π°ΠΆΠ΅ Π‘++!. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ ΡΠ½ΠΎΠ²Π°, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ·ΡΠΊΠ°, Π½ΠΎ ΠΏΡΡΠΌΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΉ ΠΠ-ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ°.
Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΠ-ΡΠ΅Ρ Π½ΠΈΠΊΠ°, Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ Π²Π»Π΅ΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π»ΡΡ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Ρ ΡΡΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΠΏΡΠΎΡΠΊΠ·Π°ΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ°ΠΊΠΎΠ²Π° ΡΠ΅Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ?
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΠΎΠΏΡΡΠ° Π‘++, Π³Π΄Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ»Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΊ ΡΠ·ΡΠΊΡ. ΠΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ, Π³Π΅Π½Π΅ΡΠΈΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°! Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΏΠΎ Π‘++ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΎΠ± ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²:
Π§ΠΈΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π° - ΡΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π‘++. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ List<int>, List<String>, List<Widget> ΠΈ List<Blidget> (Π³Π΄Π΅ Widget ΠΈ Blidget ΠΊΠ»Π°ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ) ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ head, tail ΠΈ insert Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π² ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ (ΠΈΠ·-Π·Π° ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ). ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠΉ ΠΊΠ»Π°ΡΡ List ΠΌΠΎΠ³ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ².10.5)ΠΠ²ΡΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ (Π‘++ ΡΠΊΡΠΏΠ΅ΡΡΡ ΠΈΠ· AT&T, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ°Π²ΡΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π‘++ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ [Ellis 1990]) ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΡΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΡΠ°Ρ:
[x]. Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ;
[x]. ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°;
[x]. Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ;
[x]. ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π°Π±ΠΎΡΠ°Ρ Π² ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΌΠΎΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π΅ ΠΎΠΏΠ°ΡΠ°ΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅: ΡΡΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ, Π½ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π° Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ Π²ΠΎΠΏΡΠΎΡΠ° Π½Π΅ Π΄Π°Π½Ρ ΠΎΡΠ²Π΅ΡΡ.
ΠΠ΅ΡΠ²ΠΎΠ΅: Π² Π½Π°ΡΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² ΠΌΡ Π·Π°Π½ΡΠ»ΠΈ ΡΠ΅ΡΠ΅ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ²Π°ΡΠΈΠ²Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠΎΠ»ΠΊΠ½ΡΡΡ ΠΊΡΡΠ³ Π² ΡΡΠ΅ΠΊ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΡΡΠ΅ΡΠΎΠ². Π’ΡΡΠ΄Π½ΠΎ Π²ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΡΠΆΠ΅Π½ ΡΡΠ΅ΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΡΠΊΠΈ ΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΡΡΠ΅ΡΠ°. ΠΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π΅Π½ ΡΡΠ΅ΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΡΡΠ³ΠΈ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΡΠΎΡΠΊΠΈ. Π’Π°ΠΊΠ°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎΠΉ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ Π΅Π΅. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΎΡΠ²Π΅ΡΠ³Π½Π΅Ρ Π²ΡΠ·ΠΎΠ² figure_stack.put(that_point) Π΅ΡΠ»ΠΈ ΡΠΈΠΏ figure_stack Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ STACK [FIGURE], Π° that_point - ΡΠΈΠΏ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ FIGURE. ΠΠ°Π΄ΠΈΠΌ ΠΏΠΎΠΊΠ° ΠΈΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (polymorphic data structure). ΠΡΠ·ΠΎΠ², ΡΡΠΎΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ - ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ².
ΠΡΠΎΡΠΎΠ΅: ΡΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΡΡΠ΅ΠΊΠΎΠ² ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . ΠΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ, Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΈ Π²Π΅ΠΊΡΠΎΡΡ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ, Π·Π°Π΄Π°ΡΡΠΈΠΌ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΡ, Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ. Π’Π°ΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π³Π΄Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ, Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (constrained genericity).
ΠΠ»Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΠ-ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
[x]. ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΏΡ.
[x]. Π ΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ.
[x]. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ².
[x]. ΠΠ»ΠΈΠ΅Π½Ρ ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
[x]. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΡΡΠ½ΠΎΡΡΡΡ, ΡΠ΅ΠΉ ΡΠΈΠΏ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΠ΄ΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, - ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠ΅ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠΏΡ. Π‘ΡΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΈ Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠΌ ΡΠ΅ΡΡΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ.
[x]. ΠΠΎΠ½ΡΡΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
[x]. ΠΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ - ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ - ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ - LPG [Bert 1983]. Π―Π·ΡΠΊ Ada ΡΠ΄Π΅Π»Π°Π» ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠΎΠ΄ΠΎΠ²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ»Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ·ΡΠΊΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Z, CLEAR ΠΈ OBJ-2, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΡΡΠ»ΠΊΠΈ Π² Π»Π΅ΠΊΡΠΈΠΈ 6 ΠΏΠΎ ΠΠ’Π. Π ΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π·Π΄Π΅ΡΡ, Π±ΡΠ» ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΠ°Π½Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Z [Abrial 1980] [Abrial 1980a] ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² [M 1985b].
ΠΡΠ»ΠΈ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΡΡΡ ΠΊΠ½ΠΈΠ³Ρ, ΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΠ-ΡΠ·ΡΠΊΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π±ΡΠ» DEC's Trellis ΡΠ·ΡΠΊ [Schaffert 1986].
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
Π£10.1 ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ - ΠΎΠ½ΠΎ ΡΡΠ°Π²ΠΈΡ Π²ΠΎΠΏΡΠΎΡ, Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄Π°Π½ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. ΠΠ³ΠΎ ΡΠ΅Π»Ρ - Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ°Π²Π½ΠΈΡΡ Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² ΠΊΠ½ΠΈΠ³Π΅. ΠΠ½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΌΠΈ Π² ΠΠ-ΡΠ·ΡΠΊΠ°Ρ . ΠΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ·ΡΠΊΠ° Ada ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ.