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

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

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

Из этого обсуТдСния слСдуСт, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ исходному тСксту модуля Π² Ρ€Π°ΠΌΠΊΠ°Ρ… управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, Π° строгиС языковыС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²Π° Π½Π° доступ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΠ· свойств Π΅Π³ΠΎ источника. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ‚Π°ΠΊΠΈΡ… "языках с инкапсуляциСй" ΠΊΠ°ΠΊ Ada ΠΈ Modula-2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная тСхнология программирования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.Из этого обсуТдСния слСдуСт, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ исходному тСксту модуля Π² Ρ€Π°ΠΌΠΊΠ°Ρ… управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, Π° строгиС языковыС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²Π° Π½Π° доступ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΠ· свойств Π΅Π³ΠΎ источника. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ‚Π°ΠΊΠΈΡ… "языках с инкапсуляциСй" ΠΊΠ°ΠΊ Ada ΠΈ Modula-2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная тСхнология программирования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. 3.5


Π₯отя Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Доступа Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ лишь Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с принятой Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ проСктирования, Π²Π»ΠΈΡΡŽΡ‰Π΅Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ аспСкты ОО-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ слСдуСт ΠΈΠ· критСрия НСпрСрывности; Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ частный случай ΠΏΡ€Π°Π²ΠΈΠ»Π° Бкрытия Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.Π₯отя Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Доступа Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ лишь Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с принятой Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ проСктирования, Π²Π»ΠΈΡΡŽΡ‰Π΅Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ аспСкты ОО-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ слСдуСт ΠΈΠ· критСрия НСпрСрывности; Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ частный случай ΠΏΡ€Π°Π²ΠΈΠ»Π° Бкрытия Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. 3.6


ΠΊΠ½ΠΈΠ³Π°ΠΊΠ½ΠΈΠ³Π° 4.1


НСкоторыС компиляторы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π·Π°Ρ‚Π΅ΠΌ транслируСтся ΠΈΠ»ΠΈ интСрпрСтируСтся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ПО Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа ΠΊ исходному тСксту. Если, ΠΊΠ°ΠΊ это часто Π±Ρ‹Π²Π°Π΅Ρ‚ сСйчас, Π² компиляторС формируСтся ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с использованиСм языка C, Ρ‚ΠΎ вмСсто Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ пСрСносимый ΠΊΠΎΠ΄ Π½Π° языкС C.НСкоторыС компиляторы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π·Π°Ρ‚Π΅ΠΌ транслируСтся ΠΈΠ»ΠΈ интСрпрСтируСтся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ПО Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа ΠΊ исходному тСксту. Если, ΠΊΠ°ΠΊ это часто Π±Ρ‹Π²Π°Π΅Ρ‚ сСйчас, Π² компиляторС формируСтся ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с использованиСм языка C, Ρ‚ΠΎ вмСсто Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ пСрСносимый ΠΊΠΎΠ΄ Π½Π° языкС C. 4.2


Ρ‚Π°Π±Π»ΠΈΡ†Π΅Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 4.3


Π’ сСмидСсятыС Π³ΠΎΠ΄Ρ‹ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, Π² связи с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΈΠ΄Π΅ΠΉ скрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ абстракции Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ модуля, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Появилось нСсколько языков проСктирования ΠΈ программирования, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстныС ΠΈΠ· Π½ΠΈΡ…: CLU, Modula-2 ΠΈ Ada. Π’ Π½ΠΈΡ… прСдлагаСтся сходная Ρ„ΠΎΡ€ΠΌΠ° модуля, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² языкС Ada ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, CLU - кластСром, Modula - ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Π’ нашСм обсуТдСнии Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚.Π’ сСмидСсятыС Π³ΠΎΠ΄Ρ‹ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, Π² связи с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΈΠ΄Π΅ΠΉ скрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ абстракции Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ модуля, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Появилось нСсколько языков проСктирования ΠΈ программирования, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстныС ΠΈΠ· Π½ΠΈΡ…: CLU, Modula-2 ΠΈ Ada. Π’ Π½ΠΈΡ… прСдлагаСтся сходная Ρ„ΠΎΡ€ΠΌΠ° модуля, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² языкС Ada ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, CLU - кластСром, Modula - ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Π’ нашСм обсуТдСнии Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚. 4.4


НапримСр, Π² языкС Ada ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ с Ρ€Π°Π·Π½ΠΎΠΉ сигнатурой, опрСдСляСмой здСсь числом ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС сигнатура Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ содСрТит Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π½ΠΎ язык Ada Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ square:НапримСр, Π² языкС Ada ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ с Ρ€Π°Π·Π½ΠΎΠΉ сигнатурой, опрСдСляСмой здСсь числом ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС сигнатура Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ содСрТит Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π½ΠΎ язык Ada Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ square: 4.5


ОснованноС Π½Π° стСкС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ сдСлало популярным Algol 60 ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ поддСрТиваСтся (часто вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ двумя Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков. Π’Π°ΠΊΠΎΠΉ способ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΈ динамичСскиС массивы, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡΡΠ½ΡΡŽΡ‚ΡΡ Π² процСссС выполнСния. Π’ Pascal ΠΈ C этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ примСняСтся ΠΊ массивам, ΠΊΠ°ΠΊ это дСлаСтся Π² Algol. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π½Π½ΠΎ массивы Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ способом. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°ΠΆΠ΅ Ссли этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ массивам, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² стСкС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° слоТных структур Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.ОснованноС Π½Π° стСкС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ сдСлало популярным Algol 60 ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ поддСрТиваСтся (часто вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ двумя Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков. Π’Π°ΠΊΠΎΠΉ способ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΈ динамичСскиС массивы, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡΡΠ½ΡΡŽΡ‚ΡΡ Π² процСссС выполнСния. Π’ Pascal ΠΈ C этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ примСняСтся ΠΊ массивам, ΠΊΠ°ΠΊ это дСлаСтся Π² Algol. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π½Π½ΠΎ массивы Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ способом. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°ΠΆΠ΅ Ссли этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ массивам, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² стСкС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° слоТных структур Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. 9.1


Как Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ наслСдованиС ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ сопСрников ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ соратников, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒΡŽ являСтся построСниС Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ПО?Как Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ наслСдованиС ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ сопСрников ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ соратников, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒΡŽ являСтся построСниС Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ПО? 10.1


ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ 10.2


Рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ набросок этого класса:Рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ набросок этого класса: 10.3


ΠΈΠ½Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽΠΈΠ½Ρ„ΠΈΠΊΡΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ 10.4


Число создаваСмых экзСмпляров шаблона - ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π‘++. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт List<int>, List<String>, List<Widget> ΠΈ List<Blidget> (Π³Π΄Π΅ Widget ΠΈ Blidget классы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ head, tail ΠΈ insert для всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ каТдая ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создана Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… экзСмплярах (ΠΈΠ·-Π·Π° Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ пороТдСния). ВмСсто этого ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ класс List ΠΌΠΎΠ³ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ СдинствСнный экзСмпляр ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².Число создаваСмых экзСмпляров шаблона - ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π‘++. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт List<int>, List<String>, List<Widget> ΠΈ List<Blidget> (Π³Π΄Π΅ Widget ΠΈ Blidget классы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ) ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ head, tail ΠΈ insert для всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ каТдая ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создана Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… экзСмплярах (ΠΈΠ·-Π·Π° Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ пороТдСния). ВмСсто этого ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ класс List ΠΌΠΎΠ³ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ СдинствСнный экзСмпляр ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². 10.5


ΠΎΠ±Ρ‰ΠΈΠΉ класс, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ стСкиобщий класс, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ стСки 11.1


Для ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для постусловийДля ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для постусловий 11.2


ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° 12.1


ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° 13.1


Π­Ρ‚Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ вмСстС с вопросом ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктированияЭта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ вмСстС с вопросом ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования 13.2


ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… лСкцияхпрСдыдущих лСкциях 13.3


Π°Π½Π°Π»ΠΈΠ· символа, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌΠ°Π½Π°Π»ΠΈΠ· символа, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ 13.4