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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 9

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

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

Π―Π·Ρ‹ΠΊΠΈ высокого уровня ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π²Π°ΠΆΠ½Ρ‹ΠΌ свойством пСрСносимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная Π½Π° языкС высокого уровня для ΠΎΠ΄Π½ΠΎΠ³ΠΎ МК, Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилирована Π΄Ρ€ΡƒΠ³ΠΈΠΌ компилятором для МК с Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссорным ядром. И эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚ΠΎΠΆΠ΅ окаТСтся работоспособной. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π»Π° свойством пСрСносимости, синтаксис языка высокого уровня для Ρ€Π°Π·Π½Ρ‹Ρ… компиляторов Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ². Π’ частности, Ρ‚Π°ΠΊΠΈΠΌ свойством ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ язык Π‘ΠΈ стандарта ANSI (American National Standards Institute). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ просто Β«ANSI CΒ». Основная Ρ†Π΅Π»ΡŒ стандартизации состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ написания Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ управлСния ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ использованиСм Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

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

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

TIMP = (216Γ—n) + (Stop_count βˆ’ Start_count)

ВычислСниС этого уравнСния достаточно слоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° ассСмблСрС, ΠΎΠ΄Π½Π°ΠΊΠΎ для языка высокого уровня это рутинная Π·Π°Π΄Π°Ρ‡Π°. Однако Π½Π΅ слСдуСт Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эти матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ памяти МК Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

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

2.3.1. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ язык высокого уровня для программирования встраиваСмых систСм

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ ΠΎΠ±Π·ΠΎΡ€ Π² Internet, Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ достаточно большоС число Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… компиляторов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков высокого уровня для встраиваСмых систСм. Π’Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ компиляторы Π‘ΠΈ, Π‘++, Java. Ada, Fortran ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих языков ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ нСдостатки. Часто Π²Ρ‹Π±ΠΎΡ€ языка программирования ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ спСцифичСскими особСнностями Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ просто поТСланиями Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°. Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ сравнСниС всСх пСрСчислСнных языков Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ вряд Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Для этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ язык Π‘ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ сСйчас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² организациях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ ΠΎΠ½ обСспСчиваСт Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ рСсурсам ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Π―Π·Ρ‹ΠΊ Π‘ΠΈ извСстСн ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² сСбС свойства языка высокого уровня ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ обСспСчиваСт Π»Π΅Π³ΠΊΠΈΠΉ доступ ΠΊ рСгистрам ΠΈ ячСйкам памяти МК. ИмСнно это свойство ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π» ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π‘ΠΈ господин Π ΠΈΡ‡ΠΈ (Ritchie).

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

2.3.2. ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история языка Π‘ΠΈ

Наш Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎ Π‘ΠΈ Π±Ρ‹Π» Π±Ρ‹ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ, Ссли Π±Ρ‹ ΠΌΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π½Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π° происхоТдСнии этого языка. Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ погруТСния Π² эту Ρ‚Π΅ΠΌΡƒ совСтуСм ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ [8]. НиТС ΠΏΠΎ тСксту ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° ΠΌΡ‹ Π΄Π°Π΅ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² этой ΠΊΠ½ΠΈΠ³ΠΈ.

ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия языка Π‘ΠΈ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² сСрСдинС 60 Ρ‹Ρ… Π³ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ Bell. Один ΠΈΠ· самых ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² этого языка, КСн Вомсон (Ken Thompson), Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ трСбуСтся язык для создания Π±ΠΎΠ»Π΅Π΅ слоТных языков программирования. Он создал Ρ‚Π°ΠΊΠΎΠΉ язык ΠΈ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ Β«BΒ». Π’ процСссС развития своСго творСния Вомсон постоянно боролся с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ рСсурсов памяти, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° встраиваСмыС систСмы. ДСннис Π ΠΈΡ‡ΠΈ (Dennis Ritchie) Ρ€Π΅ΡˆΠΈΠ» Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ язык Β«BΒ» свойством Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Π»Ρ‹ΠΉ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСт ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΡ‡Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ, написанным Π½Π° ассСмблСрС. Π’ 1973 Π³ΠΎΠ΄Ρƒ ваТнСйшиС свойства этого Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Β«CΒ» Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹.

Π’ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π‘ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² Π΅Π³ΠΎ пСрСносимости. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π‘ΠΈ Π±Ρ‹Π»ΠΈ созданы для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (Ρ‚Π°ΠΊ Π² сообщСствС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ процСссорноС ядро МК), ΠΎΡ‚Ρ‡Π΅Π³ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π΅Ρ‰Π΅ большС выросла. НаиболСС Π±ΡƒΡ€Π½ΠΎ Π‘ΠΈ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² 80 Π³ΠΎΠ΄Π°Ρ…, ΠΊΠΎΠ³Π΄Π° стал основным языком для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

АмСриканский Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ институт стандартизации (American National Standards Institute β€” ANSI) Π² 1982 Π³ΠΎΠ΄Ρƒ ΡƒΡ‡Ρ€Π΅Π΄ΠΈΠ» ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ X3J11 для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стандарта языка Π‘ΠΈ. Π’ 1989 Π΄ΠΎΠΊΠ»Π°Π΄ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ стандартизации (International Organization for Standardization β€” ISO) ΠΈ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΡƒΡŽ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ комиссию (International Electrotechnical Commission β€” IEC) ΠΈ Π±Ρ‹Π» ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ Π² качСствС стандарта ISO/IEC 9899-1990. Π—Π° этим стандартом послСдовало Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΡƒΠ·Π°ΠΊΠΎΠ½Π΅Π½ΠΎ Π² 1999 стандартом ISO/IEC 9899. И Π‘ΠΈ стал языком, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ индустрии.

2.4. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ стратСгия β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘ΠΈ ΠΈ Π½Π° ассСмблСрС

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ установили, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ встраиваСмыС систСмы Π½Π° языкС высокого уровня. И Π² качСствС Ρ‚Π°ΠΊΠΎΠ³ΠΎ языка ΠΌΡ‹ обоснованно Π²Ρ‹Π±Ρ€Π°Π»ΠΈ язык Π‘ΠΈ. Но ΠΈ ассСмблСр ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства. Π’Π°ΠΊ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС ΠΌΡ‹ всС Ρ‚Π°ΠΊΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ встраиваСмыС систСмы?

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° примСнСния языка Π‘ΠΈ ΠΈ ассСмблСра ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ сразу Π΄Π²Π° языка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: ΠΈ Π‘ΠΈ, ΠΈ ассСмблСр. Основная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ производятся прСобразования Π΄Π°Π½Π½Ρ‹Ρ…, Π±ΡƒΠ΄Π΅Ρ‚ написана Π½Π° БИ, Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, слСдуСт ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π½Π° ассСмблСрС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ассСмблСр ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ МК ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ИБ. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° с Ρ‚Π°ΠΊΠΈΠΌΠΈ ИБ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ΠΎΠ² МК, Ρ‡Ρ‚ΠΎ Π² компиляторах Π‘ΠΈ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… МК ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° ассСмблСрС. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ случай ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ассСмблСрного Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π² тСкст основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘ΠΈ ΠΌΡ‹ продСмонстрируСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использования ΠΊΠΎΠΌΠ°Π½Π΄ ассСмблСра 68HC12/HCS12 для прСобразования Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ (см. Π³Π». 7).

Π Π°Π½Π΅Π΅ ΠΌΡ‹ упомянули, Ρ‡Ρ‚ΠΎ конструкции языка Π‘ΠΈ ΠΊΠ°ΠΊ нСльзя Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ структурного проСктирования. Настало врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

2.5. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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