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

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

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

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

ВсС это Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нас ΠΊ дням Ρ€Π°Π½Π½ΠΈΡ… ΠΌΠ°ΠΉΠ½Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ², Π³Π΄Π΅ врСмя выполнСния ΠΈΠ·ΠΌΠ΅Ρ€ΡΠ»ΠΎΡΡŒ Π² часах ΠΈ днях ΠΈ Π±Ρ‹Π»ΠΎ Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ послСднюю ΡƒΠ½Ρ†ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выполнСния.

Π’ этой сСрии я Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ остороТСн ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Π» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ восстановлСния послС ошибок ΠΈ вмСсто этого наш компилятор просто останавливаСтся с сообщСниСм Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ошибкС. Π― ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ Π² основном ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ я Π·Π°Ρ…ΠΎΡ‚Π΅Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простоту. Но этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Borland Π² Turbo Pascal Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π² любом случаС. ΠšΡ€ΠΎΠΌΠ΅ сохранСния простоты компилятора это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ соотвСтствуСт ΠΈΠ΄Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ систСмы. Когда компиляция происходит быстро ΠΈ, особСнно, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° Borland ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ ошибки, Ρ‚ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΌ ΠΈ просто ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ошибка исправлСна.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½Π°Ρ Π‘Ρ€ΠΈΠ½Ρ‡ Π₯ансСном Ρ†Π΅Π»ΡŒ состояла Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор Π±Ρ‹Π» способСн ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сам сСбя. Π‘Π½ΠΎΠ²Π°, ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ Π΅Π³ΠΎ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ. Он нуТдался Π² Ρ‚Π°ΠΊΠΎΠΌ малСньком Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ компилятора, насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π― Π½Π΅ заявил ΠΎΠ± этом ΠΏΠΎΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ нСобходимости... ΠΌΡ‹ всСгда просто Ρ‡ΠΈΡ‚Π°Π»ΠΈ ΠΈ записывали Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π² любом случаС. Но, для Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΌΠΎΠΉ ΠΏΠ»Π°Π½ всСгда Π±Ρ‹Π» Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ компиляторС исходныС ΠΈ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠžΠ—Π£ с компилятором, аля Ρ€Π°Π½Π½ΠΈΠΉ Turbo Pascal. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π±Ρ‹Π» остороТСн ΠΈ сохранил ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚ΠΈΠΏΠ° GetChar ΠΈ Emit ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, нСсмотря Π½Π° ΠΈΡ… нСбольшой Ρ€Π°Π·ΠΌΠ΅Ρ€. Π‘ΡƒΠ΄Π΅Ρ‚ просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись ΠΈΠ· памяти.

АкцСнт Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

Π”ΠΆΠΎΠ½ Бэкус заявил, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ компилятор Fortran ΠΎΠ½ΠΈ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π’ Ρ‚Π΅ Π΄Π½ΠΈ имСлись ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ чувства ΠΏΡ€ΠΎΡ‚ΠΈΠ² HOL Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ассСмблСра ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π±Ρ‹Π»Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Если Π±Ρ‹ Fortran Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ» ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎ стандартам ассСмблСра, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ просто Π±Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, компилятор Fortran оказался ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈΠ· ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠ±ΠΎ созданных.Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… качСства ΠΊΠΎΠ΄Π°. Но ΠΎΠ½ Π±Ρ‹Π» слоТным!

БСгодня ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΌΠΎΡ‰ΡŠ ЦПУ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠžΠ—Π£ с запасом, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π΅ такая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π‘Ρ‚Π°Ρ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ игнорируя эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ способны ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простоту. Как Π½ΠΈ странно, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠ°ΠΊ я сказал, я нашСл Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π±Π°Π·ΠΎΠ²ΡƒΡŽ структуру компилятора Π½Π΅ добавляя слишком ΠΌΠ½ΠΎΠ³ΠΎ слоТности. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² этом случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ свой ΠΏΠΈΡ€ΠΎΠ³ ΠΈ сьСдим Π΅Π³ΠΎ: ΠΌΡ‹ Π² любом случаС Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ с ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ качСством ΠΊΠΎΠ΄Π°.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструкций.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ компиляторов имССтся структура Π΄Π°Π½Π½Ρ‹Ρ…, называСмая Π»ΠΈΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΠ» (literal pool). ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ всС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ собираСт ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…. ВсС ссылки Π½Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ сдСланы косвСнно Π½Π° этот ΠΏΡƒΠ». Π’ ΠΊΠΎΠ½Ρ†Π΅ компиляции компилятор Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для выдСлСния памяти ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΈΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°.

Нам ΠΏΠΎΠΊΠ° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅. Когда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΌΡ‹ просто Π΄Π΅Π»Π°Π΅ΠΌ это строкой:

MOVE #3,D0

МоТно ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΠ± использования Π»ΠΈΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π° особСнно Π½Π° машинС Ρ‚ΠΈΠΏΠ° 8086, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹. Однако всС это добавляСт довольно большоС количСство слоТности с нСбольшим Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Π΅Π· стСка ΠΌΡ‹ Π±Ρ‹ ΠΏΠΎΡ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ. И Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ врСмСнная ΠΏΠ°ΠΌΡΡ‚ΡŒ сильно зависят ΠΎΡ‚ стСка ΠΈ ΠΌΡ‹ использовали Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ большС, Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для облСгчСния синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π–Π΅Π»Π°Π½ΠΈΠ΅ общности.

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

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

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ компиляции Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ‰Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ (Π½ΠΎ Π½Π΅ всС) Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Π΅ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Π΅. Бпособ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½, всСтаки, ΠΈ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ людСй посвятили Π³ΠΎΠ΄Ρ‹ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ способа ΠΈΡ… автоматичСского прСобразования.

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

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

Π’ этой сСрии ΠΌΡ‹ приняли Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с чистого листа Π±ΡƒΠΌΠ°Π³ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ‚ΠΎΠΌ контСкстС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ находимся: это ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с Π²ΠΏΠΎΠ»Π½Π΅ достаточно ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ЦПУ ΠΈ объСмом ΠžΠ—Π£. ΠœΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈ сами сСбя ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌΠΈ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΈ для Π°Π½Π°Π»ΠΈΠ·Π°, ΠΌΡ‹ с успСхом использовали систСму ΠΊΠΎΠΌΠ°Π½Π΄ ЦПУ, ΠΈ ΠΌΡ‹ Π½Π΅ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° эффСктивности. ИмСнно поэтому это Π±Ρ‹Π»ΠΎ просто.

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

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

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

Π’ любом случаС, это ΠΌΠΎΠ΅ Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρƒ нас Π±Ρ‹Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простоту. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ простого ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π΅ΠΌΡƒ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ Π΅Π³ΠΎ Π² ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ русло.

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