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

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

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

[x]. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ само Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ происходит автоматичСски с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прилоТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± этом сам.

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

Π”Π°Π½Ρ‹ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Ρ‚Ρ€ΠΈ способа Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ, Π² ΠΈΡ‚ΠΎΠ³Π΅ - ΡˆΠ΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Волько Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅ΡŽΡ‚ практичСский смысл. Рассмотрим ΠΈΡ….

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², управляСмоС программистом

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

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² языка: всС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ Π½ΠΈΡ… трСбуСтся, - это ввСсти Π² язык ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ², скаТСм, reclaim, Ρ‚Π°ΠΊΠΎΠΉ Ρ‡Ρ‚ΠΎ a.reclaim сообщаСт систСмС, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, присоСдинСнный ΠΊ a, Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ячСйки памяти ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Π½Π΅ ОО-языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Pascal (dispose ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°), C (free), PL/I (FREE), Modula-2 ΠΈ Ada. Оно Π΅ΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ 'Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… ОО" языков, Π² частности Π² C++.

Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ особСнно привСтствуСтся Π² ΠΌΠΈΡ€Π΅ Π‘-программистов, Π»ΡŽΠ±ΡΡ‰ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ происходящСС. ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ рСакция Ρ‚Π°ΠΊΠΈΡ… программистов Π½Π° тСзис ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Objective-C ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ прСимущСства, благодаря автоматичСскому Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ памяти, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

Π― Π³ΠΎΠ²ΠΎΡ€ΡŽ, НЕВ! ΠžΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ нСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ - ΠŸΠ›ΠžΠ₯ΠžΠ™ Π‘Π’Π˜Π›Π¬ ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π―. Если Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° Π΅Π³ΠΎ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ссли Π²Ρ‹ ΠΈΠΌ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ. Π Π°Π·Π²Π΅ ΠΌΠ°ΠΌΠ° Π½Π΅ ΡƒΡ‡ΠΈΠ»Π° вас ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ свои ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ послС ΠΈΠ³Ρ€Ρ‹? (Послано Π―Π½ΠΎΠΌ БтСфСнсоном (Ian Stephenson), 11 мая1993.)

Для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ эта позиция Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°. Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ со своими "ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°ΠΌΠΈ" ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: надСТности ΠΈ простоты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° надСТности

Допустим, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ управляСт ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° reclaim. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° reclaim всСгда сущСствуСт; особСнно ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ПО reclaim, Π±Ρ‹Π²ΡˆΠ΅Π΅ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ.

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

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

Π‘ΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ этих ошибок являСтся "ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования", ΠΊΠ°ΠΊ Π² письмС, упомянутом Π²Ρ‹ΡˆΠ΅, это Π½Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ. Π§Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ свойствСнно ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡ; ошибки ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹. Π”Π°ΠΆΠ΅ Π² прилоТСниях срСднСй слоТности, Π½Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, нСльзя Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ самому сСбС Π² способности ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° выполнСния. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, с Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

МногиС ΠΈΠ· Π‘ ΠΈΠ»ΠΈ Π‘++ программистов Π½ΠΎΡ‡ΠΈ проводят, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΡ… ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ. НСрСдко, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ задСрТиваСтся ΠΈΠ·-Π·Π° Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° простоты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π”Π°ΠΆΠ΅ Ссли ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² reclaim, остаСтся вопрос - сколь Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²? Π—Π°Π³Π²ΠΎΠ·Π΄ΠΊΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ нСдостаточно, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ сам ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ.

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

Рис. 9.10.  ΠŸΡ€ΡΠΌΡ‹Π΅ ΠΈ косвСнныС Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ ссылки

На этом рисункС всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° PERSON1. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ x присоСдинСна ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ О Ρ‚ΠΈΠΏΠ° MY_TYPE , ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°ΠΊ класс:


class MY_TYPE feature

attr1: TYPE_1

attr2: TYPE_2

end


ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° MY_TYPE, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ О, содСрТит Π΄Π²Π΅ ссылки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (ΠΊΡ€ΠΎΠΌΠ΅ void) присоСдинСны ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Ρ‚ΠΈΠΏΠ° TYPE_1 ΠΈ TYPE_2. Утилизация О ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ зависимыС ΠΎΡ‚ Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ рСкурсивной ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² этом случаС, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ написаниС мноТСства ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ, - ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ мноТСство Π²Π·Π°ΠΈΠΌΠ½ΠΎ рСкурсивных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ большой слоТности.

ВсС это Π²Π΅Π΄Π΅Ρ‚ ΠΊ катастрофС. НСрСдко, Π² языках, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ сборку мусора, Π² прилоТСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ систСмы управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Вакая ситуация Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прилоТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° своСй Ρ€Π°Π±ΠΎΡ‚Π΅, Π° Π½Π΅ ΡΡ‚Π°Ρ‚ΡŒ счСтоводом ΠΈΠ»ΠΈ сборщиком мусора.

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

Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. ΠšΡ€ΠΎΠΌΠ΅ ТСстко ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ситуаций (рассмотрСнных Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅), Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… систСм, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΏΠΎ сообраТСниям качСства.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

(Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» описываСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ случая; Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ.)

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½Ρ‹ΠΌ схСмам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ автоматичСская сборка мусора, стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ, исправляя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ нСдостатки.

Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ОО-программирования "снизу-Π²Π²Π΅Ρ€Ρ…", Π³Π΄Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ для Π½ΡƒΠΆΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° строятся ΠΊΠ°ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ классы.

Π§Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ОО-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ? Одна ΠΈΠ· Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ скорСС организационная, Ρ‡Π΅ΠΌ тСхничСская: Π² этом ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ прилоТСния ΠΈ создатСлями систСмных срСдств - компилятора ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - стоит Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Π³Ρ€ΡƒΠΏΠΏΠ° людСй, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° написаниС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… основныС структуры Π΄Π°Π½Π½Ρ‹Ρ…. Π§Π»Π΅Π½ΠΎΠ² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ Π² Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ипостасях, принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ производитСлями ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (component manufacturers).