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

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

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ свСдСм Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ всС, Ρ‡Ρ‚ΠΎ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ковариантности ΠΈ скрытии ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ, вспомним Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ коррСктности систСм Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ. НаиболСС Π²Π°ΠΆΠ½Ρ‹Π΅ свойства статичСской ОО-Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Ρ‹ Π² Π½Π°Ρ‡Π°Π»Π΅ Π»Π΅ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠΉ ряд ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ совмСстно с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ классовой коррСктности, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΡ€ΠΎΠ³Ρƒ ΠΊ бСзопасному ΠΈ Π³ΠΈΠ±ΠΊΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ конструирования ПО.

ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚Ρ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ковариантности, Π΄Π²Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ ΠΈ вопросы ограничСния экспорта. КакоС ΠΆΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅?

На этот вопрос Π½Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π°. БлСдствия ΠΊΠΎΠ²Π°Ρ€Π½ΠΎΠ³ΠΎ взаимодСйствия ОО-Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ Π½Π΅ Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΊΠ°ΠΊ вопросы, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… лСкциях. Π’ послСдниС Π³ΠΎΠ΄Ρ‹ появились многочислСнныС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅, ссылки Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Π±ΠΈΠ±Π»ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я надСюсь, Ρ‡Ρ‚ΠΎ Π² настоящСй Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнты ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ хотя Π±Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· каТСтся Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ·-Π·Π° ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всСй систСмы. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³ Π½Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

РСшСниС Π½Π° основС ЗакрСплСния Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Оно простоС, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятноС, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΌ сильнСС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΆΠ°Π»Π΅Ρ‚ΡŒ ΠΎ нСвозмоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Π½Π΅ΠΌ ряда ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ОО-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚-Π—Π°ΠΊΡ€Ρ‹Ρ‚. Если Π±Ρ‹ ΠΌΡ‹ ΠΈ Π²ΠΏΡ€ΡΠΌΡŒ ΠΎΠ±Π»Π°Π΄Π°Π»ΠΈ прСкрасной ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ стало Π±Ρ‹ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡΡ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ это, ΠΈΠ»ΠΈ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Π»Π°Π΄Π°Π»ΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… классов, наслСдуСмых Π² Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?

Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ суТаСт сфСру примСнСния ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС, основанных Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если Π±Ρ‹ ΠΌΡ‹ Π±Ρ‹Π»ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всСгда Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… измСнСниях Ρ‚ΠΈΠΏΠΎΠ², Π·Π°Π΄Π°Ρ‡Π° Π±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΠ»Π°ΡΡŒ Π² тСорСтичСском ΠΏΠ»Π°Π½Π΅, Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΡΡ‚ΠΈ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹ ΠΎΠ½Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ практичСской цСнности.

Если ΠΎΡ‚ закрСплСния ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящим каТСтся ΠšΡΡ‚ΠΊΠΎΠ»Π»-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, достаточно Π»Π΅Π³ΠΊΠΎ объяснимоС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠ΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π•Π³ΠΎ пСссимизм Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π’ случаС, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ кэтколл ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ "Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΌ" ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, всСгда ΠΌΠΎΠΆΠ½ΠΎ бСзопасно Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ присваивания. Π’Π΅ΠΌ самым ряд ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ пСрСнСсти Π½Π° врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Однако количСство Ρ‚Π°ΠΊΠΈΡ… случаСв Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»ΠΎ.

Π’ качСствС пояснСния я Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΠΊΠ½ΠΈΠ³ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠšΡΡ‚ΠΊΠΎΠ»Π» Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° компилятор Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‚ΠΈΠΏΠΎΠ² ΠšΡΡ‚ΠΊΠΎΠ»Π» ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ систСмам - большим ΠΈ ΠΌΠ°Π»Ρ‹ΠΌ, - Ρ€Π°Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ примирСния статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ, сочСтаСмым с ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ скрытиСм ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ, сказано послСднСС слово.

ПолноС соотвСтствиС

Π—Π°Π²Π΅Ρ€ΡˆΠ°Ρ обсуТдСниС ковариантности, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ достаточно ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ появился ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠšΡΡ‚ΠΊΠΎΠ»Π»-Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… базисного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° языка Π±Π΅Π· ввСдСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ».

ΠŸΡƒΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° согласованных списка, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°Π΄Π°Π΅Ρ‚ Π»Ρ‹ΠΆΠ½ΠΈΠΊΠΎΠ², Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ - сосСда ΠΏΠΎ ΠΊΠΎΠΌΠ½Π°Ρ‚Π΅ для Π»Ρ‹ΠΆΠ½ΠΈΠΊΠ° ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ списка. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ размСщСния share, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ описания Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΠΎΡΠ΅Π»ΡΡ‚ΡŒ Π΄Π΅Π²ΡƒΡˆΠ΅ΠΊ с Π΄Π΅Π²ΡƒΡˆΠΊΠ°ΠΌΠΈ, Π΄Π΅Π²ΡƒΡˆΠ΅ΠΊ-ΠΏΡ€ΠΈΠ·Π΅Ρ€ΠΎΠ² с Π΄Π΅Π²ΡƒΡˆΠΊΠ°ΠΌΠΈ-ΠΏΡ€ΠΈΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ часто.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, основанноС Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ обсуТдСнии ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ присваивания. Рассмотрим ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fitted (ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ):


fitted (other: GENERAL): like other is

-- Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Current), Ссли Π΅Π³ΠΎ Ρ‚ΠΈΠΏ соотвСтствуСт Ρ‚ΠΈΠΏΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°,

-- присоСдинСнного ΠΊ other, ΠΈΠ½Π°Ρ‡Π΅ void.

do

if other /= Void and then conforms_to (other) then

Result ?= Current

end

end



Ѐункция fitted Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ извСстный ΠΊΠ°ΠΊ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠ°, присоСдинСнного ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ. Если Ρ‚ΠΈΠΏ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ соотвСтствуСт Ρ‚ΠΈΠΏΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, присоСдинСнного ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ, Ρ‚ΠΎ возвращаСтся Void. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ присваивания. Ѐункция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ conforms_to ΠΈΠ· класса GENERAL, Π²Ρ‹ΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π—Π°ΠΌΠ΅Π½Π° conforms_to Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ GENERAL с ΠΈΠΌΠ΅Π½Π΅ΠΌ same_type Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ perfect_fitted (ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Void, Ссли Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΠΎΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.

Ѐункция fitted - Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ соотвСтствия Π»Ρ‹ΠΆΠ½ΠΈΠΊΠΎΠ² Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π°Π²ΠΈΠ» описания Ρ‚ΠΈΠΏΠΎΠ². Π’Π°ΠΊ, Π² ΠΊΠΎΠ΄ класса SKIER ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ вмСсто share, (послСднюю ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ скрытой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ).


safe_share (other: SKIER) is

-- Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Ссли допустимо, other ΠΊΠ°ΠΊ сосСда ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

-- gender_ascertained - установлСнный ΠΏΠΎΠ»

local

gender_ascertained_other: like Current

do

gender_ascertained_other := other .fitted (Current)

if gender_ascertained_other /= Void then

share (gender_ascertained_other)

else

"Π’Ρ‹Π²ΠΎΠ΄: совмСстноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ с other Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ"

end

end



Для other ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° SKIER (Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ like Current) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π²Π΅Ρ€ΡΠΈΡŽ gender_ascertained_other, ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ Ρ‚ΠΈΠΏ, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ Π·Π° Current. Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ функция perfect_ fitted.

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… списков Π»Ρ‹ΠΆΠ½ΠΈΠΊΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅:


occupant1, occupant2: LIST [SKIER]



ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», выполняя Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π²Ρ‹Π·ΠΎΠ²:


occupant1.item.safe_share (occupant2.item)



ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ элСмСнты списков, Ссли ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ

[x]. БтатичСская типизация - Π·Π°Π»ΠΎΠ³ надСТности, Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ эффСктивности.

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

[x]. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ объявлСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π’ΠΈΠΏΡ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ совмСстимыми с исходными.

[x]. ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ скрытия ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, экспортированного ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ, Π² сочСтании с ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ, Π½ΠΎ вСсьма ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ².

[x]. Π­Ρ‚ΠΈΡ… Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ: Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· (Ρ‡Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ), ограничивая ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ (Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚-Π—Π°ΠΊΡ€Ρ‹Ρ‚"), Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠšΡΡ‚ΠΊΠΎΠ»Π», ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ скрытиСм ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ.

БиблиографичСскиС замСчания

Ряд ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² этой Π»Π΅ΠΊΡ†ΠΈΠΈ прСдставлСн Π² Π΄ΠΎΠΊΠ»Π°Π΄Π°Ρ… Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… OOPSLA 95 ΠΈ TOOLS PACIFIC 95, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² [M 1996a]. Ряд ΠΎΠ±Π·ΠΎΡ€Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² заимствован ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ [M 1989e].

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ автоматичСского вывСдСния Ρ‚ΠΈΠΏΠΎΠ² Π²Π²Π΅Π΄Π΅Π½ΠΎ Π² [Milner 1989], Π³Π΄Π΅ описан Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вывСдСния Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка ML. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Ρ‚ΠΈΠΏΠΎΠ² Π±Ρ‹Π»Π° исслСдована Π² Ρ€Π°Π±ΠΎΡ‚Π΅ [Cardelli 1984a].

ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΊΠΎΠ΄Π° динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков Π² контСкстС языка Self ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² [Ungar 1992].

Π’Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΏΠΎΡΠ²ΡΡ‰Π΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ°ΠΌ Π² языках программирования ΠΈ ΠΎΠΊΠ°Π·Π°Π²ΡˆΡƒΡŽ большоС влияниС Π½Π° спСциалистов, написали Π›ΡƒΠΊΠ° ΠšΠ°Ρ€Π΄Π΅Π»Π»ΠΈ (Luca Cardelli) ΠΈ ΠŸΠ΅Ρ‚Π΅Ρ€ Π’Π΅Π³Π½Π΅Ρ€ (Peter Wegner) [Cardelli 1985]. Π­Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°, построСнная Π½Π° Π±Π°Π·Π΅ лямбда-исчислСния (см. [M 1990]), послуТила основой ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… изысканий. Π•ΠΉ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Π»Π° другая Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ ΠšΠ°Ρ€Π΄Π΅Π»Π»ΠΈ [Cardelli 1984].

Руководство ΠΏΠΎ ISE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстного примСнСния ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°, ковариантности ΠΈ скрытия ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ [M 1988a]. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ послуТило ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ряда критичСских дискуссий (ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стали ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π€ΠΈΠ»ΠΈΠΏΠΏΠ° Π­Π»ΠΈΠ½ΠΊΠ° (Philippe Elinck) Π² бакалаврской Ρ€Π°Π±ΠΎΡ‚Π΅ "De la Conception-Programmation par Objets", Memoire de licence, Universite Libre de Bruxelles (Belgium), 1988), высказанных Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ… [Cook 1989] ΠΈ [America 1989a]. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠšΡƒΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², связанных с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ковариантности, ΠΈ прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. РСшСниС Π½Π° основС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ… сущностСй Π½Π° TOOLS EUROPE 1992 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π€Ρ€Π°Π½Ρ† Π’Π΅Π±Π΅Ρ€ [Weber 1992]. Π’ΠΎΡ‡Π½Ρ‹Π΅ опрСдСлСния понятий систСмной коррСктности, Π° Ρ‚Π°ΠΊΠΆΠ΅ классовой коррСктности, Π΄Π°Π½Ρ‹ Π² [M 1992], Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° систСмы. РСшСниС ΠšΡΡ‚ΠΊΠΎΠ»Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π² [M 1996a]; см. Ρ‚Π°ΠΊΠΆΠ΅ [M-Web].