Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° языков программирования

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

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

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° языков программирования (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

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

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

ΠšΡ€Π°Ρ‚ΠΊΠΎ остановимся Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ†Π΅Π»Π΅ΠΉ этой ΠΊΠ½ΠΈΠ³ΠΈ) этапах ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ сСмантичСского Π°Π½Π°Π»ΠΈΠ·Π° языков программирования.

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

Π’ 1970;Ρ… Π³Π³. М. Π“ΠΎΡ€Π΄ΠΎΠ½ΠΎΠΌ (Michael J. Π‘. Gordon) Π±Ρ‹Π» исслСдован Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ сСмантики ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΡΠ·Ρ‹ΠΊΠ°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΈ ΡΠ΄Π΅Π»Π°Π½ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ± Π°Π΄Π΅ΠΊΠ²Π°Ρ‚ности ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСской эффСктивности примСнСния этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ изучСния сСмантики стал ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, исслСдовавший измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходили Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ отслСТивания смСны состояний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Одним ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ичСских Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚ Π² ΡΡ‚ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ стала Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° П. Π›Π΅Π½Π΄ΠΈΠ½ΠΎΠΌ (Peter J. Landin) сСмантики ΠΌΠΎΠ΄Π΅Π»ΠΈ языка программирования Π² Ρ„ΠΎΡ€ΠΌΠ΅ абстрактной ΠΌΠ°ΡˆΠΈΠ½Ρ‹, сущСствСнно использовавшСй понятиС состояния.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСмантики (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствлСн Π² Ρ€Π°ΠΌΠΊΠ°Ρ… исслСдования Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ сСмантики языков программирования) ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ Π§. Π₯ΠΎΠ°Ρ€ΠΎΠΌ (Charles A. R. НоагС) аксиоматичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎ-слСдствСнныС связи, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ языка программирования.

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

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ сСмантики языков программирования.

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

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

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

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

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

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

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

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

Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ основныС направлСния, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ, ΠΈ ΡΠ²ΡΠΆΠ΅ΠΌ ΠΈΡ… Ρ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ направлСниями исслСдований. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ основных Π²ΠΈΠ΄Π° сСмантик, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ.

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

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

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

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

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

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

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

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ опрСдСлСния пСрСчислСнных способов комбинирования Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².

Под Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ пространством ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° Π² Π΄ΠΎΠΌΠ΅Π½ П)2 Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ |П, Π“)2|, содСрТащий всСвозмоТныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ опрСдСлСния ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° Dj ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° D2:

[ D, —" D2]={f | f: D, —" D2}.

Под Π΄Π΅ΠΊΠ°Ρ€Ρ‚ΠΎΠ²Ρ‹ΠΌ (ΠΈΠ»ΠΈ, ΠΈΠ½Π°Ρ‡Π΅, прямым) ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Dt, D2, …, Dn Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ всСвозмоТных /?-ΠΎΠΊ Π²ΠΈΠ΄Π°.

[D1xD2x…xDn]={(d1xd2x…xdn) | d{eDv d2eD2, dn …, eDn}.

Под ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ D* Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ всСвозмоТных ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π²ΠΈΠ΄Π°.

d=(di, d2,…, dn).

ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² dt, d2,…, dn,… Π΄ΠΎΠΌΠ΅Π½Π° D, Π³Π΄Π΅ n>0.

НаконСц, ΠΏΠΎΠ΄ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ‚Π½ΠΎΠΉ суммой Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.

[D1+D2+…+Dn]={ (dp i) | djeDj, 0.

Π³Π΄Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнтов dj ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Dj ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ устанавливаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями принадлСТности.

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, рассмотрим синтаксис языка SmalL, Ρ‚. Π΅. пСрСчислим основныС Ρ‚ΠΈΠΏΡ‹ конструкций, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ. Π―Π·Ρ‹ΠΊ SmalL содСрТит мноТСство Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π•, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ посрСдством БНЀ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Π• := true | false | 0 | 1 111 ~Π• | Π•1=Π•2 | Π•1+Π•2

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ выраТСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ логичСскиС (true ΠΈ false) ΠΈ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ (Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ объСмС: 0 ΠΈ 1) константы, мноТСство ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (I), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ отрицания (~Π•), сравнСния (Π•1=Π•2) ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π•1+Π•2). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, язык SmalL содСрТит мноТСство ΠΊΠΎΠΌΠ°Π½Π΄ Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ посрСдством БНЀ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Π‘ := 1=Π• | if (E)Cl else Π‘2 | while (E) Π‘ | Π‘1;Π‘2

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ присваиваниС (1=Π•), условиС (if (E)Cl else Π‘2), Ρ†ΠΈΠΊΠ» с ΠΏΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ (while (E) Π‘), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ (Π‘1;Π‘2). Π”Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса языка SmalL Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ являСтся условным ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ цСлям.

Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ матСматичСской Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ сСмантику языков программирования (Π² Ρ‡Π°ΡΡ‚ности, языка SMalL), Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ тСория вычислСний Π”. Π‘ΠΊΠΎΡ‚Ρ‚Π°.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ порядок построСния Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ сСмантики языка программирования SmalL согласно Ρ€Π°Π½Π΅Π΅ прСдставлСнному Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ описанию синтаксиса языка Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… БНЀ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксичСских Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (Ρ‚.Π΅. Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… основныС синтаксичСскиС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ) для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (Π΄ΠΎΠΌΠ΅Π½ Ide), Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Π΄ΠΎΠΌΠ΅Π½ Π•Ρ…Ρ€) ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ (Π΄ΠΎΠΌΠ΅Π½ Π‘ΠΎΡ‚).

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

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

Π’ ΡΠΎΠΎΡ‚вСтствии с Π½Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ схСмой рассуТдСний ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡŽ синтаксичСских Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ синтаксис языка SMalL:

Ide = {I | I — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€};

Com = {C | Π‘ — ΠΊΠΎΠΌΠ°Π½Π΄Π°};

Exp = {E | E — Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅}.

Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² языка SMalL организуСтся Π² Π΄ΠΎΠΌΠ΅Π½ Ide, ΠΊΠΎΠΌΠ°Π½Π΄ — Π² Π΄ΠΎΠΌΠ΅Π½ Π‘ΠΎΡ‚ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ — Π² Π΄ΠΎΠΌΠ΅Π½ Π•Ρ…Ρ€.

Π”Π°Π»Π΅Π΅ сформулируСм Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ модСль Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ состояний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ языка SMalL, для наглядности систСматизировав Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

Π”ΠΎΠΌΠ΅Π½.

Π‘ΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅.

БостояниС.

State.

(s) State=Memory.

ΠŸΠ°ΠΌΡΡ‚ΡŒ.

Memory.

(m) Memory=Ide —"[Value* {unbound}].

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Value.

(v) Value=Int+Bool.

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

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

Π•: Π•Ρ…Ρ€ —> |State —> [[Value Ρ… State]+{error}]];

Π•[ E|s=(v, s'), Ссли v — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π• Π² s, s' — состояниС послС означивания;

E[E]s=error, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ².

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

(Π² ΡΠ»ΡƒΡ‡Π°Π΅ нСвозмоТности связывания ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ) вырабатываСтся ошибка. ΠŸΡ€ΠΈ этом состояниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ измСняСтся с s Π½Π° s'. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ сСмантичСскиС прСдлоТСния для ΠΊΠΎΠΌΠ°Π½Π΄ языка программирования SMalL:

Π‘: Com —" [State —" [ State+{error}]] .

Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ слСдуСт, Ρ‡Ρ‚ΠΎ вычислСниС значСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ языка программирования SMalL ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ состояния, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ситуации (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ…ΠΎΠ΄Π΅ присваивания), ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вырабатываСтся ошибка.

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

Π• [0] s=(0, s);

Π• [1] s=(l, s);

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚Π°ΠΌΠΈ констант цСлочислСнного Ρ‚ΠΈΠΏΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния этих констант (Π² Ρ„ΠΎΡ€ΠΌΠ΅ упорядочСнных ΠΏΠ°Ρ€ Π²ΠΈΠ΄Π° «Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» — «ΡΠΎΡΡ‚ояниС»), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ смСны состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚. Рассмотрим сСмантичСскиС прСдлоТСния для Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠ² констант логичСского Ρ‚ΠΈΠΏΠ° языка SMalL:

Π• [true] s=(true, s);

Π• [false] s=(false, s);

Как ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚Π°ΠΌΠΈ констант логичСского Ρ‚ΠΈΠΏΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСния этих констант (Π² Ρ„ΠΎΡ€ΠΌΠ΅ упорядочСнных ΠΏΠ°Ρ€ Π²ΠΈΠ΄Π° «Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅» — «ΡΠΎΡΡ‚ояниС»), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ смСны состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚. Рассмотрим сСмантичСскоС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠ² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² языка SMalL:

Π• 111 s=(m, I=unbound) error, —" (m, I, s).

Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ возмоТности связывания Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚Π°ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, связанныС со Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ (Π² Ρ„ΠΎΡ€ΠΌΠ΅ упорядочСнных Ρ‚Ρ€ΠΎΠ΅ΠΊ Π²ΠΈΠ΄Π° «Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ» — «ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€» — «ΡΠΎΡΡ‚ояниС»), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ смСны состояния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚, Π° ΠΏΡ€ΠΈ нСвозмоТности — выдаСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

Рассмотрим сСмантичСскиС прСдлоТСния для Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠ² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ языка SMalL:

Π• [~Π•| s=(E | Π•| s=(v, s')) (isBool —> (not v, s'), error, error;

E [E1=E2] s=(E [El]s=(vl, si)) (E [E2] sl=(v2, s2)) -> (vl=v2, s2),.

error), error;

E |E1+E2| s=(E [El] s=(vl, si)) -> (E |E2| sl=(v2, s2)).

(IsNum vl and IsNum v2 —" vl+v2, s2), error), error), error.

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. Π”Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠΌ отрицания выраТСния являСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅ Π΅Π³ΠΎ значСния; ΠΏΡ€ΠΈΡ‡Π΅ΠΌ состояниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ измСняСтся. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ нСбулСвости выраТСния гСнСрируСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅. Π”Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠΌ присваивания являСтся присвоСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΠΎΠΌ состоянии. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² гСнСрируСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅. Π”Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠΌ слоТСния присваивания являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ суммы Π² Π½ΠΎΠ²ΠΎΠΌ состоянии. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² гСнСрируСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ упраТнСния прСдлагаСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСмантичСскиС прСдлоТСния для Π΄Π΅Π½ΠΎΡ‚Π°Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ языка программирования SMalL.

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

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

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

Вопрос 1.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: Π² Ρ‡Π΅ΠΌ состоит основноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмантики?

  • Π°) формализация Π²ΠΈΠ΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ конструкций языка;
  • Π±) формализация значСния конструкций языка (+);
  • Π²) формализация абстрактной ΠΌΠ°ΡˆΠΈΠ½Ρ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: ΠΊΠ°ΠΊΠΎΠ²Ρ‹ трСбования ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка?

  • Π°) ΡΡΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ»Π½ΠΎΡ‚Π°, Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΌ (+);
  • Π±) ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ, Π΅ΡΡ‚Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ, удобство использования;
  • Π²) ΡΡ‚Ρ€ΠΎΠ³ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ»Π½ΠΎΡ‚Π°, простота, ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: Ρ‡Ρ‚ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ являСтся Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ сСмантики?

  • Π°) тСория вычислСний Π”. Π‘ΠΊΠΎΡ‚Ρ‚Π° (+);
  • Π±) комбинаторная Π»ΠΎΠ³ΠΈΠΊΠ° X. ΠšΠ°Ρ€Ρ€ΠΈ;
  • Π²) абстрактная машина П. Π›Π΅Π½Π΄ΠΈΠ½Π° (+).

Вопрос 2.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: какая ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ сСмантики?

  • Π°) аксиоматичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π₯ΠΎΠ°Ρ€Π°;
  • Π±) Ρ„ΠΎΡ€ΠΌΡ‹ Бэкуса — ΠŸΠ°ΡƒΡ€Π° (+);
  • Π²) ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ½Π΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π . Π€Π»ΠΎΠΉΠ΄Π°.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: Ρ‡Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ сСмантикой?

  • Π°) модСль ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ абстрактного синтаксиса (+);
  • Π±) модСль Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка программирования;
  • Π²) модСль ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ основныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ΅?

  • Π°) Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ (+);
  • Π±) ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ (+);
  • Π²) ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ.

Вопрос 3.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1: ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π²ΠΈΠ΄Ρ‹ сСмантик, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ?

  • Π°) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅, ΠΏΡ€ΠΎΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅, Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ (+);
  • Π±) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅, Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅;
  • Π²) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅, Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅, Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2: какая формализация относится ΠΊ Π΄Π΅Π½ΠΎΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ сСмантикам?

  • Π°) тСория вычислСний Π”. Π‘ΠΊΠΎΡ‚Ρ‚Π° (+);
  • Π±) аксиоматичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π§. Π₯ΠΎΠ°Ρ€Π°;
  • Π²) абстрактная машина П. Π›Π΅Π½Π΄ΠΈΠ½Π°.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 3: какая формализация относится ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ сСмантикам?

  • Π°) тСория вычислСний Π”. Π‘ΠΊΠΎΡ‚Ρ‚Π°;
  • Π±) аксиоматичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π§. Π₯ΠΎΠ°Ρ€Π°;
  • Π²) абстрактная машина П. Π›Π΅Π½Π΄ΠΈΠ½Π° (+).
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ