Машинно-орієнтоване програмування

З винаходом програмно керованих обчислювальних машин з’явилася нова професія – програміст. Ми вже розповідали, що першим в історії програмістом була Ада Лавлейс, що працювала разом з Чарльзом Беббіджем, вона розробляла програми управління його Аналітичної машиною. Але масової професія програміста стала тільки з винаходом електронних обчислювальних машин – ЕОМ.

На лампових ЕОМ першого покоління програмісти становили свої програми, використовуючи безпосередньо команди процесора. При цьому програмісту доводилося розподіляти комірки пам’яті під дані і під команди програми. Потрібно було знати систему команд процесора і коди всіх команд. Вихідні дані і команди представлялися у формі двійкового коду, т. Е. Безпосередньо в тому вигляді, в якому вони зберігаються в пам’яті ЕОМ. Для скорочення запису програм на спеціальних бланках зазвичай використовували двійково-восьмеричний або двійково-шест-надцатерічний код. Ось приклад команди програми для одного з комп’ютерів першого покоління.

Така команда називається трьохадресних. Код 021б позначає команду додавання. 1-й і 2-й адреси – це адреси комірок ОЗУ, в яких зберігаються доданки, третій адреса – адреса комірки, куди заноситься сума. Сама команда зберігається в комірці ОЗУ з адресою 281б.

Програмування в машинних кодах являло собою складний процес. З цієї причини продуктивність роботи програмістів була досить низькою. У 1950-х роках виникає напрям, що одержав назву «автоматизація програмування». Основна його мета: створення засобів, що полегшують і прискорюють процес створення програми для ЕОМ. З’являються перші мови програмування.

Першими мовами програмування були машинно-ориенти-рова автокоди. Пізніше за язиками такого рівня закріпилася назва асемблери. Спочатку ассемблером називали програму-перекладач з мови асемблера в машинні команди. Пізніше і сам мова асемблера стали називати ім’ям «асемблер». Програмування на асемблері знімає з програміста турботу про розподіл пам’яті під дані і команди програми. Програміст також не повинен пам’ятати внутрішні коди всіх команд процесора.

Слово ADD позначає команду «скласти», а і b – імена змінних-доданків, с – змінна, куди поміщається результат.

Мова асемблер називається машинно-орієнтованим з тієї причини, що для кожної команди процесора існує свій аналог команди на асемблері. Оскільки різні типи ЕОМ мали різні системи команд процесора, асемблери у них теж розрізнялися. Сучасні асемблери точно так само орієнтовані на певні типи процесорів. Пізніше з’явилися так звані макроассемблер, у мові яких існують макрокоманди, відповідні серіям команд (підпрограм) мовою процесора.

Складання програми на асемблері простіше, ніж мовою команд процесора. Роботу за розподілом пам’яті під дані і команди, переклад команд асемблера в машинні команди бере на себе спеціальна системна програма – транслятор.

З машинної орієнтованості програм на асемблері випливає, що такі програми не можна переносити для виконання на інші типи ЕОМ з іншою системою команд процесора. Ця проблема створювала серйозні обмеження для прикладних програмістів. Крім того, саме програмування на асемблері є досить складним для масового освоєння, що обмежувало використання ЕОМ у прикладних областях.

Посилання на основну публікацію