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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим компилятор!Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 4

Автор Π”ΠΆΠ΅ΠΊ ΠšΡ€Π΅Π½ΡˆΠΎΡƒ

begin

if IsAddop(Look) then

EmitLn('CLR D0')

else

Term;

while IsAddop(Look) do begin

EmitLn('MOVE D0,-(SP)');

case Look of

'+': Add;

'-': Subtract;

else Expected('Addop');

end;

end;

end;

{–}

Π― Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π²Π°ΠΌ, насколько Π»Π΅Π³ΠΊΠΎ ΠΌΡ‹ смоТСм Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния! На этот Ρ€Π°Π· ΠΎΠ½ΠΈ стоили Π½Π°ΠΌ всСго Ρ‚Ρ€Π΅Ρ… Π½ΠΎΠ²Ρ‹Ρ… строчСк Паскаля. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° появлСниС ссылки Π½Π° Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ IsAddop. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° addop появилась Π΄Π²Π°ΠΆΠ΄Ρ‹, я Ρ€Π΅ΡˆΠΈΠ» Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π€ΠΎΡ€ΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ IsAddop Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ IsAlpha. Π’ΠΎΡ‚ ΠΎΠ½Π°:

{–}

{ Recognize an Addop }

function IsAddop(c: char): boolean;

begin

IsAddop := c in ['+', '-'];

end;

{–}

ОК, внСситС эти измСнСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ IsAddop Π² Π±Π°Π·ΠΎΠ²ΡƒΡŽ копию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Cradle. Она потрСбуСтся Π½Π°ΠΌ ΠΏΠΎΠ·ΠΆΠ΅. БСйчас ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова ввСсти -1. Π’Π°Ρƒ! Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° довольно плохая… ΡˆΠ΅ΡΡ‚ΡŒ строк ΠΊΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ константу… Π½ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΌΡ‹ Π½Π΅ пытаСмся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ Turbo Pascal.

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

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

Π‘Π»ΠΎΠ²ΠΎ ΠΎΠ± ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

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

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

ΠŸΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ сгСнСрирован.

Π­Ρ‚ΠΎ понятиС Β«Ρ‰Π΅Π»Π΅Π²ΠΎΠΉΒ» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Основная идСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ инструкций компилятор собираСтся произвСсти ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ извСстно ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… Β«ΠΏΠ»ΠΎΡ…ΠΈΠ΅Β» (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ для числа -1). Π˜Ρ‚Π°ΠΊ, всС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ инструкций ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π±ΠΎΠ»Π΅Π΅ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅Β». Π­Ρ‚ΠΎ Π²ΠΈΠ΄ ΠΌΠ°ΠΊΡ€ΠΎΡ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΠΈ прямой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сопоставлСния с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ. ЕдинствСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ называСтся Β«Ρ‰Π΅Π»Π΅Π²ΠΎΠΉΒ» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с малСнькой Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ инструкций. «ЩСлСвая» оптимизация ΠΌΠΎΠΆΠ΅Ρ‚ драматичСски Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° качСство ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ этом Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² структурС компилятора. Но всС ΠΆΠ΅ Π·Π° это приходится ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ компилятора. Поиск всСх ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ мноТСства условий, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся источником ошибки. И, СстСствСнно, это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

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

ΠŸΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ сразу Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΊΠΎΠ΄.

Π’ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠ΄Π°. Как Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠ»ΡŒ ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ CLR вмСсто Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ совсСм Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π² случаС с ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ нуля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅ΠΉ, Ссли ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Factor вмСсто Expression, Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ –1 ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ константу, Π° Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…. Ни ΠΎΠ΄Π½Π° ΠΈΠ· этих Π²Π΅Ρ‰Π΅ΠΉ Π½Π΅ являСтся слишком слоТной для рСализации… просто ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π² ΠΊΠΎΠ΄, поэтому я Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΈΡ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ получСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ компилятора, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄, ΠΌΡ‹ всСгда смоТСм Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для получСния Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ИмСнно поэтому Π² ΠΌΠΈΡ€Π΅ сущСствуСт «ВСрсия 2.0Β».

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½, достойный упоминания, способ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ достаточно ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡˆΠ½ΠΈΡ… Ρ…Π»ΠΎΠΏΠΎΡ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠ΅ Β«ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅Β», Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ я Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΏΠΎ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, хотя я ΠΈ Π½Π΅ ΠΏΠΈΡ‚Π°ΡŽ иллюзий Ρ‡Ρ‚ΠΎ это ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ ΠΌΠ½ΠΎΠΉ.

Бпособ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ частого использования стСка, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ рСгистры Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора. ВспомнитС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ выполняли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слоТСниС ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΡ‹ использовали рСгистры D0 ΠΈ D1 Π° Π½Π΅ стСк? Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ для этих Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стСк Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ использовал Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²Π΅ ячСйки.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, процСссор 68000 ΠΈΠΌΠ΅Π΅Ρ‚ восСмь рСгистров Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ стСк? Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Β«Π·Π½Π°Π΅Ρ‚Β» ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов Π² стСкС, поэтому ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠΌΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ частный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдит, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΡ‹ находимся ΠΈ адрСсуСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ рСгистр. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Factor, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π² рСгистр D0, Π° Π² Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ стСка.

Π§Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ замСняя стСк Π² RAM Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ стСк созданный ΠΈΠ· рСгистров. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ стСка Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ прСвысит восьми, поэтому ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ случаи, ΠΊΠΎΠ³Π΄Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ стСка прСвысит восСмь, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠœΡ‹ просто ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ стСку ΠΏΠ΅Ρ€Π΅Ρ‚Π΅ΠΊΠ°Ρ‚ΡŒ Π² стСк ЦПУ. Для ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π²Ρ‹ΡˆΠ΅ восьми ΠΊΠΎΠ΄ Π½Π΅ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ сСйчас, Π° для ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π½ΠΈΠΆΠ΅ восьми ΠΎΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅.

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

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π― Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

Π‘Π½ΠΎΠ²Π° выраТСния

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

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

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числовыС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

ЧисловыС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ встрСчаСм Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

b * b + 4 * a * c

Ни ΠΎΠ΄ΠΈΠ½ компилятор нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ, Ссли ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½ΠΈΠΌΠΈ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, это Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² нашСм синтаксичСском Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ Π² настоящСС врСмя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ: цСлочислСнныС константы ΠΈ выраТСния Π² скобках. Π’ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ БНЀ: