Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal

Pascal

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

Pascal Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ Π² 1970; Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ расхоТСму мнСнию, ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌ языком, Π° прСдназначался для практичСского примСнСния. ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ послуТил Algol. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык компилировался Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ языку Java.

Π’ 1983 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» принят ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ стандарт языка, ISO 7185:1983, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Standard Pascal. Π­Ρ‚ΠΎΡ‚ стандарт Π½Π΅ добавлял Π² язык Π½ΠΎΠ²Ρ‹Π΅ элСмСнты, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ описывал ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ особСнности языка. Π’ 1990 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» принят стандарт ISO/IEC 10206, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Extended Pascal. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ стало Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, язык прСдоставлял ряд встроСнных структур Π΄Π°Π½Π½Ρ‹Ρ…: записи, массивы, Ρ„Π°ΠΉΠ»Ρ‹, мноТСства ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

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

Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ Object Pascal, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² 1985 Π³ΠΎΠ΄Ρƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. БущСствуСт ряд соврСмСнных компиляторов, ΠΈ Π² настоящСС врСмя язык достаточно популярСн.

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

Паскаль (язык)

Паскаль (Π°Π½Π³Π». Pascal ) β€” высокоуровнСвый язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных языков программирования, ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Π²Ρ‹ΡΡˆΠ΅ΠΉ школС, являСтся Π±Π°Π·ΠΎΠΉ для большого числа Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Π‘Ρ‹Π» создан Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ Π² 1970, послС Π΅Π³ΠΎ участия Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стандарта языка Алгол-68.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Паскаль Π±Ρ‹Π» создан ΠΊΠ°ΠΊ язык для обучСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (хотя, ΠΏΠΎ словам Π’ΠΈΡ€Ρ‚Π°, язык нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ язык, Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для написания Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, для обучСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½). НазваниС языку Π΄Π°Π½ΠΎ Π² Ρ‡Π΅ΡΡ‚ΡŒ Π²Ρ‹Π΄Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ французского ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Ρ„ΠΈΠ·ΠΈΠΊΠ°, Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ философа Π‘Π»Π΅Π·Π° Паскаля. Один ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… языков, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»Π° создана рСализация Β«Π½Π° самом сСбС» β€” компилятор Паскаля Π±Ρ‹Π» написан Π½Π° самом ПаскалС. Π’ Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² для пСрСноса Паскаль-систСм Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π±Ρ‹Π»Π° создана систСма Pascal-P, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» Π΅Π΄ΠΈΠ½Ρ‹ΠΉ компилятор Паскаля Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ язык (P-ΠΊΠΎΠ΄) ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ создавался быстрый ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ P-ΠΊΠΎΠ΄Π°. ЗаимствованиС этой систСмы ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ созданию систСмы UCSD Pascal Π² УнивСрситСтС Π‘Π°Π½-Π”ΠΈΠ΅Π³ΠΎ (ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΡ, БША), Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π΅Ρ‘ ΠΈΠ΄Π΅ΠΈ Π±Ρ‹Π»ΠΈ заимствованы создатСлями языка Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, компиляция Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°).

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

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык ΠΈΠΌΠ΅Π» ряд ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ функциям массивов ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, отсутствиС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ограничСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, отсутствиС срСдств для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ написанных Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, отсутствиС срСдств Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции ΠΈ Ρ‚. ΠΏ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ нСдостатков языка Паскаль Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π‘Ρ€Π°ΠΉΠ°Π½ΠΎΠΌ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ΠΎΠΌ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ Паскаль Π½Π΅ являСтся ΠΌΠΎΠΈΠΌ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ языком программирования» (интСрСсно, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π²Ρ‹ΡˆΠ»Π° Π² Π½Π°Ρ‡Π°Π»Π΅ 1980-Ρ…, ΠΊΠΎΠ³Π΄Π° ΡƒΠΆΠ΅ сущСствовал язык ΠœΠΎΠ΄ΡƒΠ»Π°-2, ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Паскаля, ΠΈΠ·Π±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΅Π³ΠΎ ΠΏΠΎΡ€ΠΎΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ Паскаля). НСкоторыС нСдостатки Паскаля Π±Ρ‹Π»ΠΈ исправлСны Π² ISO-стандартС 1982 Π³ΠΎΠ΄Π°, Π² частности, Π² языкС появились ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ массивы, давшиС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

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

Никлаус Π’ΠΈΡ€Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π» нСдостатки созданного ΠΈΠΌ языка, Π½ΠΎ, слСдуя традициям акадСмичСской срСды ΠΈ собствСнным ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ, согласно ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ «нСподходящий инструмСнт Π½Π°Π΄ΠΎ Π½Π΅ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Π° Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΒ», Π½Π΅ стал Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ дальшС, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½ΠΎΠ²Ρ‹Π΅ языки сСмСйства: ΠœΠΎΠ΄ΡƒΠ»Π°-2 ΠΈ ΠžΠ±Π΅Ρ€ΠΎΠ½. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этому ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΈ достоинства языка ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ коммСрчСскиС ΠΈ нСкоммСрчСскиС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ систСмы программирования ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° основС языка Паскаль, подвСргая язык ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ, добавляя Π² Π½Π΅Π³ΠΎ, часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ мСханичСски, Π½ΠΎΠ²Ρ‹Π΅ срСдства ΠΈ синтаксичСскиС конструкции.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

НаиболСС извСстной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Паскаля, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²ΡˆΠ°Ρ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка являСтся Turbo Pascal Ρ„ΠΈΡ€ΠΌΡ‹ Kylix β€” Delphi для Linux, Π² настоящСС врСмя ΠΎΠ±Π° этих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° фактичСски Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Ρ‹).

Π’Π°ΠΆΠ½Ρ‹ΠΌ шагом Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ языка являСтся появлСниС свободных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка Паскаль Free Pascal ΠΈ GNU Pascal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ±Ρ€Π°Π»ΠΈ Π² сСбя Ρ‡Π΅Ρ€Ρ‚Ρ‹ мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ² языка, Π½ΠΎ ΠΈ обСспСчили Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ написанных Π½Π° Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ GNU Pascal ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 20 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами,Free Pascal ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹). Free Pascal обСспСчиваСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ совмСстимости с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ распространСнными Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π°ΠΌΠΈ языка(Turbo Pascal(полная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ), Delphi ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ).

Π”ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ Паскаля, примСняСмыС Π² Turbo Pascal ΠΈ Delphi стали Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стандартом Π² силу ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ распространСнности этих срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… свободных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΈΠ΅ вСрсии языка ΠΊΠ°ΠΊ Free Pascal, GNU Pascal ΠΈ TMT Pascal. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Borland Pascal.

Бинтаксис ΠΈ языковыС конструкции

Паскаль, Π² Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, прСдставляСт собою чисто ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство Алголоподобных структур ΠΈ конструкций с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ словами Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ if, then, else, while, for, ΠΈ Ρ‚. Π΄. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Паскаль Ρ‚Π°ΠΊΠΆΠ΅ содСрТит большоС количСство возмоТностСй для структурирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ абстракций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ АлголС-60, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², записи, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, пСрСчислСния, ΠΈ мноТСства. Π­Ρ‚ΠΈ конструкции Π±Ρ‹Π»ΠΈ частично унаслСдованы ΠΈΠ»ΠΈ инспирированы ΠΎΡ‚ языков Π‘ΠΈΠΌΡƒΠ»Π°-67, Алгол-68, созданного Никлаусом Π’ΠΈΡ€Ρ‚ΠΎΠΌ AlgolW ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π₯ΠΎΠ°Ρ€ΠΎΠΌ. Π’ соврСмСнных Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π°Ρ… (Free Pascal) доступны Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Hello world

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ПаскалС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ выполняСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий ΠΈ содСрТит пустой Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, выводящСй строку ‘Hello, World!’:

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Паскаля: Ρ‚ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой(real), Ρ†Π΅Π»Ρ‹Π΅(integer), char, boolean ΠΈ пСрСчислСния (конструктор Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π² ПаскалС):

ВыдСляСтся понятиС порядковых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (ordinal), ΠΊ Π½ΠΈΠΌ относятся Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹(Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅), логичСский(boolean), ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ(char), пСрСчислимыС Ρ‚ΠΈΠΏΡ‹ ΠΈ Ρ‚ΠΈΠΏΡ‹-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹.

ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹ΠΌ числом(ΠΊΠΎΠ΄ΠΎΠΌ), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ord. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, выполняСмыС Π½Π°Π΄ порядковыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΈΡ… ΠΊΠΎΠ΄Π°ΠΌΠΈ.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ содСрТат подмноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… порядковых Ρ‚ΠΈΠΏΠΎΠ²:

Π’ паскалС Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ си-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ boolean, char арифмСтичСскиС цСлочислСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… распространСнных языков, Паскаль ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… мноТСство:

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

обработаСтся быстрСС, Ρ‡Π΅ΠΌ

Для задания значСния мноТСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ список элСмСнтов мноТСства, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки (ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅):

Паскаль ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ использованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ(Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ^Ρ‚ΠΈΠΏ ΠΈ Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ pointer):

Π—Π΄Π΅ΡΡŒ пСрСмСнная pointer_to_b β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… b, запись. Π’ΠΈΠΏ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ указатСля ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ ΠΏΠ΅Ρ€Π΅Π΄ объявлСниСм Ρ‚ΠΈΠΏΠ° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ссылаСтся. Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ гласит, Ρ‡Ρ‚ΠΎ любая Π²Π΅Ρ‰ΡŒ долТная Π±Ρ‹Ρ‚ΡŒ объявлСна ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ этого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€Ρ€Π΅Π½Ρ‚Π½Ρ‹Π΅ опрСдСлСния структур Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ‚ΠΎΠΌ числС Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ списки, стСки ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° запись Π² описании этой записи (см. Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ(nil)).

Для Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ указатСля ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° опСрация разымСнования(Π΅Π΅ синтаксис: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ^)

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ запись ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10 ΠΈ символ A полям a ΠΈ b Π² Π½Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

Для Ρ†Π΅Π»Π΅ΠΉ обращСния ΠΊ полям записСй ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ управлСния Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

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

Для управлСния процСссом компиляции Π² паскалС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компилятора, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ компилятора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ пСрСполнСния:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ ПаскалС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ дСлятся Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

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

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

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

ΠœΠΎΠ΄ΡƒΠ»ΠΈ

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

Π”ΠΎ появлСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΠΈΡ… соврСмСнном Π²ΠΈΠ΄Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Паскаля ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счёт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ #include Π² языкС Π‘ΠΈ: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, оформляСмой Π² Π²ΠΈΠ΄Π΅ псСвдокоммСнтария, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, <$INCLUDE "Ρ„Π°ΠΉΠ»">, содСрТимоС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° прямо Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎΡΡŒ Π² тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² исходном, тСкстовом Π²ΠΈΠ΄Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° мноТСство Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ², для удобства рСдактирования, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй ΠΎΠ½ΠΈ автоматичСски объСдинялись Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΈ обрабатывался компилятором. Вакая рСализация ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… нСдостатков, поэтому ΠΎΠ½Π° Π±Ρ‹Π»Π° быстро Π·Π°ΠΌΠ΅Π½Π΅Π½Π°.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

ΠžΠ±Ρ‰Π°Ρ структура ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ модуля Π½Π° ПаскалС выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

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

ΠœΠΎΠ΄ΡƒΠ»ΡŒ заканчиваСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом END с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ИспользованиС

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

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

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°

ΠœΠΎΠ΄ΡƒΠ»ΠΈ спроСктированы Π² расчётС Π½Π° обСспСчСниС Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции β€” компилятор Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, компилятор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ сСкции интСрфСйса всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. БущСствуСт Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ…, ΠΈΠ½ΠΎΠ³Π΄Π° совмСщаСмых ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ доступа.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Π΅Π³ΠΎ использования: ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы. Всё это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано Π² Ρ‚Π΅Π»Π΅ модуля, Π»ΠΈΠ±ΠΎ Π² сСкции ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ДСйствия, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π² сСкции Ρ„ΠΈΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ Object Pascal классы Π·Π°Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠ° object, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ record, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ(Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ). ИмСна описываСмых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ класса Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΈ дСструктор Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π½ΠΎ вмСсто ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° procedure Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова constructor ΠΈ destructor. БоотвСтствСнно, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ C++-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ имя ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ класса, ΠΈ дСструкторов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’Π°ΠΊΠΆΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ C++-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков Π² Object Pascal(fpc, tp) Π½Π΅ прСдусматриваСтся автоматичСского Π²Ρ‹Π·ΠΎΠ²Π° дСструктора.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ наслСдованиС(допускаСтся наслСдованиС 1 класса), ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ классов, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²(слово virtual послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса). Π’ Delphi, FPC Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ private, public(ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‡Π»Π΅Π½Ρ‹ класса ΡΠ²Π»ΡΡŽΡ‚ΡΡ public):

Π’ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ Delphi классы ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слова class(ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ наслСдованиС с object-классами Π½Π΅ допускаСтся), ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ интСрфСйсы(interface)-всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ абстрактныС ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. ВсС классы(созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ class) ΡΠ²Π»ΡΡŽΡ‚ΡΡ наслСдниками TObject, всС интСрфСйсы происходят ΠΎΡ‚ IUnknown. ΠšΠ»Π°ΡΡΡ‹(созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ class) ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ нСсколько интСрфСйсов. Π’ Delphi интСрфСйсы Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ COM Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft.
ΠšΠ»Π°ΡΡΡ‹(Class) Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… классов(Object) Π½Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² явном Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ/освобоТдСнии памяти, ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΈΡ… динамичСски выдСляСтся конструктором с ΠΈΠΌΠ΅Π½Π΅ΠΌ Create, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса, ΠΈ освобоТдаСтся ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ дСструктора с ΠΈΠΌΠ΅Π½Π΅ΠΌ Destroy(ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°). ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ класса object Ρ…Ρ€Π°Π½ΠΈΡ‚ адрСс экзСмпляра класса Π² памяти, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ nil ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания пустой ссылки, поэтому для освобоТдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² TObject ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ free, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ссылку Π½Π° nil ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ дСструктор Destroy. Код с использованиСм Ρ‚Π°ΠΊΠΈΡ… классов Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

50 Π»Π΅Ρ‚ Паскаля

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal

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

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ pascal

ΠŸΠΎΡΡ‚Π΅Ρ€ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ синтаксиса Pascal

Но ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, Алгол W Π±Ρ‹Π» нСдостаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ. Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ разрабатывался ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, язык содСрТал Π² сСбС слишком ΠΌΠ½ΠΎΠ³ΠΎ компромиссов. ПослС ΠΌΠΎΠ΅Π³ΠΎ возвращСния Π² Π¨Π²Π΅ΠΉΡ†Π°Ρ€ΠΈΡŽ, я спроСктировал язык Π² соотвСтствии со своими прСдпочтСниями: ΠΈΠΌ стал Паскаль. Π‘ нСсколькими ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΌΡ‹ написали руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ спроСктировали компилятор. Π’ процСссС Π΅Π³ΠΎ создания ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈΡΡŒ Π½Π° рискованный шаг: Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ компилятор Π½Π° самом ПаскалС, Π·Π°Ρ‚Π΅ΠΌ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ стал ΡΠΎΠΊΡ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°Π», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·-Π·Π° отсутствия структур Π΄Π°Π½Π½Ρ‹Ρ… (записСй) Π² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ трансляция ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ. ПослС этого Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ дорогостоящСго ΡƒΡ€ΠΎΠΊΠ° вторая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ успСхом β€” Π½Π° этот Ρ€Π°Π· ΠΌΡ‹ использовали вмСсто Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° язык мСстной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Scallop (созданный М. Π­Π½Π³Π΅Π»ΠΈ).

Паскаль

Паскаль Π±Ρ‹Π» прост Π² ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠΈ ΠΈ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ спСктрС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ прСимущСством ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Алголом, Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ΠΎΠΌ ΠΈ Коболом. ΠœΠΎΠ΄ΡƒΠ»ΡŒ System Паскаля Π±Ρ‹Π» эффСктивным, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ простым Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. На язык сильно повлияла новая дисциплина структурированного программирования, основным ΠΏΡ€ΠΎΠΏΠΎΠ²Π΅Π΄Π½ΠΈΠΊΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» Π­. ДСйкстра, ΡΡ‚Ρ€Π΅ΠΌΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ кризиса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (1968 Π³ΠΎΠ΄).

Паскаль Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1970 Π³ΠΎΠ΄Ρƒ ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ использовался Π½Π° курсах обучСния Π² ШвСйцарской Π²Ρ‹ΡΡˆΠ΅ΠΉ тСхничСской школС Π¦ΡŽΡ€ΠΈΡ…Π° (ETH). ΠœΡ‹ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ подмноТСство Pascal-S ΠΈ создали Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ компилятор для экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ пространства Π½Π° нашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ CDC ΠΈ сниТСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для студСнтов. Π’ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° машинноС врСмя ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π±Ρ‹Π»ΠΈ Π² Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π΅.

РаспространСниС ΠΈ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Паскаля

ВскорС Паскаль Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΎ нСсколько унивСрситСтов ΠΈ возрос интСрСс ΠΊ Π΅Π³ΠΎ использованию Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ ΠΏΡ€ΠΎΡΡŒΠ±Ρ‹ ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ компиляторов для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π― ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» идСю постулирования гипотСтичСского ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅ΠΉΠ½Ρ„Ρ€Π΅ΠΉΠΌΠ°Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π±Ρ‹ создали Π² Π’Ρ‹ΡΡˆΠ΅ΠΉ тСхничСской школС Π¦ΡŽΡ€ΠΈΡ…Π° компилятор. Π­Ρ‚ΠΎΡ‚ гипотСтичСский ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшими Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… инструмСнтов (ассСмблСров). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Pascal-P (P β€” Β«ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉΒ»), ΠΈ эта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° оказалась Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ наши ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ· БСлфаста (Π§.Π­.Π . Π₯ΠΎΠ°Ρ€). Π”Π²Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π·Π»ΠΈ Π΄Π²Π΅ тяТёлыС ΠΊΠ°Ρ€Ρ‚ΠΎΠ½Π½Ρ‹Π΅ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚ Π² Π¦ΡŽΡ€ΠΈΡ…, Π½Π° Π½ΠΈΡ… Π±Ρ‹Π» записан компилятор, спроСктированный для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ICL. На Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΈΡ… ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π»ΠΈ допросу, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ сСкрСты, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Ρ‚Π°ΠΌΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ сборам. Всё это происходило Π±Π΅Π· ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Π±Π΅Π· Π±ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚ΠΈΠΈ ΠΈ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½Π° исслСдования. БСгодня это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΌ слСдствиСм Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ стало появлСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ, Π² основном состоящих ΠΈΠ· ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Ρ… энтузиастов, ΠΆΠ΅Π»Π°Π²ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Паскаль. Π―Π΄Ρ€ΠΎΠΌ этих Π³Ρ€ΡƒΠΏΠΏ управлял Π­Π½Π΄ΠΈ МикСл ΠΈΠ· МиннСаполиса, Π³Π΄Π΅ ΠΎΠ½ΠΈ рСгулярно ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΠΎΡΡ‚Π½ΡƒΡŽ рассылку ΠΎ ПаскалС (Pascal Newsletter). Π­Ρ‚ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ внСсло Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ распространСниС Паскаля.

НСсколькими Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ нСбольшиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, процСссор ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ‡ΠΈΠΏ, ΠΈ имСвшиС 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, доступныС ΠΏΠΎ Ρ†Π΅Π½Π΅ Π΄Π°ΠΆΠ΅ физичСским Π»ΠΈΡ†Π°ΠΌ. Π’Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ благодаря своСму Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ компилятору, способному ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΌΠ°Π»ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ памяти (64 ΠšΠ‘), Паскаль ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΡ… процСссоров. Π“Ρ€ΡƒΠΏΠΏΠ° ΠΏΠΎΠ΄ руководством КСна Боулса ΠΈΠ· УнивСрситСта Π‘Π°Π½-Π”ΠΈΠ΅Π³ΠΎ ΠΈ Π€ΠΈΠ»ΠΈΠΏΠΏ Кан ΠΈΠ· Borland Inc. Π² Π‘Π°Π½Ρ‚Π°-ΠšΡ€ΡƒΠ·Π΅ создали для нашСго компилятора ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для обнаруТСния ΠΈ диагностики ошибок. Они ΠΏΡ€ΠΎΠ΄Π°Π²Π°Π»ΠΈ этот ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° Π³ΠΈΠ±ΠΊΠΈΡ… дисках ΠΏΠΎ 50 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² (Turbo Pascal). Благодаря этому Паскаль распространялся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, особСнно Π² ΡˆΠΊΠΎΠ»Π°Ρ… ΠΈ Π²ΡƒΠ·Π°Ρ…, став для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ computer science. НашС руководство ΠΏΠΎ Паскалю ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π² бСстсСллСр.

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

НаслСдники Паскаля

Но врСмя Π½Π΅ стояло Π½Π° мСстС. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ быстрСС, поэтому трСбования ΠΊ прилоТСниям, ΠΊΠ°ΠΊ ΠΈ ΠΊ программистам, росли. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ большС Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΎΠ΄Π½ΠΈΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡ… создавали ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Ρ‹. Π’ языках Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ конструкции, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Один Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ систСмы, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Β«ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌΒ», достаточно нСзависимо ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ПозТС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скомпонованы ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ автоматичСски. Π”Π°ΠΆΠ΅ Π² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ имСлась ΡƒΠΆΠ΅ такая функция, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° нСпростая Π·Π°Π΄Π°Ρ‡Π°!

ΠœΠΎΠ΄ΡƒΠ»ΠΈ с ΠΌΠ΅ΠΆΠ³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ цСлостности Ρ‚ΠΈΠΏΠΎΠ² стали основным Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ наслСдника Паскаля ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠœΠΎΠ΄ΡƒΠ»Π°-2 4 (сокращСниС ΠΎΡ‚ modular language, 1979 Π³ΠΎΠ΄). Π―Π·Ρ‹ΠΊ стал ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Паскаля, Π° Ρ‚Π°ΠΊΠΆΠ΅ Mesa β€” языка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π² Xerox PARC для систСмного программирования. Π‘Π°ΠΌ Mesa Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΡ‘Π» ΠΎΡ‚ Паскаля. Однако Mesa развивался слишком Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎ ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Β«ΡƒΠΊΡ€ΠΎΡ‚ΠΈΡ‚ΡŒΒ». Π’ ΠœΠΎΠ΄ΡƒΠ»Π°-2 Ρ‚Π°ΠΊΠΆΠ΅ присутствовали элСмСнты для систСмного программирования, Π΄ΠΎΠΏΡƒΡΠΊΠ°Π²ΡˆΠΈΠ΅ конструкции, зависящиС ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… свойств ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для интСрфСйсов с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ устройствами ΠΈΠ»ΠΈ сСтями. Из-Π·Π° этого ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ самой ΡΡƒΡ‚ΡŒΡŽ высокоуровнСвых языков, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρ‚Π°ΠΊΠΈΠ΅ части Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Β«Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ…Β» модулях, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠœΠΎΠ΄ΡƒΠ»Π° содСрТал конструкции для программирования ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов (ΠΈΠ»ΠΈ ΠΊΠ²Π°Π·ΠΈΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²). Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» Π±Ρ‹Π»ΠΎ основной Ρ‚Π΅ΠΌΠΎΠΉ 1970-Ρ…. Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠœΠΎΠ΄ΡƒΠ»Π°-2 постСпСнно стал довольно комплСксным ΠΈ Π½Π° ΠΌΠΎΠΉ взгляд пСрСуслоТнённым для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠžΡ‰ΡƒΡ‰Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ языку Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅.

Π”Π°ΠΆΠ΅ сСгодня ΠžΠ±Π΅Ρ€ΠΎΠ½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ мноТСствС Ρ€Π°Π·Π½Ρ‹Ρ… мСст. Однако Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π² случаС с ПаскалСм, Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Ρ‹Π΅ коммСрчСскиС систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ слишком ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΡƒΠΊΠΎΡ€Π΅Π½ΠΈΠ»ΠΈΡΡŒ. И всё ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ языки Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Java (Sun Microsystems) ΠΈ C# (Microsoft) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ влияниС ΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠžΠ±Π΅Ρ€ΠΎΠ½ ΠΈΠ»ΠΈ Паскаль.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1995 Π³ΠΎΠ΄Ρƒ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ появились динамичСски ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ логичСских Π²Π΅Π½Ρ‚ΠΈΠ»Π΅ΠΉ элСктронныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²Π΅Π½Ρ‚ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (field programmable gate arrays, FPGA) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² практичСски Π»ΡŽΠ±ΡƒΡŽ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ схСму. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ всё Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·ΠΌΡ‹Ρ‚ΠΎΠΉ. Π― Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» язык Lola (logic language) с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΠžΠ±Π΅Ρ€ΠΎΠ½ элСмСнтами ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Π΅ΠΌΡƒ структурой для описания Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… схСм. Π‘Ρ…Π΅ΠΌΡ‹ всё Ρ‡Π°Ρ‰Π΅ стали Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ тСкстами, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΠΈ графичСскиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ схСмы. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ оборудования ΠΈ ПО, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ становится всё Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Ρ‹

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

Бсылки

1. Naur, P. Revised report on the algorithmic language Algol 60. Commun. ACM 6, (Jan. 1963), 1–17.

2. Wirth, N. and Hoare, C.A.R. A contribution to the development of ALGOL. Commun. ACM 9 (June 1966), 413–432.

3. Wirth, N. The programming langage Pascal. Acta Informatica 1, (1971), 35–63; https://doi.org/10.1007/BF00264291

4. Wirth, N. What can we do about the unnecessary diversity of notation for syntactic definitions? Commun. ACM 20, 11 (Nov. 1977).

5. Wirth, N. Programming in Modula-2. Springer-Verlag 1982.

6. Wirth, N. The Programming Language Oberon. Software–Practice and Experience 18, (Jul. 1988), 671–690; https://doi.org/10.1002/spe.4380180707

На ΠΏΡ€Π°Π²Π°Ρ… Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ размСщСния Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² β€” это ΠΏΡ€ΠΎ наши эпичныС! ВсС сСрвСры Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ ΠΎΡ‚ DDoS-Π°Ρ‚Π°ΠΊ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΊΠ°Π½Π°Π»Π° 500 ΠœΠ΅Π³Π°Π±ΠΈΡ‚, автоматичСская установка ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния VestaCP для размСщСния сайтов ΠΈ Π΄Π°ΠΆΠ΅ автоматичСская установка Windows Server Π½Π° Ρ‚Π°Ρ€ΠΈΡ„Π°Ρ… с 4 Π“Π‘ ΠžΠ—Π£ ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅. Π›ΡƒΡ‡ΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ πŸ˜‰

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

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

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