ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. 
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠžΠ‘ΠΠžΠ’Π« Π―Π—Π«ΠšΠžΠ’ΠžΠ™ ΠŸΠ ΠžΠ“Π ΠΠœΠœΠΠžΠ™ Π‘Π Π•Π”Π«

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΌΠ΅ΡΡ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΎΠ±Ρ‰Π΅ΠΉ классификации, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ достоинства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ваТнСйшиС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

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

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ основы программирования ΠΈ Π΄Π°Π½ΠΎ тСорСтичСскоС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² computer science. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» посвящСн Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΡ€ΠΈ этом сущСствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‚Π΅ΠΌΠΎΠΉ этого ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°.

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

Основная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° посвящСна концСпциям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π² Ρ‡Π°ΡΡ‚ности наслСдования, инкапсуляции ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°. По Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘#, самом популярном для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET) ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ тСорСтичСскими аналогиями ΠΈΠ· computer science. ИсслСдованиС ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ языков программирования Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΡ‚ΠΎΠ³ΠΈ построСния классификации языков ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

ΠšΡ€Π°Ρ‚ΠΊΠΎ пСрСчислим основныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ:

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

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

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

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

Высокая ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ абстракции Ρ‚Π°ΠΊΠΆΠ΅ являСтся прСимущСством Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ЀактичСски программист ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструкций, Π° Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ понятиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ достаточно ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ.

На Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС развития Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ языкам программирования Π±Ρ‹Π»ΠΎ слоТно ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π² ΡΠΈΠ»Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… трудностСй ΠΏΡ€ΠΈ создании эффСктивной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ трансляторов. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ с ΠΌΠ΅Π½ΡŒΡˆΠΈΠΌΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ абстрактныС Π·Π°Π΄Π°Ρ‡ΠΈ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ языка LISP Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ядро ΠΈ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ этого языка оказались вСсьма эффСктивными ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ символьной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π°Π½Π°Π»ΠΈΠ·Π΅ тСкстов).

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языков программирования Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

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

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

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

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

Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся язык Fortran, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — язык APL, Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉΡΡ Π² BPL ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π² Π‘. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ конструкции послСднСго ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π²ΠΎΡ‚ ΡƒΠΆΠ΅ нСсколько дСсятилСтий ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΡΠ·Ρ‹ΠΊΠ΅ Π‘#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ прСдстоит ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования: ALGOL, COBOL, Pascal, Basic.

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

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

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

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

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

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

Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков программирования Π±Ρ‹Π»ΠΈ рассмотрСны Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΠΌ шагом Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ языков программирования стало появлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (ООП) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса языков. ИмСнно исслСдованиС Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ ООП являСтся основной Ρ†Π΅Π»ΡŒΡŽ ΠΊΠ½ΠΈΠ³ΠΈ.

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

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

ИспользованиС Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ программистов) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ производствС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, особСнно Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ.

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

НаиболСС извСстным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка программирования являСтся язык C++, Ρ€Π°Π·Π²ΠΈΠ²ΡˆΠΈΠΉΡΡ ΠΈΠ· ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ языка Π‘. Π•Π³ΠΎ прямым ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ являСтся язык Π‘#, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ исслСдуСтся Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования: Visual Basic, Java, Eiffel, Oberon.

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

К Ρ‡ΠΈΡΠ»Ρƒ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΡ… понятий ООП ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ относят Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, наслСдованиС, ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

НСрСдко Π² ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°Ρ… ΠΈ ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ программирования Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ матСматичСского основания для формирования достаточно ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈ ΡΡΠ½ΠΎΠ³ΠΎ прСдставлСния ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π°Ρ… ООП. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ области computer science (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, лямбда-исчислСниС ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚орная Π»ΠΎΠ³ΠΈΠΊΠ°) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… понятий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π’ Ρ‡Π°ΡΡ‚ности, понятиС абстракции — основной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ лямбда-исчислСния — для нас являСтся ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ.

Поясним качСствСнно ΠΈΠ½Ρ‹Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП. Π’Π°ΠΊ, наслСдованиС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ опСрирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ основано Π½Π° ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «ΡΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅» свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, понимаСтся ΠΊΠ°ΠΊ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠ½Π°.

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

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

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

Как ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΈ, концСпция абстракции Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ модСлируСтся посрСдством лямбдаисчислСния. Π’ΠΎΡ‡Π½Π΅Π΅ говоря, опСрация абстракции Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ являСтся модСлью ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ понятия ООП.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования являСтся ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ясноС понятиС наслСдования. Π’ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ постановкС ΠΏΠΎΠ΄ наслСдованиСм понимаСтся свойство Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ), Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ΅ для Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния языков программирования понятиС наслСдования ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ всСх ΠΈΠ»ΠΈ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… свойств ΠΈ (ΠΈΠ»ΠΈ) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ) класса для всСх классов, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Π½Π΅Π³ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сохранСниС свойств ΠΈ (ΠΈΠ»ΠΈ) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Π»Ρ всСх ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΉ (Ρ‚.Π΅. ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) любого ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса.

Π’ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ наслСдования принято ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ частичного порядка (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляСт собой Π²ΠΈΠ΄ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ). ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ наслСдования Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ формализуСтся матСматичСски посрСдством ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ:

  • 1) Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ²ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Руссопулоса, Π½Π°Π·Π²Π°Π½Π½ΠΎΠΉ Ρ‚Π°ΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ своСго создатСля (Nick Roussopulos);
  • 2) Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Π₯ассС, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ… Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡƒΡ‡Π΅Π½ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» этот способ наглядного прСдставлСния наслСдования (Helmut Hasse). Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘#, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ наслСдования:

class, А { // Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс.

int Π°;

public А () {…} public void F () {…}.

}.

class B: A { // подкласс (наслСдуСт свойства класса А, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ класс А).

int b;

public Π’ () (…) public void G () (…).

}.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСдставляСт собой описаниС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, А ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ класса Π’.

Класс, А ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ цСлочислСнный Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ (Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ) Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Ρ‚.Π΅. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) А (…) ΠΈ F (…). Класс Π’ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ цСлочислСнный Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ (Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ) Π¬, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Ρ‚.Π΅. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) Π’ (…) ΠΈ G (…).

Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ Π’: А Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ класса Π’ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ наслСдованиС.

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

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ особСнности наслСдования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘#.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс Π’ Π½Π°ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, А ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ, Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ F (). ΠŸΡ€ΠΈ этом ΠΊ ΠΊΠ»Π°ΡΡΡƒ Π’ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ся собствСнныС свойство b ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ G (). Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ наслСдования справСдливы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния:

  • 1) конструкторы (Ρ‚.Π΅. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ классов) Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ся;
  • 2) Π² ΡΠ·Ρ‹ΠΊΠ΅ C# сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ замСщСния наслСдуСмых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (этот языковой аспСкт Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСн Π΄Π°Π»Π΅Π΅).

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

Один класс языка программирования C# ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ лишь свойства Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса (Π½ΠΎ Π½Π΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ — Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ языка программирования F#). Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ свойства Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ этом Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ интСрфСйсов. Подкласс с Π½Π΅ΡΠ²Π½Ρ‹ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом наслСдуСт свойства Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ абстрактного класса, извСстного ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚» (object).

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ООП являСтся понятиС инкапсуляции. ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ говоря, ΠΏΠΎΠ΄ инкапсуляциСй понимаСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ посрСдством прСдоставляСмых ΠΈΠΌΠ΅Π½Π½ΠΎ этим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, свойствами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π±Π΅Π·Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ явно описанными ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ посрСдством ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ унаслСдованы).

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ — вСсьма Π²Π°ΠΆΠ½ΠΎΠ΅ свойство, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ обСспСчиваСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ (Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ программистом) ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ бСзопасности Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

Π₯отя инкапсуляция ΠΊΠ°ΠΊ таковая являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ свойством ООП, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ инкапсуляции ΠΏΡ€ΠΈ наслСдовании ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° области видимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ видимости. Π’Π°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ видимости public обСспСчиваСт Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ мСста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

К ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ свойствам инкапсуляции относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности:

  • 1) совмСстноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ‚.Π΅. свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°);
  • 2) сокрытиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля (Ρ‡Ρ‚ΠΎ обСспСчиваСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ прилоТСния);
  • 3) изоляция ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‡Ρ‚ΠΎ обСспСчиваСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ друТСствСнный интСрфСйс ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).

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

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ понимаСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Ρ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

void Poly (object ΠΎ) {.

Console. Write Line (o.ToStringO);

}.

Данная функция Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ Console. WriteLine) с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΠΊ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ (ΠΌΠ΅Ρ‚ΠΎΠ΄ ToStringO).

ВсС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π ΠΎ1Ρƒ (25);

Poly («John Smith»);

Poly (3.14 159 2536m);

Poly (ncw Point (12,45));

ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄ΡƒΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ся Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠœΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ рассмотрСниСм ООП Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ прСдставлСния ΠΎΠ± ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы Вопрос 1.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ (Π·Ρ€Π΅Π»Ρ‹ΠΌ)?

  • Π°) структурный;
  • Π±) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ;
  • Π²) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (+).

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… языков программирования основаны Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅?

  • Π°) C# ΠΈ SML;
  • Π±) C# ΠΈ C++ (+);
  • Π²) C# ΠΈ Haskell.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3'. ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ для модСлирования абстракции?

  • Π°) Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ Π‘ΠΊΠΎΡ‚Ρ‚Π° ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π₯ассС;
  • Π±) Ρ„Ρ€Π΅ΠΉΠΌΡ‹ Руссопулоса ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π₯ассС (+);
  • Π²) Ρ„Ρ€Π΅ΠΉΠΌΡ‹ Руссопулоса ΠΈ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ Π‘ΠΊΠΎΡ‚Ρ‚Π°.

Вопрос 2.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ языки программирования ΠΎΡ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…?

  • Π°) ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ зависимости ΠΎΡ‚ ΡΡ€Π΅Π΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • Π±) ΡΡ‚ΠΈΠ»ΡŒ программирования (+);
  • Π²) структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (+).

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: ΠΊΠ°ΠΊΠΎΠ²Ρ‹ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования?

  • Π°) абстракция, аппликация, инкапсуляция;
  • Π±) абстракция, инкапсуляция, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ (+);
  • Π²) наслСдованиС, инкапсуляция, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ (+).

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ?

  • Π°) ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ зависимости ΠΎΡ‚ ΡΡ€Π΅Π΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • Π±) ΡΡ‚ΠΈΠ»ΡŒ программирования;
  • Π²) структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (+).

Вопрос 3.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: Π² Ρ‡Π΅ΠΌ состоит ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ языков ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования?

  • Π°) этот класс языков основан Π½Π° ΡΡ†Π΅Π½Π°Ρ€ΠΈΡΡ…;
  • Π±) ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Π»ΡŽΠ±ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области (+);
  • Π²) являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ машинно-нСзависимым.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Ρ‡Ρ‚ΠΎ понимаСтся Π² ΠžΠžΠŸ ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «Π°Π±ΡΡ‚ракция»?

  • Π°) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ языка, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ;
  • Π±) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ языка, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° (+);
  • Π²) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ языка, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ лямбда-Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: Π² Ρ‡Π΅ΠΌ состоит ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ языков Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования?

  • Π°) этот класс языков основан Π½Π° ΡΡ†Π΅Π½Π°Ρ€ΠΈΡΡ…;
  • Π±) ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Π»ΡŽΠ±ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области;
  • Π²) Π»Π΅Π³ΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅ΠΌ матСматичСски (+).
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ