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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ AS/400Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор Ѐрэнк Болтис

Когда создавалась Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° MI, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ API Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ эти ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ просто ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ интСрфСйс Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅, Ρ‚Π°ΠΊ ΠΈ систСмноС ПО, ΠΎΠ½ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ интСрфСйс. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Β«IΒ» Π² Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Β«APIΒ» β€” Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² Β«MIΒ». API β€” Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI.

Π’Ρ‹ ΠΏΠΎΡ€Π°ΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π»ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MI, Ρ€Π°Π· ΠΈ навсСгда ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€ API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ OS/400 ΠΈ всСми прилоТСниями? НС стоит: ΠΎΠ½ΠΈ Π½Π΅ сдСлали этого, Π΄Π° ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. По ΠΌΠ΅Ρ€Π΅ появлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MI добавлялись ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ API. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° MI Π±Π΅Π·Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Π°, ΠΈ Π½ΠΎΠ²Ρ‹Π΅ API для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΊ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² любоС врСмя. А Ρ€Π°Π· эта Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° постоянно измСняСтся, приобрСтая Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ устарССт. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ API ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ этом Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ, для всСх Ρ€Π°Π½Π΅Π΅ написанных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сохраняСтся Π·Π°Ρ‰ΠΈΡ‚Π° Π² Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… MI.

АрхитСктура MI состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. Π§Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² β€” ΠΈΠ· Π±ΠΈΡ‚ΠΎΠ² ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ² β€” Π½Π΅ отличаСтся ΠΎΡ‚ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ β€” это слоТная структура Π΄Π°Π½Π½Ρ‹Ρ…, СдинствСнная, поддСрТиваСмая Π² Ρ€Π°ΠΌΠΊΠ°Ρ… MI.

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

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

Благодаря использованию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡƒ ΠΈ систСмному ПО большС Π½Π΅ трСбуСтся информация ΠΎ структурС ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚Π° информация хранится Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠ° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π² структурС Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ систСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ нСзависимыми ΠΎΡ‚ структур Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня. Π’Π°ΠΊΠΎΠ΅ свойство сокрытия Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ называСтся инкапсуляциСй. ΠœΡ‹ обсудим ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ Π² Π³Π»Π°Π²Π΅ 5, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сосрСдоточимся Π½Π° Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MI.

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

НСисполняСмый интСрфСйс

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ MI Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ нСпосрСдствСнно. Они Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (Π΄ΠΎ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ SLIC ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ MI β€” API Advanced 36. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ процСсс прСобразования ΠΊΠΎΠΌΠ°Π½Π΄ MI Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ трансляциСй, Π° Π½Π΅ компиляциСй, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ этом выполняСтся лишь Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ компиляции. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΉ трансляции Π±Ρ‹Π» Π½Π°Π±ΠΎΡ€ инструкций IMPI β€” Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это Π½Π°Π±ΠΎΡ€ инструкций PowerPC.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° соврСмСнного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ компилятора ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 4.1. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, компилятор состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ Ρ„Π°Π·. ΠŸΡ€ΠΎΡ…ΠΎΠ΄ β€” это ΠΎΠ΄Π½Π° Ρ„Π°Π·Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ компилятор считываСт ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Ρ„Π°Π·Π° ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ синонимы.

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

ВозмоТности ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ компилятора ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹. ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ дальшС. Β«Π—Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄Β» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ компилятор. НазначСниС рСгистров ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² зависимости ΠΎΡ‚ ΠΈΡ… связСй с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, запись Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ содСрТимого кэша, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² β€” Π²ΠΎΡ‚ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, выполняСмой ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΌ компилятором.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ компилятором, ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, особСнно Ссли ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° процСссорС, способном Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. RISC-процСссор β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ компилятор для достиТСния высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ процСсс написания самого компилятора.

Рисунок 4.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ компилятора


ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ компилятора, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° рис. 4.1, часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ прСпроцСссором (front end) компилятора. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° Π―Π’Π£ Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ (common intermediate form).

ΠŸΠΎΡΡ‚ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ (back end) компилятора состоит ΠΈΠ· Ρ„Π°Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ„Π°Π·Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹ зависят ΠΎΡ‚ Π―Π’Π£, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ постпроцСссоры β€” ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. Если общая промСТуточная Ρ„ΠΎΡ€ΠΌΠ° нСзависима ΠΊΠ°ΠΊ ΠΎΡ‚ Π―Π’Π£, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Ρ‚ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколькими компиляторами. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π―Π’Π£ Π½ΡƒΠΆΠ΅Π½ лишь Π½ΠΎΠ²Ρ‹ΠΉ прСпроцСссор. Аналогично, Ссли создан постпроцСссор для Π½ΠΎΠ²ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Ρ‚ΠΎ с Π½ΠΈΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС старыС прСпроцСссоры. Π’Π°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС компиляторов Π―Π’Π£ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Набор ΠΊΠΎΠΌΠ°Π½Π΄ MI Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, примСняСмой Π² компиляторах. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π―Π’Π£ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ исходный тСкст Π² Ρ„ΠΎΡ€ΠΌΡƒ для MI. Вранслятор, располоТСнный ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π½ΠΈΠΆΠ΅ MI, считываСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² этой Ρ„ΠΎΡ€ΠΌΠ΅, выполняСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ инструкции IMPI ΠΈΠ»ΠΈ PowerPC. Вранслятор ΠΎΡ‡Π΅Π½ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ постпроцСссор компилятора.

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

Набор инструкций MI замСняСт ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π΅ Π²ΠΎ всСх компиляторах AS/400 β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. НиТС приводится описаниС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры компиляторов языков для AS/400, ΠΈ мСсто MI Π² этой структурС.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ для AS/400

Π Π°Π½Π½ΠΈΠ΅ компиляторы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RPG/400 ΠΈ языка управлСния CL) для System/38 ΠΈ AS/400 Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: MI довольно прямолинСйно. Π₯отя ΠΎΠ½ΠΈ ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ассСмблСра, Π² самом компиляторС Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Π•Π΅ Ρ€ΠΎΠ»ΡŒ выполняли ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI.

МодСль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для этих языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΠΈΠΆΠ΅ уровня MI, называСтся исходной модСлью ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ OPM (Original Program Model). ПозднСС, для языков Ρ‚ΠΈΠΏΠ° C/400, Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ модСль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ EPM (Extended Program Model). На рисункС 4.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ процСсс Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° IMPI для OPM ΠΈ Π•Π Πœ. ΠœΡ‹ прСдставили здСсь эти Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для дСмонстрации ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ компиляторов AS/400. На RISC-систСмах вСрсии 4 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½ΠΈ компиляторы ОРМ, Π½ΠΈ Π•Π Πœ.

Π‘Π½Π°Ρ‡Π°Π»Π° рассмотрим компилятор ОРМ. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π―Π’Π£ ОРМ (вмСстС с Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° рисункС описаниями Ρ„Π°ΠΉΠ»ΠΎΠ²) ΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ IRP (Intermediate Representation of a Program). IRP, ΠΏΠΎ сути, β€” ассСмблСр для ΠΊΠΎΠΌΠ°Π½Π΄ MI. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” ΠΊΠΎΠ΄ IRP прСобразуСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PRM (Program Resolution Monitor), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт шаблон ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π° рисункС ΠΊΠ°ΠΊ шаблон ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ОРМ ΠΈ содСрТащий ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² MI. Вранслятор, располоТСнный Π½ΠΈΠΆΠ΅ уровня MI, создаСт ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ IMPI. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ шаблона ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно Π΄Π°Π»Π΅Π΅.

ОРМ β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ классичСского компилятора, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (IRP), послС Ρ‡Π΅Π³ΠΎ ассСмблСр (PRM) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (шаблон ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π½Π° AS/400 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ шага (этапа трансляции) ΠΈ поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС эти этапы для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ AS/400 Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ ΠΈ выглядят, ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° опСрация.