ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ развития ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ проСктирования (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ)

ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. Π€ΠΎΡ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развитиямСтодологии программирования история развития. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития. Π€ΠΎΡ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования история развития

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

Π‘ Ρ‡Π΅Π³ΠΎ всС Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ развития управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ восходит ΠΊ НоСву ΠšΠΎΠ²Ρ‡Π΅Π³Ρƒ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΡ…ΠΎΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ±Ρ‹Ρ‚Π½Ρ‹Ρ… людСй Π½Π° ΠΌΠ°ΠΌΠΎΠ½Ρ‚Π°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ элСмСнты управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ…ΠΈΡ‰Π½ΠΈΠΊΠΎΠ², охотящихся стаями.

Π’ Π°Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ связывали с Β«Π½Π°ΡƒΠΊΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°Β» ΠΈ связывали Π΄Π°Π½Π½ΡƒΡŽ Π½Π°ΡƒΠΊΡƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π·Π΄Π°Π½ΠΈΠΉ, Π½ΠΎ ΠΈ созданиСм ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π²ΠΎΠ΅Π½Π½Ρ‹Ρ… машин.Римский ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠœΠ°Ρ€ΠΊ Π’ΠΈΡ‚Ρ€ΡƒΠ²ΠΈΠΉ Π² 1 Π². Π΄ΠΎ нашСй эры Π² своСм Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ‚Π΅ Β«10 ΠΊΠ½ΠΈΠ³ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅Β» Π΄Π°Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:
Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ исполнСниС Π² соотвСтствии с трСбованиями искусства ΠΈ цСлСсообразности.
Π’ практичСском смыслС β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€ΡƒΠΊΠ°ΠΌΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ ΠΈΠ· любого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΡƒ.

Однако, история развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΊ дисциплины ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ»ΠΎΠ΄Π°: Π΅Π΅ относят ΠΊ 30-ΠΌ Π³ΠΎΠ΄Π°ΠΌ XX Π²Π΅ΠΊΠ° ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² БША β€” Π°Π²ΠΈΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π² Β«US Air CorporationΒ» ΠΈ Π½Π΅Ρ„Ρ‚Π΅Π³Π°Π·ΠΎΠ²Ρ‹Ρ… Π² Ρ„ΠΈΡ€ΠΌΠ΅ Β«ExonΒ». Π’ Π‘Π‘Π‘Π  Π² этот ΠΆΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ тСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ПоявлСниС Π½ΠΎΠ²ΠΎΠΉ дисциплины

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ для внСдрСния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π° Π² процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π·Π°Ρ€ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ 60Ρ… β€” Π½Π°Ρ‡Π°Π»Π΅ 70-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вошло Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ кризис программирования. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ состояло Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ПО стала ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Ρ‚ΡŒΡΡ ΠΊ стоимости Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ (Β«ΠΆΠ΅Π»Π΅Π·Π°Β»), Π° Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° роста этих стоимостСй позволяла ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊ сСрСдинС 90-Ρ… Π³ΠΎΠ΄ΠΎΠ² всС чСловСчСство Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ПО для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ микроэлСктроники ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ€Π΅Π·ΠΊΠΎΠΌΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π­Π’Πœ ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ сниТСнии стоимости. Начали ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ограничСния для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств, ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ограничСния приходятся Π½Π° долю ПО. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ отставало ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.
Другая тСндСнция развития Π·Π°Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ самой отрасли ΠΈ Π±Ρ‹Π»Π° основана Π½Π° усилСнии взгляда Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ простоС Β«ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β». ВмСсто этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС рассматриваСтся ΠΊΠ°ΠΊ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с появлСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ проходящий стадии проСктирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²Π²ΠΎΠ΄Π° Π² дСйствиС, сопровоТдСния ΠΈ развития. Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ фокуса внимания с кодирования ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠ³ΠΎ инструмСнтария, Π²ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², занятых Π½Π° всСх этапах ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.
Π’ΠΎΠ³Π΄Π° ΠΈ Π·Π°Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ( Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ программирования) ΠΊΠ°ΠΊ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дисциплинС, Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся сокращСниС стоимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Вакая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ проСктирования ПО ΠΈ возвСдСния Π΅Π³ΠΎ Π² Π³Π»Π°Π²Π΅Π½ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

Π˜Ρ‚Π°ΠΊ программная инТСнСрия β€” это инТСнСрная дисциплина, которая связана со всСми аспСктами производства ПО ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… стадий создания спСцификации Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ систСмы послС сдачи Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ

Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ «обрастаСт» Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, тСстированиСм, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚ΠΎΠΌ, созданиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈ ΠΏΡ€.). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° прСдваряСтся Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ систСмы Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, для осознания программистами Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°; Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚, эскиз, ΠΏΠ»Π°Π½ систСмы Π½Π° Π±ΡƒΠΌΠ°Π³Π΅).
ВсС эти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, выполняСмыС Π² процСссС ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ программирования ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠ΅ΠΉ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ знания. Или Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½Π°ΡƒΡ‡Π½ΡƒΡŽ дисциплину. Π’Π΅Π΄ΡŒ для облСгчСния выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, для возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, достигнутый Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, этот самый ΠΎΠΏΡ‹Ρ‚ подвСргаСтся ΠΎΡΠΌΡ‹ΡΠ»Π΅Π½ΠΈΡŽ, ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΈ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌΡƒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ. Π’Π°ΠΊ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ (best practices) – тСстирования, проСктирования, Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ трСбованиями ΠΈ ΠΏΡ€., Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… шаблонов ΠΈ ΠΏΡ€. А Ρ‚Π°ΠΊΠΆΠ΅ стандарты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ всСго процСсса Π² Ρ†Π΅Π»ΠΎΠΌ. Π’ΠΎΡ‚ эти-Ρ‚ΠΎ обобщСния ΠΈ входят Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡŽ ΠΊΠ°ΠΊ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ знания.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… области Π·Π½Π°Π½ΠΈΠΉ, Ρ‚.ΠΊ. нСсут Π² сСбС ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ.
БоврСмСнная классификация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° согласно SWEBOK выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.
ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ мСтодологиях

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ построСны Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ всСх Ρ„Π°Π· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС выполнСния всСх этапов. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ этап Π½Π΅ прСдусмотрСно ΠΈ ΠΏΡ€ΠΈ появлСнии критичСских ошибок вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ начинаСтся сначала. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ являСтся каскадная модСль ΠΈΠ»ΠΈ модСль Π’ΠΎΠ΄ΠΎΠΏΠ°Π΄. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ принято ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ Уинстона Ройса Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ΅ΡŽ Π² 1970 Π³ΠΎΠ΄Ρƒ. Однако, сам Ройс описывал эту модСль ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ противопоставлСнный ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΡ‡Π΅Π½ΡŒ простых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ сам пользовался ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ мСтодологиями. Π’Π°ΠΊ ΠΆΠ΅ Ройс писал, Ρ‡Ρ‚ΠΎ Π² особо слоТных мСстах ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ…, Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ этапы ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, Π½ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΎΠΆΠ΅. На Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅ ΠΎΠ½Π° сыграла Π²Π΅Π΄ΡƒΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ рСгулярной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТного ПО. Π’ 70x β€” 80x Π³ΠΎΠ΄Π°Ρ… XX Π²Π΅ΠΊΠ° модСль Π±Ρ‹Π»Π° принята ΠΊΠ°ΠΊ стандарт министСрства ΠΎΠ±ΠΎΡ€ΠΎΠ½Ρ‹ БША.
По ΠΌΠ΅Ρ€Π΅ развития ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ каскадная модСль ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π»Π°ΡΡŒ ТСсткой ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ со стороны всСх исслСдоватСлСй, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π²ΡˆΠΈΡ… свои ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этапов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ трСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ Π΄ΠΎ самого Ρ€Π΅Π»ΠΈΠ·Π°. Π§Π΅ΠΌ большС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Π΅ΠΌ большС накапливаСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² процСссС проСктирования. И рСализация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ½ΠΎΠ³Π΄Π° становится Π½Π΅ цСлСсообразной. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ с 0. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ работоспособной вСрсии Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ сильно растСт. А ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ½ΠΎ ΠΌΠ°Π». Однако, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ΠΆΠΈΠ²ΡˆΠΈΠΌΠΈ свой Π²Π΅ΠΊ? НС совсСм. Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ строго поставлСнныС трСбования ΠΈ высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нСсмотря, Π½Π° ΠΌΠΎΠ΄Π½ΡƒΡŽ сСйчас ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ½Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Π»Π°Π³Π°Π΅Ρ‚ Π½Π° процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для Π½Π΅Π³ΠΎ дисциплинированности, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ удаСтся Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ нСструктурированныС процСссы Ρ‚ΠΈΠΏΠ° «пишСм ΠΈ ΠΏΡ€Π°Π²ΠΈΠΌΒ». Данная модСль внСсла Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ утвСрТдСниями:

Π‘ΠΏΠΈΡ€Π°Π»ΡŒΠ½Π°Ρ модСль Π–Π¦ стала ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ (послС Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π½ΠΎΠΉ) этапом развития ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ каскадной ΠΌΠΎΠ΄Π΅Π»ΠΈ. КаТдая Ρ„Π°Π·Π° Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π½ΠΎΠ³ΠΎ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ этапом прототипирования ΠΈ управлСния рисками. Π­Ρ‚Π°ΠΏ прототипирования послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, насколько Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° соотвСтствуСт ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ»Π°Π½Ρƒ. По ΠΈΡ‚ΠΎΠ³Π°ΠΌ прототипирования выполняСтся Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„Π°Π·Π΅, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ„Π°Π·. Однако Ρ„Π°Π·Ρ‹ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„Π°Π· ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ. Автором Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ являСтся Π‘Π°Ρ€Ρ€ΠΈ Боэм, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π²ΡˆΠΈΠΉ Π² 1988 Π³ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡŽ Β«A Spiral Model of Software Development and EnhancementΒ». НС смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² SWEBOK данная модСль Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ, ΠΏΡ€ΠΈ описании ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ± отнСсСнии ΡΠΏΠΈΡ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊ сСмСйству ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ обуславливаСтся ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ измСнСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ этапами ΠΈ выпуска ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ связано с авторской ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ модСль ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ β€œΠΌΠΈΠ½ΠΈ-проСкт”, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Ρ„Π°Π·Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ созданию ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π² Ρ†Π΅Π»ΠΎΠΌ. Упоминания ΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π£. Ройса ΠΈ появлСния самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ. Π˜ΡΡ‚ΠΎΠΊΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² относящихся ΠΊ 30-ΠΌ Π³ΠΎΠ΄Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ… экспСрта ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ качСства ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Π£ΠΎΠ»Ρ‚Π΅Ρ€Π° Π¨Π΅Π²Π°Ρ€Ρ‚Π° ΠΈΠ· Bell Labs. Π’Π°ΠΆΠ½ΠΎΠΉ Π²Π΅Ρ…ΠΎΠΉ Π² истории являСтся осущСствлСнный Π² 50-Π΅ Π³ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ свСрхзвукового Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ самолСта X-15. По мнСнию участников этих Ρ€Π°Π±ΠΎΡ‚, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΎ успСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
НаиболСС обсуТдаСмыС сСйчас Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Agile ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ) относятся ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ модСлям Π–Π¦. ΠŸΡ€ΠΈ описании любой ΠΈΠ· Π³ΠΈΠ±ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ упоминаСтся ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ раздСлСния Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Однако, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ это ΡƒΠΏΠΎΡ€ Π½Π° чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€, Π° Π½Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ обозначаСтся Π² описании ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

Π“ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π° Ρ„ΠΎΠ½Π΅ быстрорастущСго услоТнСния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ всСобщСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв являСтся Π»ΠΈΡ†ΠΎ Π΄Π°Π»Π΅ΠΊΠΎΠ΅ ΠΎΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° Π³Π»Π°Π²Π½Ρ‹ΠΌ являСтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Π° Π½Π΅ Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ растущСм Ρ‚Π΅ΠΌΠΏΠ΅ развития ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ сроки Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ПО ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ ΠΈ стали ТСстчС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΄ΠΎΠ»Π³ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, написаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ полновСсноС тСстированиС. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Ρ€Π΅Ρ‚ΡŒ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°. Π’ противовСс Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ мСтодологиям Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ дСлят Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° прСдоставляСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ПоявлСниС Π³ΠΈΠ±ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π½Π΅ привязано ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΄Π°Ρ‚Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ начиная с сСрСдины 90Ρ… Π³ΠΎΠ΄ΠΎΠ² Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒΡΡ практичСски ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: Scrum (1995), ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (1996), Crystal Clear, Lean, Kanban ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2001 Π³ΠΎΠ΄Π°, Agile-манифСст, провозгласил Ρ„ΠΈΠ»ΠΎΡΠΎΡ„ΠΈΡŽ Π³ΠΈΠ±ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π·Π°Π΄Π°Π» Π²Π΅ΠΊΡ‚ΠΎΡ€ развития Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ этап развития ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ

БСйчас Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ проСктирования ΠΊΠ°ΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ влиянию ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π°. ВсС большС появляСтся ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ agile, ΠΊΠΎΡƒΡ‡Π΅Ρ€ΠΎΠ², проводящих бСсконСчныС Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³ΠΈ, сСминары, вэбинары, бСсконСчныС встрСчи, ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ столы. ВсС эти мСроприятия Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ внСдрСния Π² ИВ-компаниях Π·Π° большиС дСньги ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ спСциалистами ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π“ΠΈΠ±ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ сСйчас β€” это Π² большСй стСпСни свод Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ людСй с психологичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Π²ΠΎΡ€Ρ‡Π΅ΡΠΊΡƒΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ, ΡƒΠΌΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π½Π°Π²Ρ‹ΠΊΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. ВСхничСская сторона ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚ всС большС ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Π½. Волько Π₯Π (Π­ΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) ΠΈΠΌΠ΅Π΅Ρ‚ Π² своСм арсСналС Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· тСстированиС, ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. Π­Ρ‚ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ с успСхом ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² сочСтании с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ мСтодологиями. ΠŸΡ€ΠΈ нСкачСствСнном Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ Agile ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас происходит Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ IT ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π Ρ‹Π½ΠΎΠΊ пСрСнасыщСн нСкачСствСнными, Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ, Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ трСбованиям Π½Π΅ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ, Π½ΠΈ ΠΊ интСрфСйсу. ΠŸΡ€ΠΈ этом, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выпуска Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², благодаря ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ Agile ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, постоянно растСт.

с Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρ‹ сниТСниСм качСства выпускаСмых IT ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, стрСмящиСся это качСство ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ стал DEvOps.
Π’Π΅Ρ€ΠΌΠΈΠ½ Β«devopsΒ» Π±Ρ‹Π» популяризирован Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Β«Π”Π½ΠΈ DevOpsΒ» (Β«DevOps DaysΒ») Π² 2009 Π³ΠΎΠ΄Ρƒ Π² Π‘Π΅Π»ΡŒΠ³ΠΈΠΈ. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ такая мСтодология всС большС Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ.Π­Ρ‚ΠΎ отчасти связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ DevOPs ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€ΡƒΡŽΡ‚ Π½Π΅ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° сочСтаниС с Π½Π΅ΠΉ. ΠžΠ±Ρ‰Π°Ρ концСпция DevOps Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² усилСнии ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ(DEVelopments) ΠΈ эксплуатации(OPerations) Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, нСсущими ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ПО. Данная мСтодология это Π±Π΅Π· прСувСличСния Π½ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΡ‚ΠΎΠΊ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° Π² ТСстко ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сроки, Π½ΠΎ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ качСства ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

2. Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это историчСски пСрвая мСтодология программирования, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пользовался ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° любом ΠΈΠ· «массовых» языков программирования – Basic, Pascal, C.

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

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ.

Π’ качСствС матСматичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°-ΠŸΠΎΡΡ‚Π° β€” абстрактноС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π·Π°Ρ€Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ эры для описания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Бинтаксис ΠΈ сСмантика. Π―Π·Ρ‹ΠΊΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ модСль, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π±Ρ‹ срСдством описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями вычислитСля. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΈΡ… синтаксичСским понятиСм являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. ΠŸΠ΅Ρ€Π²Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° β€” простыС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… никакая ΠΈΡ… Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅ являСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ‚. ΠΏ.). Вторая Π³Ρ€ΡƒΠΏΠΏΠ° β€” структурныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Π½ΠΎΠ²Ρ‹ΠΉ, Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π°, Ρ†ΠΈΠΊΠ»Π° ΠΈ Ρ‚. ΠΏ.).

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ срСдство структурирования β€” ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ»ΠΈ функция). ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ опрСдСлСния ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ рСкурсивно. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

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

Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ языки программирования.Π˜ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ языки программирования ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² пошаговом Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструкции ΠΈ примСняя ΠΈΡ… ΠΊ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ. БчитаСтся, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ алгоритмичСским языком программирования Π±Ρ‹Π» язык Plankalkuel (ΠΎΡ‚ plan calculus), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² 1945β€”1946 Π³ΠΎΠ΄Π°Ρ… ΠšΠΎΠ½Ρ€Π°Π΄ΠΎΠΌ Π¦ΡƒΠ·Π΅ (Konrad Zuse).

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΈ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных ΠΈ распространСнных ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языков программирования Π±Ρ‹Π»ΠΎ создано Π² ΠΊΠΎΠ½Ρ†Π΅ 50-Ρ… β€” сСрСдинС 70-Ρ… Π³ΠΎΠ΄ΠΎΠ² XX Π²Π΅ΠΊΠ°. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ 80-Ρ… ΠΈ 90-Ρ… Π³ΠΎΠ΄ΠΎΠ² соотвСтствуСт увлСчСниям Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ, ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языков Π² это врСмя практичСски Π½Π΅ появлялось.

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

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

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌ количСствС ΠΊΠ½ΠΈΠ³. НаиболСС систСматично ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ «Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ языки программирования. БСмантичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄» [Калинин, ΠœΠ°Ρ†ΠΊΠ΅Π²ΠΈΡ‡ 1991].

2.1. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это Ρ‚Π°ΠΊΠΎΠΉ способ программирования, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° разбиваСтся Π½Π° Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… модулями, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ интСрфСйс с внСшнСй срСдой. ЕдинствСнная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” монолитная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсный вопрос ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ критСрия разбиСния Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π’ основС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π»Π΅ΠΆΠ°Ρ‚ Ρ‚Ρ€ΠΈ основных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ:

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ утаивания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠŸΠ°Ρ€Π½Π°ΡΠ°. Всякий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΡƒΡ‚Π°ΠΈΠ²Π°Π΅Ρ‚ СдинствСнноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚. Π΅. ΠΌΠΎΠ΄ΡƒΠ»ΡŒ слуТит для утаивания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сначала формируСтся список ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнно Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Аксиома ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠšΠΎΡƒΡΠ½Π°. ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€” нСзависимая программная Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, слуТащая для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ для связи с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ условиям:

Π±Π»ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚. Π΅. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² любой стСпСни влоТСнности;

синтаксичСская ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ‚. Π΅. Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ модуля Π² тСкстС синтаксичСскими элСмСнтами;

сСмантичСская Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Ρ‚. Π΅. Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ мСста, Π³Π΄Π΅ программная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ‹Π·Π²Π°Π½Π°;

ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚. Π΅. Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ собствСнных Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ;

ΠΏΠΎΠ»Π½ΠΎΡ‚Π° опрСдСлСния, Ρ‚. Π΅. ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹.

Π‘Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π¦Π΅ΠΉΡ‚ΠΈΠ½Π°. ΠœΠΎΠ΄ΡƒΠ»ΠΈ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ основныС прСдпосылки ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ:

стрСмлСниС ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡŽ нСзависимой Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ знания. Π’ идСальном случаС всякая идСя (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ модуля;

ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расчлСнСния ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ;

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ исполнСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π² контСкстС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования).

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ модуля ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ модуля.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹ΠΉ).

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ спСцификация модуля Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ:

ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄ΠΎΠ², которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ языкС программирования синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡƒ;

Разновидности ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ основныС разновидности ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

1) «ΠœΠ°Π»Π΅Π½ΡŒΠΊΠΈΠ΅» (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅) ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ΄Π½Ρƒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ практичСски Π²ΠΎ всСх языках программирования являСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ»ΠΈ функция.

2) «Π‘Ρ€Π΅Π΄Π½ΠΈΠ΅» (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅) ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ структурой Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ), которая считаСтся нСизвСстной Π²Π½Π΅ этого модуля. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ «ΡΡ€Π΅Π΄Π½ΠΈΡ…» ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² языках программирования:

a)Π·Π°Π΄Π°Ρ‡ΠΈ Π² языкС программирования Ada;

b)кластСр Π² языкС программирования CLU;

c)классы Π² языках программирования C++ ΠΈ Java.

3) «Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅β€ (логичСскиС) ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠ΅ Π½Π°Π±ΠΎΡ€ «ΡΡ€Π΅Π΄Π½ΠΈΡ…» ΠΈΠ»ΠΈ «ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…» ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ «Π±ΠΎΠ»ΡŒΡˆΠΈΡ…» ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² языках программирования:

a)ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² языкС программирования Modula-2;

b)ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² языках программирования Ada ΠΈ Java.

Набор характСристик модуля ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠœΠ°ΠΉΠ΅Ρ€ΡΠΎΠΌ [ΠœΠ°ΠΉΠ΅Ρ€Ρ 1980]. Он состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… конструктивных характСристик:

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 7 (+/-2) конструкций (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΏΠ°ΠΊΠ΅Ρ‚Π°). Π­Ρ‚ΠΎ число бСрСтся Π½Π° основС прСдставлСний психологов ΠΎ срСднСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅ памяти Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ Π² чСловСчСском ΠΌΠΎΠ·Π³Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² «Ρ‡Π°Π½ΠΊΠΈ» β€” Π½Π°Π±ΠΎΡ€Ρ‹ Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹Π΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Π΅ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Π’ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7 Ρ‡Π°Π½ΠΊΠΎΠ².

ΠœΠΎΠ΄ΡƒΠ»ΡŒ (функция) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 60 строк. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ страницу распСчатки ΠΈΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° экранС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

2) прочности (связности) модуля;

БущСствуСт Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π° ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰Π°Ρ, Ρ‡Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€Π΅Π΄Π½Ρ‹ ΠΈ опасны. ИдСя Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… дискрСдитируСт сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ идСя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° goto. Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Π²ΡΠ·Π½ΠΎΡΡ‚ΡŒ (ΠΏΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ) модуля (cohesion) β€” ΠΌΠ΅Ρ€Π° нСзависимости Π΅Π³ΠΎ частСй. Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ модуля β€” Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‚Π΅ΠΌ большС связСй ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ упрятываСт Π² сСбС. МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ связности, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° 2 модуля с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ связностСй.

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

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ (коммуникативная) ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒΡŽ β€” это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ структурой Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ), которая считаСтся нСизвСстной Π²Π½Π΅ этого модуля. Π­Ρ‚Π° информационная ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ примСняСтся для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ абстрактных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ срСдства для задания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ ΠΏΡ€ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ отсутствовали Π² Ρ€Π°Π½Π½ΠΈΡ… языках программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, FORTRAN ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии языка Pascal). И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Π² языкС программирования Ada, появился ΠΏΠ°ΠΊΠ΅Ρ‚ β€” срСдство задания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ модуля.

3) сцСплСния модуля с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модулями;

Π‘Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ (coupling) β€” ΠΌΠ΅Ρ€Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ нСзависимости модуля ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. НСзависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π§Π΅ΠΌ слабСС сцСплСниС модуля, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅. Рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ сцСплСния.

НСзависимыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ β€” это ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ случай. ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ ΠΎ Π΄Ρ€ΡƒΠ³Π΅. ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ, зная ΠΈΡ… интСрфСйс ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠ² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π½Π° Π²Ρ…ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π”ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ сцСплСния слоТно, Π΄Π° ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сцСплСниС ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ (парамСтричСскоС сцСплСниС) являСтся достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ.

Π‘Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ (парамСтричСскоС) β€” это сцСплСниС, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, ΠΊΠ°ΠΊ значСния Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ обращСния ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ для вычислСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄ сцСплСния рСализуСтся Π² языках программирования ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ функциям (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ). Π”Π²Π΅ разновидности этого сцСплСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

Π‘Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ простым элСмСнтам Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ структурС Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом случаС ΠΎΠ±Π° модуля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структурС Π΄Π°Π½Π½Ρ‹Ρ….

4) рутинности (ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ) модуля.

Π ΡƒΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ β€” это Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ модуля ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΌΡƒ (ΠΎΡ‚ прСдыстории). Π‘ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹ΠΌ, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ количСства ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Π° Π½Π΅ ΠΎΡ‚ количСства ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ).

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

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΄Π΅Π»Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹ΠΌ, Ρ‚. Π΅. нСзависимым ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ.

ЗависящиС ΠΎΡ‚ прСдыстории ΠΌΠΎΠ΄ΡƒΠ»ΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для сцСплСния ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ.

2.2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (БП) Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π‘Π›ΠžΠ–ΠΠžΠ‘Π’Π˜ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

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

По ΠΌΠ΅Ρ€Π΅ развития программирования появились Π·Π°Π΄Π°Ρ‡ΠΈ, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ сроки всС Π±ΠΎΠ»Π΅Π΅ слоТных Π·Π°Π΄Π°Ρ‡ с ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€ΡƒΠΏΠΏ программистов. И ΠΊΠ°ΠΊ слСдствиС, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² силу слоТности послСдних.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ структурного ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π² Ρ‚ΠΎΠΌ числС ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚ использования Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с сильной ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ обСспСчСнии ΠΈΡ… нСзависимости ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ базируСтся Π½Π° Π΄Π²ΡƒΡ… основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…:

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ дСкомпозиция Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ свСрху Π²Π½ΠΈΠ·.

ИспользованиС структурного кодирования.

Напомним, Ρ‡Ρ‚ΠΎ данная мСтодология являСтся ваТнСйшим Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, история ΠΈ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ структурного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° считаСтся ЭдсгСр ДСйкстра. Π•ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° (ΠΊ соТалСнию, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСпримСнимая для массового программирования) ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ структурноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ создаваСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ участвовали Ρ‚Π°ΠΊΠΈΠ΅ извСстныС ΡƒΡ‡Π΅Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π₯. Милс, Π”.Π­. ΠšΠ½ΡƒΡ‚, Π‘. Π₯ΠΎΠΎΡ€.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС структурного программирования. Π˜Ρ… Ρ‚Ρ€ΠΈ

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

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ модулями. ΠœΠ΅Ρ‚ΠΎΠ΄ поддСрТиваСтся ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ модуля.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ языки программирования. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ классичСской ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ‚ΠΊΠ°Π·Π΅ (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ стСпСни ΠΎΡ‚ΠΊΠ°Π·Π°) ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

БлСдствиС 1: Π’ΡΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° goto.

БлСдствиС 3: Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ структурированных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°, Π΄Π°ΠΆΠ΅ Π² случаС ΠΈΡ… Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π° всСх языках, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ рядС языков Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° goto, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Break ΠΈ Continue Π² языкС C).

Класс Π·Π°Π΄Π°Ρ‡. Класс Π·Π°Π΄Π°Ρ‡ для Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ соотвСтствуСт классу Π·Π°Π΄Π°Ρ‡ для ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ этом удаСтся Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅. Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных Ρ€Π°Π±ΠΎΡ‚ Π² этой области являСтся ΡΡ‚Π°Ρ‚ΡŒΡ «Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ структурному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ» [ДСйкстра 1975]. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ структурного программирования ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСны Π² ΠΊΠ½ΠΈΠ³Π΅ «Π’Сория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° структурного прграммирования» [Π›ΠΈΠ½Π³Π΅Ρ€, Миллс, Π£ΠΈΡ‚Ρ‚ 1982]. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ структурного программирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π΅ «ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ + структуры Π΄Π°Π½Π½Ρ‹Ρ… = ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» [Π’ΠΈΡ€Ρ‚ 1985]. Ѐилософия Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ структурного программирования ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅ [ΠŸΠ°Ρ€ΠΎΠ½Π΄ΠΆΠ°Π½ΠΎΠ² 1999].

3. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

ΠœΠ΅Ρ‚ΠΎΠ΄ структурного программирования оказался эффСктивСн ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Β«ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ слоТности». Однако с возрастаниСм слоТности Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ, соотвСтствСнно, объСма ΠΊΠΎΠ΄Π° создаваСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, возмоТности ΠΌΠ΅Ρ‚ΠΎΠ΄Π° структурного программирования оказались нСдостаточными.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π±Ρ‹Π» Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. OOP Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ, Π²ΠΎΠΏΠ»ΠΎΡ‰Ρ‘Π½Π½Ρ‹Π΅ Π² структурном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ сочСтаСт ΠΈΡ… с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ концСпциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Надо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ тСорСтичСскиС основы ООП Π±Ρ‹Π»ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΅Ρ‰Π΅ Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, Π½ΠΎ практичСскоС ΠΈΡ… Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅ стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ лишь Π² сСрСдинС 80-Ρ…, с появлСниСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… тСхничСских срСдств.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, управляСмыми ΠΎΡ‚ событий», Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, управляСмыми ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…Β».

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ООП

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ – Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ поддСрТиваСтся концСпциями инкапсуляции, наслСдования ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°.

ΠœΠ΅Ρ‚ΠΎΠ΄ абстрактных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… – ΠΌΠ΅Ρ‚ΠΎΠ΄, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² основС инкапсуляции. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ абстрактных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠœΠ΅Ρ‚ΠΎΠ΄ пСрСсылки сообщСний – Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² описании повСдСния систСмы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ сообщСния.

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ модСль чистого ООП ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ – посылку сообщСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. БообщСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π‘Π°ΠΌΠΎ сообщСниС Ρ‚ΠΎΠΆΠ΅ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² сообщСний (Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²). Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ поля – ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, значСниями ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° хранится ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΏΡ€Π΅Π΄ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ всС сообщСния, Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ сообщСний, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ классом Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ называСтся экзСмпляром ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ класса.

Бинтаксис ΠΈ сСмантика

Π’ синтаксисС чистых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков всС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записано Π² Ρ„ΠΎΡ€ΠΌΠ΅ посылки сообщСний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Класс Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках описываСт структуру ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ мноТСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ характСристиками, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ классу ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своим собствСнным Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ состояниСм. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ свойства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚Ρ€ΠΈ основных свойства:

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ. Π­Ρ‚ΠΎ сокрытиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

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

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΡ… нас ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² относится ΠΊ катСгориям, рассмотрСнным Π² ΠΊΠ½ΠΈΠ³Π΅ [Π¨Π»Π΅Π΅Ρ€, ΠœΠ΅Π»Π»ΠΎΡ€ 1993]:

Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ – абстракции ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ², ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² физичСском ΠΌΠΈΡ€Π΅;

Π ΠΎΠ»ΠΈ – абстракции Ρ†Π΅Π»ΠΈ ΠΈΠ»ΠΈ назначСния Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, части оборудования ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ;

Π˜Π½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ – абстракции Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΈΠ»ΠΈ ΡΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ;

ВзаимодСйствия – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΈΠ· ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ (ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) β€” присваиваниС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ раздСляСтся Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ выполняСт это дСйствиС способом, подходящим ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅ΠΌΡƒ.

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ ссылка Π½Π° класс, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ относится. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ сообщСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ обращаСтся ΠΊ классу для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ сообщСния. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования, Ссли сам класс Π½Π΅ располагаСт ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий для сообщСния выбираСтся динамичСски, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий, принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

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

ВзаимодСйствиС Π·Π°Π΄Π°Ρ‡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ абстрактном Pascal-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС класса Β«Ρ‚ΠΎΡ‡ΠΊΠ°Β», ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ наслСдником класса Β«ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹Β» ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Type TCoordinates = class (TObject)

Constructor Init (_x, _y : integer);

Function GetX : integer;

Function GetY : integer;

Procedure SetX (_x : integer);

Procedure SetY (_y : integer);

Procedure Move (dx, dy : integer);

Destructor Done; virtual;

Function GetX : integer;

TPoint = class (TCoordinates)

Constructor Init (_x, _y, _Color : integer);

Function SetColor (_Color : integer);

Function GetColor : integer;

Constructor Init(_x, _y, _Color : integer);

Inherited Init(_x, _y);

Если ΠΌΡ‹ Π² дальнСйшСм Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляры класса TPoint, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄-конструктор.

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ООР Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½-Π½Ρ‹Π΅ языки программирования. ВсС языки OOP ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹.

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

Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ внСдрСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… конструкций Π² популярныС ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ языки программирования.

Π£Ρ€Π΅Π·Π°Π½Π½Ρ‹Π΅ языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ удалСния ΠΈΠ· Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… языков Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ опасных ΠΈ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ООП конструкций.

4. ЛогичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’ 70-Ρ… Π³ΠΎΠ΄Π°Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π²Π΅Ρ‚Π²ΡŒ языков Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования, связанная с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² области искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ языки логичСского программирования.

Богласно логичСскому ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΠ»ΠΈ логичСских высказываний. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ допустимы логичСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎ-слСдствСнныС связи, Π² частности, Π½Π° основС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

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

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

Одним ΠΈΠ· нСдостатков логичСского ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ»Π°Π½Π΅ являСтся ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ класса Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π”Ρ€ΡƒΠ³ΠΎΠΉ нСдостаток практичСского Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° состоит Π² слоТности эффСктивной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, скаТСм, для систСм ТизнСобСспСчСния.

ΠΠ΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΡΡ‚ΡŒ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ, строго говоря, прСдставляСт собой ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ нСдостаток.

Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² языков логичСского программирования ΠΌΠΎΠΆΠ½ΠΎ привСсти Prolog (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΎΡ‚ слов PROgramming in LOGic) ΠΈ Mercury.

5. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ появился Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ провСдСния Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… матСматичСских исслСдований.

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

Π§Ρ‚ΠΎ касаСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΎΠ½Π° появилась Π² 50-Ρ… Π³ΠΎΠ΄Π°Ρ… XX столСтия Π² Ρ„ΠΎΡ€ΠΌΠ΅ языка LISP, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π΄Π°Π»Π΅Π΅.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ» Ρ†Π΅Π»ΠΎΠ΅ сСмСйство языков, Ρ€ΠΎΠ΄ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, стал язык программирования LISP. ПозднСС, Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ…, Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ языка ML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ впослСдствии развился, Π² частности, Π² SML, Π° Ρ‚Π°ΠΊΠΆΠ΅ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Из Π½ΠΈΡ…, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, самым Β«ΠΌΠΎΠ»ΠΎΠ΄Ρ‹ΠΌΒ» являСтся созданный ΡƒΠΆΠ΅ совсСм Π½Π΅Π΄Π°Π²Π½ΠΎ, Π² 90-Ρ… Π³ΠΎΠ΄Π°Ρ…, язык Haskell.

Π’Π°ΠΆΠ½Ρ‹ΠΌ прСимущСством Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языков Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования являСтся Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ динамичСскоС распрСдСлСниС памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом программист избавляСтся ΠΎΡ‚ нСобходимости ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ссли потрСбуСтся, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ «сборки мусора» – очистки памяти ΠΎΡ‚ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ понадобятся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

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

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

Благодаря Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΊΠ°ΠΊ ML ΠΈ Haskell Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для символьной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ЕстСствСнно, языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π½Π΅ Π»ΠΈΡˆΠ΅Π½Ρ‹ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСдостатков.

Для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° языках Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «функция» Π² матСматичСской Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ понятия.

Π’Π°ΠΊ, матСматичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ f с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ опрСдСлСния A ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ B называСтся мноТСство упорядочСнных ΠΏΠ°Ρ€

Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π² языкС программирования называСтся конструкция этого языка, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΏΡ€Π°Π²ΠΈΠ»Π° прСобразования Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ фактичСского ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°) Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Для Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ понятия «функция» Π±Ρ‹Π»Π° построСна матСматичСская тСория, извСстная ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π»Π°ΠΌΠ±Π΄Π°-исчислСния. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ это исчислСниС слСдуСт ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ исчислСниСм Π»Π°ΠΌΠ±Π΄Π°-конвСрсий.

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

БистСматизируСм ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΠΉ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² основС соврСмСнного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π»Π°ΠΌΠ±Π΄Π°-ΠΈΡΡ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ.

Рассмотрим ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ языков программирования, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Π Π°Π½Π½ΠΈΠ΅ языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Ρ€ΡƒΡ‚ своС Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚ классичСского языка LISP (LISt Processing), Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ списков, Ρ‚.Π΅. символьной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ этом основными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π±Ρ‹Π»ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΉ элСмСнт ΠΈ список ΠΈΠ· Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… элСмСнтов, Π° основной Π°ΠΊΡ†Π΅Π½Ρ‚ дСлался Π½Π° Π°Π½Π°Π»ΠΈΠ·Π΅ содСрТимого списка.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Ρ€Π°Π½Π½ΠΈΡ… языков программирования стали языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования с сильной Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ здСсь являСтся классичСский ML, ΠΈ Π΅Π³ΠΎ прямой ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ SML. Π’ языках с сильной Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ каТдая конструкция (ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ.

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ языков Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования стала ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚.Π΅. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с парамСтричСскими Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ (Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ матСматичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ). Π’ частности, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ поддСрТиваСтся Π² языках SML, Miranda ΠΈ Haskell.

На соврСмСнном этапС развития Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Β«Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния» со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями: сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ (Scheme, SML, Miranda, Haskell), парамСтричСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ (SML) ΠΈ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Β«Π»Π΅Π½ΠΈΠ²Ρ‹Π΅Β» (ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости) вычислСния (Haskell, Miranda, SML).

БСмСйство языков Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования довольно многочислСнно. Об этом ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ список языков, сколько Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки Π΄Π°Π»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ Ρ†Π΅Π»Ρ‹ΠΌ направлСниям Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Напомним, Ρ‡Ρ‚ΠΎ LISP Π΄Π°Π» Π½Π°Ρ‡Π°Π»ΠΎ Ρ†Π΅Π»ΠΎΠΌΡƒ сСмСйству языков: Scheme, InterLisp, COMMON Lisp ΠΈ Π΄Ρ€.

НС стал ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π½Π°ΠΌΠΈ язык программирования SML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π² Ρ„ΠΎΡ€ΠΌΠ΅ языка ML Π . ΠœΠΈΠ»Π½Π΅Ρ€ΠΎΠΌ (Robin Milner) Π² MIT (Massachusetts Institute of Technology) ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для логичСских Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Π² частности, Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Ρ‚Π΅ΠΎΡ€Π΅ΠΌ. Π―Π·Ρ‹ΠΊ отличаСтся строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π² Π½Π΅ΠΌ отсутствуСт парамСтричСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ «классичСского» ML стали сразу Ρ‚Ρ€ΠΈ соврСмСнных языка с практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями (парамСтричСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, Β«Π»Π΅Π½ΠΈΠ²Ρ‹Π΅Β» вычислСния). Π­Ρ‚ΠΎ язык SML, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π’Π΅Π»ΠΈΠΊΠΎΠ±Ρ€ΠΈΡ‚Π°Π½ΠΈΠΈ ΠΈ БША, CaML, созданный Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ французских ΡƒΡ‡Π΅Π½Ρ‹Ρ… института INRIA, SML/NJ – Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ SML ΠΈΠ· New Jersey, Π° Ρ‚Π°ΠΊΠΆΠ΅ российская Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° – mosml («московский» Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ ML).

Π‘Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ ΠΊ матСматичСской Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ послуТили ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… прСимущСств Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками программирования, Π² Ρ‚ΠΎΠΌ числС с Ρ€Π°Π½Π½ΠΈΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ языками, SML ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом нСсомнСнных достоинств. К Π½ΠΈΠΌ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, относятся:

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ (Π² частности, Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ), являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ.

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

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

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ рСализация прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ языки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, сущСствСнно зависит ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ взята с источников:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *