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

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

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

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

По ΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° AS/400 Π½ΠΎΠ²Ρ‹Ρ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘/400 ΠΈ Pascal, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. Π­Ρ‚Π°ΠΏΡ‹ компиляции для Π•Π Πœ (Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ вСрсии ОРМ) Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° рис. 4.2. Π’ компиляторах Ρ‚Π°ΠΊΠΈΡ… языков прСпроцСссор ΠΈ постпроцСссор Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹. ΠžΠ±Ρ‰Π°Ρ промСТуточная Ρ„ΠΎΡ€ΠΌΠ° Π² Π½ΠΈΡ… называСтся U-ΠΊΠΎΠ΄. Для AS/400 Π±Ρ‹Π» создан Π½ΠΎΠ²Ρ‹ΠΉ постпроцСссор компиляторов CUBE-1 (Common Use Back End 1).

Рисунок 4.2 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ОРМ ΠΈ Π•Π Πœ


Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΈ стимуляции Π΅Π³ΠΎ распространСния Π½Π° всС языки, Π±Ρ‹Π»ΠΈ внСсСны Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² MI ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, располоТСнныС Π½ΠΈΠΆΠ΅. Π­Ρ‚Π° модификация Π΄Π°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° 1993 Π³ΠΎΠ΄ΠΎΠΌ ΠΈ называСтся ILE (Integrated Language Environment). Π’ состав ILE входят Π½ΠΎΠ²Ρ‹Π΅ компиляторы Π―Π’Π£, Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ транслятор (OX) ΠΈ Π½ΠΎΠ²Ρ‹Π΅ срСдства связи для создания ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ[ 35 ]. ILE ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ОРМ, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Ρƒ этого транслятора Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. БрСдство связывания ILE ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅Ρ‚ эти ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² с ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΎΠΉ ОРМ, Π² ILE Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΎ врСмя компиляции. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π°Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ состо-

ΠΈΡ‚ Π² сокращСнии Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, связанных с внСшними динамичСскими Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ. Π—Π°Ρ€Π°Π½Π΅Π΅ скомпонованныС ΠΈΠ»ΠΈ статичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстрСС.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ΄Ρ‚ΠΈ дальшС, трСбуСтся Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠΎΠ΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ.

β€’ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Ρ…ΠΎΠ΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

β€’ ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ компилятора ILE. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, создаваСмой компилятором OPM, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ исполняСм. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ ILE собираСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ слуТСбныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, написанных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках.

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

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

β€’ Π“Ρ€ΡƒΠΏΠΏΠ° Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” рабочая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π²Π½ΡƒΡ‚Ρ€ΠΈ задания, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ для выполнСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΡ‹ рассмотрим Π³Ρ€ΡƒΠΏΠΏΡ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π³Π»Π°Π²Π΅ 9.

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

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

Π’ ΠΎΠ±ΠΎΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Ρ€Π°Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ новая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π·ΠΎΠ² связанной ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ CALLB (call bound procedure). Другая новая ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ CALLPGM (call program) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ связываниС ΠΈ замСняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π° внСшнСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ОРМ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° компиляторов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ILE ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 4.3.

Рисунок 4.3 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ILE


ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ компилятора ILE Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ β€” W-ΠΊΠΎΠ΄. ΠŸΠΎΡΡ‚ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Ρ‚Π°ΠΊΠΈΡ… компиляторов называСтся CUBE-3. Π¦ΠΈΡ„Ρ€ΠΎΠΉ 3 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΈ самоС послСднСС ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ компиляторов IBM. CUBE-3 ΠΈ W-ΠΊΠΎΠ΄ спроСктированы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ эффСктивной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ RISC-процСссоров.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ систСмы IBM, Π² частности RS/6000, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ компилятора ILE Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ нСпосрСдствСнно шаблон ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ILE, устраняя IRP ΠΈ шаг PRM. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ RISC-процСссоров, Π² MI Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ арифмСтичСскиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π² стилС W-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим Π΄Π°Π»Π΅Π΅.

МодСль ILE β€” СдинствСнная программная модСль для RISC-процСссоров β€” являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MI. На систСмах IMPI ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ILE ΠΈ ОРМ/Π•Π Πœ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠ΄, сгСнСрированный старыми компиляторами, ΠΈ сами компиляторы.

Рисунок 4.4 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ОРМ ΠΈ Π•Π Πœ Π½Π° V4 RISC


ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ОРМ/Π•Π Πœ Π½Π° систСму RISC Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ модСль ILE. На рис. 4.4 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ шаги компиляции ОРМ ΠΈΠ»ΠΈ Π•Π Πœ для систСмы RISC вСрсии 4. Для использования старых компиляторов Π½Π° Π½ΠΎΠ²Ρ‹Ρ… RISC-модСлях Π½ΡƒΠΆΠ΅Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг: Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… компиляторов β€” шаблон ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ MI β€” Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² шаблон ILE MI. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, называСтся Magic, (Π½Π°ΠΌΠ΅ΠΊ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ происходит ΠΊΠ°ΠΊ Π±Ρ‹ магичСским ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ).


Рисунок 4.4 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ОРМ ΠΈ Π•Π Πœ Π½Π° V4 RISC

Π₯арактСристики машинного интСрфСйса

Бравнивая MI с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ интСрфСйсом, ΠΌΡ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ MI β€” интСрфСйс высокого уровня. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ MI Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ слоТныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр, Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ интСрфСйсы содСрТат Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π½Π½ΡŽΡŽ, Ρ‚Π°ΠΊ ΠΈ позднюю ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ, для Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ машинного интСрфСйса (см. рисунок 4.5). Она состоит ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ арифмСтичСскими (Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° слоТСния), ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΈ манипуляции с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Рисунок 4.5 ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ интСрфСйс


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

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