Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ Π΄ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ Π΄Π²ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°, ΡΠΎ ΠΈ ΡΡΠΎ Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎ: ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΡΡΠ»ΠΎΠΊ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ ΡΠΈΠΏΠΎΠ²); ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ clone (ΠΈΠ»ΠΈ copy) ΠΈ equal, Π° Π½Π΅ (:= ΠΈ =).
Π€ΠΎΡΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ
Π€ΠΎΡΠΌΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ clone ΠΈ equal ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π½ΠΎΡΠ°ΡΠΈΡ:
clone (x)
equal (x, y)
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ. ΠΠΎΠ³ΠΌΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ "ΠΠ-ΡΡΠΈΠ»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ" ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π΄ΡΡΠ³ΡΡ ΡΠΎΡΠΌΡ (Π‘ΠΌ. "ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ", Π»Π΅ΠΊΡΠΈΡ 7):
x.twin -- twin ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ - ΠΊΠ»ΠΎΠ½.
x.is_equal (y)
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊ ΠΈ Π΄Π΅Π»Π°Π»ΠΎΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΡΡΡΡ ΡΡΡΠ»ΠΎΠΊ. ΠΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΠΈΠ΄Π° x.f (...) Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΡΡΠΎΠ³ΠΎ x Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ x ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ, ΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ Π±Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² twin Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΎΡ ΡΠ°Π½Ρ ΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
if x = Void then
z := Void
else
z := x.twin
end
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π° is_equal Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ (and then ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ and. Π‘ΠΌ. "ΠΠ΅ΡΡΡΠΎΠ³ΠΈΠ΅ Π±ΡΠ»Π΅Π²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ", Π»Π΅ΠΊΡΠΈΡ 13):
if
((x = Void) and (y = Void)) or
((x /= Void) and then x.is_equal (y))
then
...
ΠΠ·Π»ΠΈΡΠ½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΌ Π±ΡΡΡΡΠΎ Π½Π°Π΄ΠΎΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²ΠΈΡΠΈΠ΅Π²Π°ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, Π° ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°Π±ΡΠ΄Π΅ΠΌ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ, Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ Π΅ΡΠ΅ ΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ x, ΡΠ°Π²Π½ΠΎΠ³ΠΎ void, - clone (x) Π²Π΅ΡΠ½Π΅Ρ void, Π° equal (x, y) Π²Π΅ΡΠ½Π΅Ρ true, Π΅ΡΠ»ΠΈ ΠΈ y - void.
ΠΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ copy Π² ΡΠΎΡΠΌΠ΅ x.copy (y) Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΠΏΡΡΡΡΡ x ΠΈ y. ΠΡΠΎ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ copy, ΠΊΠΎΠΏΠΈΡΡΡΡΠ΅ΠΉ ΠΏΠΎΠ»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΏΠΎΠ»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΠΈ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΡΠΌΡΡΠ», ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΠ±Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅, ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π»Ρ y ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ copy, Π·Π°Π΄Π°Π½Π½ΡΠΌ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ is_equal ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ² ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ is_equal Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ equal ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ is_equal (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ is_equal), ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° Π²ΡΠ΅ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ is_equal.
ΠΠΎΠ³Π΄Π° Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ clone, ΡΠΎ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² twin. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ clone ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ copy. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ clone ΠΊ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ΅ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ copy Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. (Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ Π»Π΅ΠΊΡΠΈΡ 16)
Π‘ΡΠ°ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΡΠ°ΡΡΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ clone, copy, equal, is_equal, deep_clone, deep_equal.
ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ, Π½Π΅Π²Π·ΠΈΡΠ°Ρ Π½Π° ΠΈΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠ½ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ ANY ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Kernel. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ (ΠΏΡΡΠΌΡΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΌ) ΠΊΠ»Π°ΡΡΠ° ANY. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. (Π‘ΠΌ. "ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ", Π»Π΅ΠΊΡΠΈΡ 16)
Π‘Π΅ΠΉΡΠ°Ρ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π΄Π΅ΡΠ°Π»ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π΅ΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, - ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ , ΠΏΡΠΈΡΠΏΠΎΡΠ°Π±Π»ΠΈΠ²Π°Ρ ΠΊ ΡΠ²ΠΎΠΈΠΌ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π»ΡΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ
[x]. ΠΠ-Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ Π²ΡΡΠΎΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ.
[x]. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΠ, ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΌΠΈ). ΠΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ»ΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
[x]. ΠΠ±ΡΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΡΠΌΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ).
[x]. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΠΎΠΉ.
[x]. Π‘ΡΡΠ»ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΠΎΠΉ (void) ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠΉ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΡ x = Void ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Π° x.f (...) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ x Π½Π΅ ΠΏΡΡΡΠ°Ρ ΡΡΡΠ»ΠΊΠ°.
[x]. ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ class C ..., ΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠ° CΠ±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΡΡΠ»ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ C. ΠΡΠ»ΠΈ Π½Π°ΡΠ°Π»ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ expanded class D ..., ΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠ° D Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ D) ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ.
[x]. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ (BOOLEAN, CHARACTER, INTEGER, REAL, DOUBLE) ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ.
[x]. Π Π°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ: ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
[x]. ΠΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΡΡΠ»ΠΎΠΊ.
[x]. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ create x ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΌΡ x. ΠΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΈΠ΄Π° create x.creatproc (...) ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ.
[x]. ΠΠ»Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ (:=) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΠΈ (=) ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠ»Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΈ Π½Π° ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ.
[x]. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ. ΠΠ½ΠΈ Π·Π°ΡΡΡΠ΄Π½ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΅Π΅ ΡΠ΅ΠΊΡΡΠ°. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ.
ΠΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ
ΠΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ . Π‘ΠΌΠΎΡΡΠΈ Π»Π΅ΠΊΡΠΈΡ 13 ΠΊΡΡΡΠ° "ΠΡΠ½ΠΎΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ", ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΈΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡ ΠΊ Π½Π΅ΠΉ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° BON (Business Object Notation) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Jean-Marc Nerson ΠΈ Kim Walden [Walden 1995]. James McKim ΠΈ Richard Bielak Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ [Bielak 1994].
Π ΠΈΡΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ, ΡΠΆΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΠΎΠ»Π½ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΠΊΠΈ Π½Π° ΡΠΎ, ΡΡΠΎ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΡΠΎ Π°Π½Π°Π»ΠΎΠ³ Π½Π΅Π½Π°Π²ΠΈΡΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ goto Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°. Π ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Nori Suzuki [Suzuki 1982] ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°ΠΌΠΈ (ΠΊΠ°ΠΊ ΠΈΠ·Π±Π°Π²Π»ΡΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ goto, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ΅ΠΌΡ "ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ"). Π₯ΠΎΡΡ ΠΏΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΡ Π°Π²ΡΠΎΡΠ° Π²ΡΠ²ΠΎΠ΄Ρ Π½Π΅ΡΡΠ΅ΡΠΈΡΠ΅Π»ΡΠ½Ρ, Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½Π°.