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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’ΠΎΠΌ 15. ΠžΡ‚ Π°Π±Π°ΠΊΠ° ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ. Алгоритмы ΠΈ вычислСния». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 25

Автор Π‘ΠΈΠ·Π΅Π½Ρ† Π’ΠΎΡ€Ρ€Π°

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прилоТСния ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… взаимодСйствий.

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ языком, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΅Π΄ΠΈΠ½ΠΎΠΉ сущности, Π±Ρ‹Π» Simula I, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ симуляции. Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² НорвСТском Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΏΠΎΠ΄ руководством ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠšΡ€ΠΈΡΡ‚Π΅Π½Π° ΠΡŽΠ³ΠΎΡ€Π΄Π°. Π Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсиСй языка Π±Ρ‹Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ Π² январС 1965 Π³ΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ вСрсия ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Simula 67. Π­Ρ‚ΠΎ Π±Ρ‹Π» язык ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ понятия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ класса ΠΈ вводилось понятиС наслСдования. ПозднСС Π² языкС Smalltalk 80, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π½Π° основС языка Simula ΠΈ Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий (Smalltalk 72 ΠΈ Smalltalk 76), понятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ стали СдинствСнными сущностями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² языкС. Π’ Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π² Π½Π°ΡƒΡ‡Π½ΠΎ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π΅ Xerox Palo Alto Research Center, извСстном ΠΊΠ°ΠΊ Xerox PARC, Π±Ρ‹Π»Π° создана систСма Dynabook β€” ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ срСдство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом, тСкстовыми мСню, Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ графичСским интСрфСйсом (Π°Π½Π³Π». GUI β€” Graphical User Interface), ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° соврСмСнныС. Dynabook Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½Ρ†Π΅ΠΌ Аланом КССм для обучСния Π΄Π΅Ρ‚Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. Π Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ Π² 1972 Π³ΠΎΠ΄Ρƒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² этой систСмС Π±Ρ‹Π»ΠΈ написаны Π½Π° языкС BASIC, Π² Π½ΠΈΡ… использовался ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, Π° Ρ‚Π°ΠΊΠΆΠ΅ понятия класса ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² языкС Simula.



Алан КСй ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡ‚ΠΎΡ€Π° испанского УнивСрситСта ΠœΡƒΡ€ΡΠΈΠΈ Π·Π° Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. ВорТСствСнная цСрСмония ΡΠΎΡΡ‚ΠΎΡΠ»Π°ΡΡŒ 28 января 2010 Π³ΠΎΠ΄Π°.


БСйчас сущСствуСт мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков программирования (Eiffel, C++ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Π’Π°ΠΊ, C++ являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ языка Π‘. Он Π±Ρ‹Π» создан датским программистом Π‘ΡŒΡ‘Ρ€Π½ΠΎΠΌ Бтрауструпом ΠΈ содСрТит классы, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ языку Simula. БистСма CLOS Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° с Ρ†Π΅Π»ΡŒΡŽ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ систСму языка Common LISP. ΠŸΠΎΠ½ΡΡ‚ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ наслСдования использовались Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ… ΠΏΠΎ созданию искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ языков для прСдставлСния Π·Π½Π°Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ KRL ΠΈ KL-ONE, ΠΈ языков с Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, Π² частности Actl, Act2, Act3, ABCL/1 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ….

Абстракция ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ всСх языках программирования, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² послСдниС Π³ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Java ΠΈΠ»ΠΈ Python, Ρ‚Π°ΠΊ ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ…, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ конструкции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² языкС РНР. Π’Π°ΠΊΠΆΠ΅ появились языки, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ сцСнарныС языки. К Π½ΠΈΠΌ относятся РНР ΠΈ JavaScript, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² послСднСС дСсятилСтиС XX Π²Π΅ΠΊΠ°. ЦСлью Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² этих языков Π±Ρ‹Π»ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. РазумССтся, для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ этого Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с языками ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΠ»ΠΎΡΡŒ. Как Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, влияниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ появлСнию Π½ΠΎΠ²Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ языков модСлирования, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… UML.


Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ языки Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»ΠΈ описаны Π”ΠΆΠΎΠ½ΠΎΠΌ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ ΠΈΠ· MIT (ΠœΠ°ΡΡΠ°Ρ‡ΡƒΡΠ΅Ρ‚ΡΠΊΠΎΠ³ΠΎ тСхнологичСского института), создатСлСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Β», Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² 1960 Π³ΠΎΠ΄Ρƒ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ Communications of the ACM. Π­Ρ‚ΠΎΡ‚ СТСмСсячный ΠΆΡƒΡ€Π½Π°Π» выпускаСтся амСриканской АссоциациСй Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ (ACM) β€” общСством, ΠΏΡ€ΠΈΡΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π΅ΠΌΠΈΡŽ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°.

Π’ 1958 Π³ΠΎΠ΄Ρƒ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π» использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с упорядочСнными списками Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ символьного диффСрСнцирования. Π”ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это рСкурсивный процСсс, поэтому ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ использовал рСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΠΌ функциям. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌ языка начался осСнью Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π³ΠΎΠ΄Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ спустя Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «РСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ выраТСниями ΠΈ ΠΈΡ… вычислСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π§Π°ΡΡ‚ΡŒ IΒ» (Ρ‡Π°ΡΡ‚ΡŒ II Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π°). Π’Π°ΠΊ появилась пСрвая вСрсия языка LISP (Π°Π½Π³Π». List Processing β€” Β«ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° списков») β€” ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ нашло ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ мноТСство ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ. Π’ описании Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌ языка ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ использовал лямбда-исчислСниС Алонзо Π§Ρ‘Ρ€Ρ‡Π°.



Π”ΠΆΠΎΠ½ ΠœΠ°ΠΊΠΊΠ°Ρ€Ρ‚ΠΈ, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Β». Бтэндфордский унивСрситСт, 1980 Π³ΠΎΠ΄.

* * *

Π›Π―ΠœΠ‘Π”Π-Π˜Π‘Π§Π˜Π‘Π›Π•ΠΠ˜Π•

Π­Ρ‚Π° систСма Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Алонзо Π§Ρ‘Ρ€Ρ‡Π΅ΠΌ ΠΈ Π‘Ρ‚ΠΈΠ²Π΅Π½ΠΎΠΌ Клини Π² Π½Π°Ρ‡Π°Π»Π΅ 1930-Ρ… Π³ΠΎΠ΄ΠΎΠ². Π•Π΅ возмоТности Π±Ρ‹Π»ΠΈ эквивалСнтны возмоТностям ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Π½ΠΎ основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ лямбда-исчислСния Π±Ρ‹Π» ΠΈΠ½Ρ‹ΠΌ. Π‘ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π² лямбда-исчислСнии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ выраТСния ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° прСобразования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ вычислСний. Рассмотрим Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ истинности ΠΈ лоТности:

истина: Ξ»Ρ…Ρƒ. Ρ…

лоТь: Ξ»Ρ…Ρƒ. Ρƒ.

ЛогичСская функция «И» опрСдСляСтся Ρ‚Π°ΠΊ:

И: Ξ»pq.p q Ρ€.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния «истина лоТь», Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π»Π΅Π½ этого выраТСния Π΅Π³ΠΎ эквивалСнтом с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния лямбда-исчислСния:

(Ξ»pq.p q Ρ€) (Ξ»Ρ…Ρƒ. Ρ…) (Ξ»Ρ…Ρƒ. Ρƒ).

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€Π°Π²ΠΈΠ»Π° записи, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Ξ»Ρ…Ρƒ. Ρƒ), Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, эквивалСнтно Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ «лоТь». Числа ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с числами ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

* * *

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

* * *

ΠŸΠ Π•Π€Π˜ΠšΠ‘ΠΠΠ― (ΠŸΠžΠ›Π¬Π‘ΠšΠΠ―) НОВАЦИЯ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ выраТСния Π² этой Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ символом, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располагаСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ. Π’Π°ΠΊ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

(Π° + Π¬) β€” (с·d)

Π² польской записи Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

- + ab Β· cd.

* * *

Π’ сСрСдинС 1960-Ρ… ΠŸΠΈΡ‚Π΅Ρ€ Лэндин создал Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ язык ISWIM (ΠΎΡ‚ Π°Π½Π³Π». If You See What I Mean β€” «Ссли Ρ‚Ρ‹ видишь, Ρ‡Ρ‚ΠΎ я имСю Π² Π²ΠΈΠ΄ΡƒΒ»), Π² основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находился язык LISP ΠΈ лямбда-исчислСниС. На основС языка ISWIM Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅ сСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков (ML, FP, Miranda ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅).

Π’ Ρ‚ΠΎ врСмя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ интСрСсно лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ исслСдоватСлям. Оно Π½Π°Ρ‡Π°Π»ΠΎ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² 1978 Π³ΠΎΠ΄Ρƒ, ΠΊΠΎΠ³Π΄Π° Π”ΠΆΠΎΠ½ Бэкус, ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ языка Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΡΡ‚Π°Ρ‚ΡŒΡŽ «МоТно Π»ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ стиля Ρ„ΠΎΠ½ НСймана?Β» Бэкус ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Π» Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ языки программирования ΠΈ выступал Π·Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Π½Π°Π·Π²Π°Π» Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β». Π’ Π½Π΅ΠΉ дСлался Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρ‹ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). Π’ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Π±Ρ‹Π» удостоСн ΠΏΡ€Π΅ΠΌΠΈΠΈ Π’ΡŒΡŽΡ€ΠΈΠ½Π³Π°, Бэкус описал язык FP (Functional Programming), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ использовались ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎΠ±ΡƒΠ΄ΠΈΠ»Π° интСрСс исслСдоватСлСй ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ языкам ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ появлСнию Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков.

Π’ настоящСС врСмя сущСствуСт Π΄Π²Π° ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Ρ… сСмСйства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ языками, созданными Π½Π° основС LISP, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” языками, созданными Π½Π° основС ISWIM. К ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ сСмСйству ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ разновидности языка LISP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Common LISP, ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ языки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Scheme.

Ко Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ сСмСйству ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ язык Standard ML β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ стандартизации языков ML ΠΈ НорС, созданных Π² Эдинбургском унивСрситСтС. ML Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ LISP являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ языком (strongly-typed language). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС выраТСния Π² этом языкС ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся систСмой Π²ΠΎ врСмя компиляции (статичСский Ρ‚ΠΈΠΏ). ΠšΡ€ΠΎΠΌΠ΅ этого, программист ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, опрСдСляя абстрактныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π―Π·Ρ‹ΠΊ ML допускаСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ языкС НорС, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ML, Ρ‚ΠΈΠΏΡ‹ трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ явно.