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

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

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

Но ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это нСвСроятно просто. ВсС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ – ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ SkipComment рСкурсивной:

{–}

{ Skip A Comment Field }

procedure SkipComment;

begin

while Look <> '}' do begin

GetChar;

if Look = '{' then SkipComment;

end;

GetChar;

end;

{–}

Π“ΠΎΡ‚ΠΎΠ²ΠΎ. ΠΠ°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‚ΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠ°ΠΊΠΎΠΉ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ.

ΠœΠ½ΠΎΠ³ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ

ВсС это Ρ…ΠΎΡ€ΠΎΡˆΠΎ для случаСв, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ символами, Π½ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ с Ρ‚Π°ΠΊΠΈΠΌΠΈ случаями ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ стандартный Pascal, Π³Π΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° символа? Π₯ΠΎΡ€ΠΎΡˆΠΎ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ всС Π΅Ρ‰Π΅ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый, Π½ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ наш ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅ΡΡŒ ΡƒΠ·Π½Π°Π², Ρ‡Ρ‚ΠΎ это Π±ΠΎΠ»Π΅Π΅ слоТный случай.

Для многосимвольной ситуации ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»Π΅Π²Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ Π² GetChar. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Β«Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ прямо здСсь, замСняя Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌ символом.

Π”Π°Π²Π°ΠΉΡ‚Π΅ условимся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ C '/*' ΠΈ '*/'. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ 'GetCharX'. Π’ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ вашСго компилятора ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ GetChar Π² GetCharX ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ GetChar:

{–}

{ Read New Character. Intercept '/*' }

procedure GetChar;

begin

if TempChar <> ' ' then begin

Look := TempChar;

TempChar := ' ';

end

else begin

GetCharX;

if Look = '/' then begin

Read(TempChar);

if TempChar = '*' then begin

Look := '{';

TempChar := ' ';

end;

end;

end;

end;

{–}

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эта ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ появлСниС '/'. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° исслСдуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Если это символ '*', Ρ‚ΠΎ ΠΌΡ‹ нашли Π½Π°Ρ‡Π°Π»ΠΎ коммСнтария ΠΈ GetChar Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒ. (Для простоты я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый символ '{' ΠΊΠ°ΠΊ я Π΄Π΅Π»Π°Π» для Паскаля. Если Π±Ρ‹ Π²Ρ‹ писали компилятор C, Π²Ρ‹ Π±Π΅Π· сомнСния Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ символ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π² C. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ нравится... Π΄Π°ΠΆΠ΅ $FF, Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅).

Если символ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° '/' Π½Π΅ '*', Ρ‚ΠΎΠ³Π΄Π° GetChar прячСт Π΅Π³ΠΎ Π² Π½ΠΎΠ²ΠΎΠΉ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ TempChar ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ '/'.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ эту Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ' '. МнС нравится Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ с использованиС конструкции «типизированная константа» Π² Turbo Pascal:

const TempChar: char = ' ';

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° новая вСрсия SkipComment:

{–}

{ Skip A Comment Field }

procedure SkipComment;

begin

repeat

repeat

GetCharX;

until Look = '*';

GetCharX;

until Look = '/';

GetChar;

end;

{–}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° нСсколько Π²Π΅Ρ‰Π΅ΠΉ: ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅Ρ‚ нСобходимости ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ IsWhite ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ SkipWhite Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ GetChar Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ '{'. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ этот символ Ρ‚ΠΎΠΊΠ΅Π½Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ Π² этих Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ SkipComment Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π² своСм Ρ†ΠΈΠΊΠ»Π΅ Π½Π΅ GetChar Π° GetCharX. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ '/' Π½Π΅ пСрСхватываСтся ΠΈ обрабатываСтся SkipComment. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, хотя Ρ€Π°Π±ΠΎΡ‚Ρƒ выполняСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° GetChar, ΠΌΡ‹ всС ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с символами ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² строки Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Π²Ρ‹Π·Ρ‹Π²Π°Ρ GetCharX Π²ΠΌΠ΅ΡΡ‚ΠΎ GetChar ΠΏΠΎΠΊΠ° ΠΌΡ‹ находимся Π²Π½ΡƒΡ‚Ρ€ΠΈ строки. НаконСц, Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ снова ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² SkipComment, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅.

ΠžΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Пока Ρ‡Ρ‚ΠΎ я ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… слСва ΠΈ справа. ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ односторонниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π² ассСмблСрС ΠΈΠ»ΠΈ Ada, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ†ΠΎΠΌ строки. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ этот способ ΠΏΡ€ΠΎΡ‰Π΅. ЕдинствСнная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° – SkipComment, которая Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ Π½Π° символС пСрСноса строки:

{–}

{ Skip A Comment Field }

procedure SkipComment;

begin

repeat

GetCharX;

until Look = CR;

GetChar;

end;

{–}

Если Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ символ – ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ, ΠΊΠ°ΠΊ ";" Π² ассСмблСрС, Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎ сущСству всС сдСлали. Если это Π΄Π²ΡƒΡ…ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½, ΠΊΠ°ΠΊ "–" ΠΈΠ· Ada, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² GetChar. Π’ любом случаС это Π±ΠΎΠ»Π΅Π΅ лСгкая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‡Π΅ΠΌ двухсторонниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с коммСнтариями ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с запятой, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ синтаксичСского сахара. Π― ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ нСсколько способов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ…, Π² зависимости ΠΎΡ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Ρ… соглашСний. ΠžΡΡ‚Π°Π»ΡΡ СдинствСнный вопрос – ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· этих соглашСний ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² KISS/TINY?

По ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я высказал ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Π΄Π΅Π»Π°, я Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

β€’ Π’ΠΎΡ‡ΠΊΠΈ с запятой – Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹ Π° Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ.

β€’ Π’ΠΎΡ‡ΠΊΠΈ с запятой Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.

β€’ ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками.

β€’ ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ этим случаям Π² Π²Π°ΡˆΡƒ копию TINY. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ TINY Version 1.2.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ эти ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² основноС русло. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ эти Π²Π°ΠΆΠ½Ρ‹Π΅ возмоТности Π² TINY.

Увидимся.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

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

НаконСц-Ρ‚ΠΎ ΠΌΡ‹ принимаСмся Π·Π° Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π³Π»Π°Π²Ρƒ!

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ всС основныС особСнности компиляторов ΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ арифмСтичСскиС выраТСния, Π±ΡƒΠ»Π΅Π²Ρ‹ выраТСния, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции, объявлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ΠœΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ язык TINY 1.3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ всС эти возмоТности, ΠΈ написали элСмСнтарный компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π”ΠΎΠ±Π°Π²ΠΈΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ компилятор, способный ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° TINY. Π‘ Ρ‚Π°ΠΊΠΈΠΌ компилятором ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ простыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, способныС ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ цСлочислСнныС Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°Π΄ Π½ΠΈΠΌΠΈ вычислСния ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

ВсС это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ, это всС Π΅Ρ‰Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ язык. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ символы тСкста ΠΈ Ρƒ нас всС Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Π­Ρ‚ΠΈ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ обсуТдСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Π³Π»Π°Π²Π°Ρ…, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ отдСлят ΠΌΡƒΠΆΡ‡ΠΈΠ½ ΠΎΡ‚ ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ. «НастоящиС» языки ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Π‘ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΈΠΌΠ΅Π½Π½ΠΎ эти Π΄Π²Π΅ возмоТности Π΄Π°ΡŽΡ‚ языку Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ прСдоставим ΠΈΡ…, наши языки, TINY ΠΈ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΈ, пСрСстанут Π±Ρ‹Ρ‚ΡŒ ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ настоящих языков, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Ρ… для ΡΠ΅Ρ€ΡŠΠ΅Π·Π½ΠΎΠ³ΠΎ программирования.

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

ПослСднСС ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅

Π­Ρ‚Π° Π³Π»Π°Π²Π° Π±Ρ‹Π»Π° Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ для мСня. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ нСпосрСдствСнно ΠΊ Ρ‚Π΅ΠΌΠ΅... я Π·Π½Π°Π», ΠΎ Ρ‡Π΅ΠΌ Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя, ΠΈ фактичСски я прСдставил Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· этого Π½Π° Software Development '89, Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅. Π‘ΠΎΠ»ΡŒΡˆΠ΅ это ΠΈΠΌΠ΅Π»ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ.

Когда я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π½Π°Ρ‡Π°Π» эту ΡΠ΅Ρ€ΠΈΡŽ, я сказал Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«ΠΏΡ€ΠΈΠ΅ΠΌΡ‹Β» Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ сСбС Тизнь ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π½Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС Π½Π΅ вдаваясь слишком ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ. Π‘Ρ€Π΅Π΄ΠΈ этих ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Π±Ρ‹Π»Π° идСя рассмотрСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй компилятора Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚.Π΅. выполнСния экспСримСнтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Cradle ΠΊΠ°ΠΊ основу. Когда, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ исслСдовали выраТСния ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с этой Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ компиляции. ΠšΠΎΠ³Π΄Π° ΠΌΡ‹ исслСдовали ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры, ΠΌΡ‹ писали Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, всС Π΅Ρ‰Π΅ основанныС Π½Π° Cradle, для выполнСния этой части. ΠœΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ эти понятия Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ язык довольно Π½Π΅Π΄Π°Π²Π½ΠΎ. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ слуТили Π½Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ нас ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ компилятора для TINY вСрсии 1.3.

Π’Π½Π°Ρ‡Π°Π»Π΅, ΠΊΠΎΠ³Π΄Π° я Π½Π°Ρ‡Π°Π» этот ΡƒΡ€ΠΎΠΊ, я попытался ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ сдСлали ΠΈ просто Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ компилятор. Π­Ρ‚ΠΎ оказалось Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ слоТным... слишком, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ мСня.

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

Π’Ρ‹ Π΄ΠΎΠ»Π½Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΌΡ‹ здСсь занимаСмся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ. БущСствуСт ряд статСй Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Small C ΠΎΡ‚ КСйна ΠΈ Π₯Сндрикса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдставляли Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΉ компилятор для ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ этой ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ сСрии Π²Ρ‹ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚Π΅ Π·Π° ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ языка ΠΈ компилятора Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ экспСримСнтах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ» ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΊ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, я ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² компилятор TINY Ρ‚Π°ΠΊΠΈΠΌ способом, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΌΡ‹ Π±Ρ‹ всС Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π»ΠΈ настоящий, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ компилятор. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, я сдСлал ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка ΠΈ Π΅Π³ΠΎ компилятора Π² Ρ‚ΠΎ ΠΆΠ΅ самоС врСмя объясняя Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ я Π΄Π΅Π»Π°Π».