Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 178

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

[x]. НадлСТащС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… относится ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ Π΅Π³ΠΎ спСцификации. Π­Ρ‚Π° ΠΆΠ΅ катСгория Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ объявлСний. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠ³ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π’Π½Π°Ρ‡Π°Π»Π΅ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΡ‚ΠΎΠ»ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠ»Π°Ρ‡Π΅Π²Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ясно, смоТСт Π»ΠΈ этот Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со всСми Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с Ρ‚ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ простотой, которая присуща ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ².

[x]. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, способный ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ объСдинСния ковариантности ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° (всС Π΅Ρ‰Π΅ игнорируя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ скрытия ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ). Π’ΠΎΠ³Π΄Π° ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° классов потрСбуСтся нСзаурядная интуиция для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ доступны для пСрСопрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… классах, Π° ΠΊΠ°ΠΊΠΈΠ΅ - Π½Π΅Ρ‚. НиТС ΠΌΡ‹ обсудим эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ мСсто Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ, ΡƒΠ²Ρ‹, ΡΡ‚Π°Π²ΡΡ‰ΡƒΡŽ ΠΏΠΎΠ΄ сомнСниС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСорСтичСских схСм.

Π­Ρ‚ΠΎ заставляСт нас Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡƒΠΆΠ΅ рассмотрСнным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ: ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, наслСдованию.

Полагаясь Π½Π° Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ковариантности ΠΌΡ‹ Π½Π°ΠΉΠ΄Π΅ΠΌ, ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Π²ΡˆΠΈΡΡŒ ΠΊ извСстному Π½Π°ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… объявлСний.

ΠŸΡ€ΠΈ описании классов SKIER ΠΈ SKIER1 вас Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, воспользовавшись Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ объявлСниями, ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ - это Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (всС измСнСния ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹):


class SKIER feature

roommate: like Current

share (other: like Current) is ... require ... do

roommate := other

end

...

end

class SKIER1 feature

accommodation: ROOM

accommodate (r: like accommodation) is ... require ... do

accommodation := r

end

end



Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ класс SKIER Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π² SKIER1 ΠΈΠΌ понадобится ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ accommodation. Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Π΅ сущности: Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ roommate ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ share ΠΈ accommodate - Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ автоматичСски. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ отсутствии закрСплСния (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…) Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ОО-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с рСалистичной Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Но ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π»ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ коррСктности систСмы? НСт! ΠœΡ‹, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ присваивания, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ систСмной коррСктности.

ΠŸΡ€Π°Π²Π΄Π°, исходныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Ρ‹. ΠŸΡƒΡΡ‚ΡŒ:


s: SKIER; b: BOY; g: GIRL

...

create b;create g;-- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² BOY ΠΈ GIRL.

s := b; -- ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ΅ присваиваниС.

sl.share (g)



АргумСнт g, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ share, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅Π²Π΅Ρ€Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ здСсь трСбуСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° like s, Π° класс GIRL Π½Π΅ совмСстим с этим Ρ‚ΠΈΠΏΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π½Π΅ совмСстим с like s, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π΅Π³ΠΎ самого.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°ΠΌ Π½Π΅ Π΄ΠΎΠ»Π³ΠΎ. Π’ Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ like s совмСстим с Ρ‚ΠΈΠΏΠΎΠΌ s. А Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° s, Π½ΠΎ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° g, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ снова ΠΎΠ±ΠΎΠΉΡ‚ΠΈ систСму ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ²:


s: SKIER; b: BOY; g: like s; actual_g: GIRL;

...

create b; create actual_g -- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² BOY ΠΈ GIRL.

s := actual_g; g := s -- Π§Π΅Ρ€Π΅Π· s ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ g ΠΊ GIRL.

s := b -- ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ΅ присваиваниС.

s.share (g)



Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚.

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· полоТСния Π΅ΡΡ‚ΡŒ. Если ΠΌΡ‹ Π²ΡΠ΅Ρ€ΡŒΠ΅Π· Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ объявлСний ΠΊΠ°ΠΊ СдинствСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ковариантности, Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ систСмной коррСктности ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΠ² ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… сущностСй. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния Π² языкС: Π²Π²Π΅Π΄Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово anchor (эта гипотСтичСская конструкция Π½ΡƒΠΆΠ½Π° Π½Π°ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ обсуТдСнии):


anchor s: SKIER



Π Π°Π·Ρ€Π΅ΡˆΠΈΠΌ объявлСния Π²ΠΈΠ΄Π° like s лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° s описано ΠΊΠ°ΠΊ anchor. ИзмСним ΠΏΡ€Π°Π²ΠΈΠ»Π° совмСстимости Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: s ΠΈ элСмСнты Ρ‚ΠΈΠΏΠ° like s ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ (Π² присваиваниях ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ.

Π’ исходном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° сущСствовало понятиС ΠΎΠΏΠΎΡ€Π½ΠΎ-эквивалСнтных элСмСнтов. ΠŸΡ€ΠΈ Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΎΠΏΠΎΡ€Π½ΠΎ-эквивалСнтными Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ правая, Ρ‚Π°ΠΊ ΠΈ лСвая Ρ‡Π°ΡΡ‚ΡŒ любого присваивания, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ участвуСт опорная ΠΈΠ»ΠΈ закрСплСнная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ устраняСм ΠΈΠ· языка Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСопрСдСлСния Ρ‚ΠΈΠΏΠ° Π»ΡŽΠ±Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Помимо этого, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π½ΠΎ Π² этом Π½Π΅Ρ‚ нСобходимости. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСопрСдСлСния Ρ‚ΠΈΠΏΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, сохраняСтся. ВсС пСрСопрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСявно Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ закрСплСния, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ. Π’Π°ΠΌ, Π³Π΄Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ класс D пСрСопрСдСлял наслСдуСмый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠ°ΠΊ:


r (u: Y) ...



Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Ρƒ класса C - родитСля D это выглядСло


r (u: X) ...



Π³Π΄Π΅ Y соотвСтствовало X, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° r Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:


r (u: like your_anchor) ...



ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² классС D ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ your_anchor.

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ковариантности - ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ЗакрСплСния (Anchoring). Π‘ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ слСдовало Π±Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ: "ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Ρ†ΠΈΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅". Бвойства ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹:

[x]. Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ основано Π½Π° ΠΈΠ΄Π΅Π΅ строгого раздСлСния ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… (ΠΈΠ»ΠΈ, для краткости, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ…) элСмСнтов. ВсС сущности, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ anchor ΠΈΠ»ΠΈ like some_anchor ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹; ΠΏΡ€ΠΎΡ‡ΠΈΠ΅-ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ допустимы Π»ΡŽΠ±Ρ‹Π΅ присоСдинСния, Π½ΠΎ Π½Π΅Ρ‚ сущности ΠΈΠ»ΠΈ выраТСния, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†Ρƒ. НСльзя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ источник ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ.

[x]. Π­Ρ‚ΠΎ простоС ΠΈ элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ.

[x]. Оно ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ устраняСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ систСмной коррСктности Π² ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎ построСнных систСмах.

[x]. Оно сохраняСт Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ основу, Π² Ρ‚ΠΎΠΌ числС понятия ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. (Π’ ΠΈΡ‚ΠΎΠ³Π΅ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡƒ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… собой ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ковариантности ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π½Ρ‹Ρ… практичСских Π·Π°Π΄Π°Ρ‡.)

[x]. Оно Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ измСнСния языка, - добавляя ΠΎΠ΄Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ соотвСтствия, - ΠΈ Π½Π΅ связано с ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΌΠΈ трудностями Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

[x]. Оно рСалистично (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, тСорСтичСски): Π»ΡŽΠ±ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ систСму ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Π΅ пСрСопрСдСлСния Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ объявлСниями. ΠŸΡ€Π°Π²Π΄Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ присоСдинСния Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ станут Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ случаям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡΠΌ Ρ‚ΠΈΠΏΠΎΠ², Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΈΡ… слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ присваивания ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ситуации Π²ΠΎ врСмя выполнСния.

Казалось Π±Ρ‹, Π΄ΠΈΡΠΊΡƒΡΡΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° этом Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ. Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ЗакрСплСния Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нас устраиваСт? ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ касались ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ скрытия ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ этого, основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ продолТСния дискуссии являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΡƒΠΆΠ΅ высказанная ΠΏΡ€ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π Π°Π·Π΄Π΅Π» сфСр влияния Π½Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΡƒΡŽ ΠΈ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ялтинской ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. Он ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ класса ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ нСзаурядной ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π² состоянии для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΈΠΌ сущности, Π² частности для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π· ΠΈ навсСгда Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… возмоТностСй:

[x]. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ являСтся ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ: сСйчас ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΎΠ½Π° (посрСдством ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ присваивания) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присоСдинСна ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Ρ‡Π΅ΠΉ Ρ‚ΠΈΠΏ отличаСтся ΠΎΡ‚ объявлСнного. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ сущности Π½Π΅ смоТСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ класса.

[x]. Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ являСтся ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ пСрСопрСдСлСния Ρ‚ΠΈΠΏΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½Π° Π»ΠΈΠ±ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π°, Π»ΠΈΠ±ΠΎ сама являСтся ΠΎΠΏΠΎΡ€Π½Ρ‹ΠΌ элСмСнтом.