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

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

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

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

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

НаконСц, ΠΎ пСдагогичСской сторонС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. РаспространСниС исходных тСкстов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ являСтся срСдством прСдставлСния Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ потрСбитСлями ПО Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ стилС. Π’ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ этом стандартизация являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· достоинств ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ стСпСни это Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ мСсто Π΄Π°ΠΆΠ΅ Π² случаС, ΠΊΠΎΠ³Π΄Π° доступны лишь интСрфСйсы, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст.(Π­Ρ‚ΠΎΡ‚ вопрос обсуТдаСтся Π² Π»Π΅ΠΊΡ†ΠΈΠΈ, посвящСнной ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ ОО-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 11 курса "ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования".)

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли доступСн исходный ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС основного срСдства Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: для этого ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ интСрфСйс модуля.

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

[x]. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, это ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π›ΠΈΠ³ΠΈ Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΊΠΎΠ² Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (League for Programming Freedom): всС ПО Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ бСсплатным ΠΈ доступным Π² Ρ„ΠΎΡ€ΠΌΠ΅ исходных тСкстов.(Π‘ΠΌ. библиографичСскиС замСчания.)

[x]. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, имССтся идСя супСрпоставки (superdistribution), прСдлоТСнная Брэдом Коксом (Brad Cox) Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΈ ΠΊΠ½ΠΈΠ³Π΅. БупСрпоставка Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ свободно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, оплачивая Π½Π΅ ΠΈΡ… ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅, Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ использованиС. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС нСбольшой счСтчик, присоСдинСнный ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ "Π²Ρ‹Π±ΠΈΠ²Π°Π΅Ρ‚" сумму Π² нСсколько пСнсов всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ этим ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ счСт. Π­Ρ‚ΠΎ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ распространСния исходных тСкстов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ счСтчика. Японская ассоциация ΠΏΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ элСктронной ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΠΈ JEIDA (Japanese Electronic Industry Development Association) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ создания тСхничСских ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… срСдств ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. Π‘Π°ΠΌ Кокс Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΠ» ΠΎΡΠΎΠ±ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ тСхнологичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² принуТдСния, основанных Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΎΠ²Ρ‹Ρ… Π½ΠΎΡ€ΠΌΠ°Ρ… (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ авторского ΠΏΡ€Π°Π²Π°). Пока идСя супСрпоставки Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ мноТСство тСхничСских, экономичСских ΠΈ психологичСских вопросов.

ΠžΡ†Π΅Π½ΠΊΠ°

ΠŸΡ€ΠΈ любом всСстороннСм ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования слСдуСт наряду с тСхничСскими аспСктами Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈ экономичСскиС вопросы: ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ структуру стоимости ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ распространСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ срСдства для индСксирования ΠΈ поиска ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ эти вопросы Π»Π΅Π³Π»ΠΈ Π² основу основных ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ² ΠΏΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию, ΠΈΡΡ…ΠΎΠ΄ΠΈΠ²ΡˆΠΈΡ… ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π² ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° STARS (Software Technology for Adaptable, Reliable Systems - ВСхнология создания ПО для Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ…, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… систСм) ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²Π° ΠΎΠ±ΠΎΡ€ΠΎΠ½Ρ‹ БША ΠΈ "Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ ПО" ("software factories"), Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² дСйствиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ большими японскими Ρ„ΠΈΡ€ΠΌΠ°ΠΌΠΈ.

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

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

ВСхничСская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Как ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ?

ИзмСнСния ΠΈ постоянство

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ связана с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ. Для понимания тСхничСской трудности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования, слСдуСт ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ повторяСмости.

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

Наглядной ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ норвСТского Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ° Π­Π΄Π²Π°Ρ€Π΄Π° ΠœΡƒΠ½ΠΊΠ°, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² посвящСнном Π΅ΠΌΡƒ ΠΌΡƒΠ·Π΅Π΅ Π² Осло, Π½Π° Ρ€ΠΎΠ΄ΠΈΠ½Π΅ языка программирования Simula. ВворчСством ΠœΡƒΠ½ΠΊΠ° Π²Π»Π°Π΄Π΅Π»ΠΈ нСсколько ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ-Π²Π°ΠΆΠ½Ρ‹Ρ…, Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Ρ‚Π΅ΠΌ: любовь, страданиС, Ρ€Π΅Π²Π½ΠΎΡΡ‚ΡŒ, Ρ‚Π°Π½Π΅Ρ†, ΡΠΌΠ΅Ρ€Ρ‚ΡŒ. Он Π±Π΅Π· ΠΊΠΎΠ½Ρ†Π° воспроизводил ΠΈΡ… Π² своих рисунках ΠΈ Тивописи, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ всякий Ρ€Π°Π· ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·Ρ†Π°ΠΌΠΈ, Π½ΠΎ мСняя тСхничСскиС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, Ρ†Π²Π΅Ρ‚Π°, Ρ€Π΅Π·ΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€, освСщСниС, настроСниС.

Π’ Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ находится ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ПО, создавая Π½ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ основныС Ρ‚Π΅ΠΌΡ‹.

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

НСтрудно ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ это Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС Π² частично Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:


has (t: TABLE, x: ELEMENT): BOOLEAN is

-- ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π»ΠΈ x Π² t?

local

pos: POSITION

do

from

pos := INITIAL_POSITION (x, t)

until

EXHAUSTED (pos, t) or else FOUND (pos, x, t)

loop

pos := NEXT (pos, x, t)

end

Result := not EXHAUSTED (pos, t)

end


НСкоторыС пояснСния ΠΊ принятой здСсь Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ: from ... until ... loop ... end описываСт Ρ†ΠΈΠΊΠ», с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ условиСм Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ from, Π½ΠΈ Ρ€Π°Π·Ρƒ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ дСйствия прСдлоТСния loop, ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ условия прСдлоТСния until. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Result содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ has. Если Π²Ρ‹ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ or else (ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ or else ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 13), Ρ‚ΠΎ считайтС, Ρ‡Ρ‚ΠΎ здСсь содСрТится просто логичСскоС or.

Π₯отя ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ тСкст описываСт ΠΎΠ±Ρ‰ΡƒΡŽ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΎΠ½ Π½Π΅ являСтся нСпосрСдствСнно выполняСмым, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ (написанныС Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ). Они ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ аспСктам Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ поиска, зависящим ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: Ρ‚ΠΈΠΏ элСмСнтов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (ELEMENT), с ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ поиск (INITIAL_POSITION), ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ (NEXT), ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ искомого элСмСнта Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (FOUND), ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ нас ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ (EXHAUSTED).