ΠΡΠΈ ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ Π±Ρ: ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»ΠΈ Π²ΡΠ·ΠΎΠ²Π° (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ s) ΡΡΠ΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Π΅Π΄Π΅Ρ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°: Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ - ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ - ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊΡ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΡΠ΄Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΡ ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π΅ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ·ΡΠ² ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΏΡΠΎΡΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΡΠ°ΡΠΎΡΠ° - Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, - Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ - ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΡΡΡ.ΠΠΎΡΡΠΎΠΌΡ, Π½Π΅ ΠΏΡΡΠ°ΡΡΡ Π½Π°ΡΡΠ½ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΡ ΠΎΠ΄Π΅ΠΆΠ΄Ρ Π½Π° ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΡΠΊΠ°ΡΡ ΠΏΡΡΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
Π‘ΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡΠΌ ΡΠΈΠΏΠ°. Π‘ΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ (descendant hiding) - ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ.
Π ΠΈΡ. 17.8. Π‘ΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ
Π’ΠΈΠΏΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ add_vertex (Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π΅ΡΡΠΈΠ½Ρ), ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ POLYGON, Π½ΠΎ ΡΠΊΡΡΠ²Π°Π΅ΠΌΡΠΉ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ RECTANGLE (Π²Π²ΠΈΠ΄Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ° - ΠΊΠ»Π°ΡΡ Ρ ΠΎΡΠ΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ):
class RECTANGLE inherit
POLYGON
export {NONE} add_vertex end
feature
...
invariant
vertex_count = 4
end
ΠΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΊΠ»Π°ΡΡ "Π‘ΡΡΠ°ΡΡ" ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ "ΠΠ΅ΡΠ°ΡΡ", ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ "ΠΡΠΈΡΠ°".
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π° ΠΌΠΈΠ½ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΠΌ ΡΡΡ ΡΡ Π΅ΠΌΡ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΅ΡΡΡ, ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π²ΠΎΠΏΡΠΎΡ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΡΠΌ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΡΡΡΠΈΡ. ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡΠ°Ρ ΡΠΎΠ»Ρ ΡΠΊΡΡΡΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ, Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΠΈΠ·-Π·Π° ΡΡΡΠΊΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΈΠ·-Π·Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. Π Π·Π΄Π΅ΡΡ Π½Π΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΡ Π²Π΅ΡΡΠΈΠ½Ρ:
p: POLYGON; r: RECTANGLE
...
create r; -- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° RECTANGLE.
p := r; -- ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅.
p.add_vertex (...)
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ r ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΡΡΠ½ΠΎΡΡΡΡ p ΠΊΠ»Π°ΡΡΠ° POLYGON, Π° add_vertex ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ POLYGON, ΡΠΎ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΡΠ½ΠΎΡΡΡΡ p ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡΠΈΠ½Π°, Π° Π·Π½Π°ΡΠΈΡ, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ»Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΡΡΡΠΈΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². ΠΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎ-ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ (class-valid) ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΡΡ ΡΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π² Π½Π°ΡΠ°Π»Π΅ Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΡ : ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ; ΡΠΈΠΏ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ Ρ ΡΠΈΠΏΠΎΠΌ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ; Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΊΠ»Π°ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ².
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ-ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ (system-valid), Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΎΠ±Π° ΠΏΠΎΠ½ΡΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎ-ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΡΡΡΠΈΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ-ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ. ΠΠ°Π·ΠΎΠ²Π΅ΠΌ ΡΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ (system validity error).
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΡΠΏΠ΅ΠΊΡ
ΠΡΠΎΡΡΠΎΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ ΠΏΠ°ΡΠ°Π΄ΠΎΠΊΡ: ΠΏΡΡΠ»ΠΈΠ²ΡΠΉ Π½ΠΎΠ²ΠΈΡΠΎΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡ ΠΊΠΎΠ½ΡΡΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΡΡΡ, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΠ·ΠΎ Π΄Π½Ρ Π² Π΄Π΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌ, Π½ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄Π°ΠΆΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΡ , ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , Π° ΠΏΠΎΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΈ Π½Π΅ ΡΡΠΎΠ»Ρ ΡΠ°ΡΡΠΎ Π΄Π°ΡΡΠΈΠ΅ ΠΎ ΡΠ΅Π±Π΅ Π·Π½Π°ΡΡ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. Π§ΠΈΡΠ°Ρ ΠΊΠ½ΠΈΠ³Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΡΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π»ΠΈΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°Π½ΡΠ»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΠ-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΡΠ²ΠΎΠΈΡΠ΅ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π»Π΅ΠΊΡΠΈΠΉ 1-11 ΠΊΡΡΡΠ° "ΠΡΠ½ΠΎΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ", ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π»Π΅ΠΊΡΠΈΠΈ 6 ΠΊΡΡΡΠ° "ΠΡΠ½ΠΎΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ", ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ: ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌΡΡ Π²Π½Π°ΡΠ°Π»Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ, Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ . ΠΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΠΎΠ±ΡΠΈΡΠ½Π°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ ΡΡΠ΄ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ
ΠΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΡΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ², ΠΏΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ° C++ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π±Π΅Π·Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ (novariance), Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠΈΠΏ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ! ΠΡΠ»ΠΈ Π±Ρ ΡΠ·ΡΠΊ C++ Π±ΡΠ» ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π΅Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠΈΠΏΠΎΠ² Π±ΡΠ»ΠΎ Π±Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ ΠΈΠ½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ C++ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ), ΡΠΎΡΡΠΎΠΈΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΡΡΠΈΠ½Π³Π° - ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΡΡΠ΄ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΡ Π½ΠΈΠΆΠ΅, Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π±Π΅Π·Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ, ΡΠΌΡΡΠ» ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ΄Π°ΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π²Π·Π°ΠΌΠ΅Π½ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅ΠΈ, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π€ΡΠ°Π½ΡΠ΅ΠΌ ΠΠ΅Π±Π΅ΡΠΎΠΌ (Franz Weber). ΠΠ±ΡΡΠ²ΠΈΠΌ ΠΊΠ»Π°ΡΡ SKIER1, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ² ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠ»Π°ΡΡΠΎΠΌ ROOM:
class SKIER1 [G -> ROOM] feature
accommodation: G
accommodate (r: G) is ... require ... do accommodation := r end
end
Π’ΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ GIRL1 Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ SKIER1 [GIRL_ROOM] ΠΈ Ρ. Π΄. Π’Π΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΠ΅ΠΌΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ ΡΡΡΠ°Π½Π½ΡΠΌ ΠΎΠ½ Π½Π΅ ΠΊΠ°Π·Π°Π»ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ: class SKIER [G -> SKIER].
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ROOM ΠΈΠ»ΠΈ GIRL_ROOM, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅Π²Π΅ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ. Π―Π·ΡΠΊ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±Π΅Π·Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΌ, Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠ΄ΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ° ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠ΄ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π₯ΡΠΆΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π²ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
Π’ΠΈΠΏΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
Π ΡΠ΄ Π°Π²ΡΠΎΡΠΎΠ², ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΠΈΠΌ ΠΡΡΡ (Kim Bruce), ΠΡΠ²ΠΈΠ΄ Π¨Π΅Π½Π³ (David Shang) ΠΈ Π’ΠΎΠ½ΠΈ Π‘Π°ΠΉΠΌΠΎΠ½Ρ (Tony Simons), ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΈΠΏΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (type variables), Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΏΡ. ΠΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠ°:
[x]. Π²Π·Π°ΠΌΠ΅Π½ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅;
[x]. ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ;
[x]. ΡΡΠΈΡΠ°ΡΡ ΡΠ·ΡΠΊ (Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ) Π±Π΅Π·Π²Π°ΡΠΈΠ°Π½ΡΠ½ΡΠΌ;
[x]. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΡ ΡΠ·ΡΠΊΠ°.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΈΠ΄Π΅ΠΉ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΉΡΠΈ Π² ΡΡΠ΄Π΅ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ ΠΠ°ΡΠ΄Π΅Π»Π»ΠΈ (Cardelli), ΠΠ°ΡΡΠ°Π½ΡΠΈ (Castagna), ΠΠ΅Π±Π΅ΡΠ° (Weber) ΠΈ Π΄Ρ. ΠΠ°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΌΠ΅ΡΠΊΠ°Ρ ΠΊ ΡΡΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ. ΠΡ ΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΈ Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ.
[x]. ΠΠ°Π΄Π»Π΅ΠΆΠ°ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠΏΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠ° ΠΆΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠ³ Π±Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ. ΠΠ½Π°ΡΠ°Π»Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΡΠΎΠ»ΠΊΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠΈΠΏΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠ»Π°ΡΠ΅Π²Π½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΡΠ½ΠΎ, ΡΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎΡ Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ Ρ ΡΠΎΠΉ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΡΡΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².