Мова проміжний

МОВУ ПРОМІЖНИЙ

- мова програмування, що вживається в якості посередника при трансляції з проблемно-орієнтованих мов на мови обчислювальних машин. Я. п. Служить для комплексаціі програм, що транслюються з різних мов процедурно-орієнтованих і для скорочення числа трансляторів, які необхідно скласти, щоб на кожній з N машин можна було користуватися будь-яким з М мов програмування. Якщо не використовувати Я. п. То для цього потрібно трансляторів. При вживанні Я. п. Досить мати М трансляторів з процедурно-орієнтованих мов на Я. п. І N трансляторів з Я. п. На конкретні машини, т. Е. За все трансляторів. Відповідно до призначення Я. п. Головна вимога, що пред'являється до нього, полягає в тому, щоб забезпечити ефективну трансляцію з його допомогою для можливо великих М і N.

В принципі, будь-який формальний мову програмування можна було б вибрати в якості Я. п. Т. К. Все вони мають алгоритмічної універсальністю. Однак, всякий процедурно-орієнтована мова може забезпечити ефективне використання вич. машин тільки при вирішенні певного вузького класу задач, на які він орієнтований.

Напр. алфавітно-цифрові таблиці ефективно не беруться через типи даних, передбачені в АЛГОЛ-60, а вибірка

елемента з вектора сповільнюється у багато разів, якщо його зберігати в пам'яті у вигляді списку. Т. о. для ефективного перекладу з різних процедурно-орієнтованих мов Я. п. повинен бути не процедурно-орієнтованим, а мовою машинно-орієнтованим, т. е. він повинен бути близький до мови вирахував. машин.

Разом з тим жодна з мов конкретної вич. машини не може бути ефективно використаний в якості Я. п. Це відбувається від того, що програма для будь-якої конкретної машини по необхідності містить набагато більше інформації, ніж це потрібно для опису алгоритму. Там, де потрібно отримати суму двох чисел, для будь-якої конкретної машини потрібно, щоб складові і сума були представлені певними послідовностями бітів.

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

З орієнтації Я. п. Випливають такі їх властивості, які можуть спростити завдання складання компіляторів з Я. п. І зробити їх більш ефективними: а) від Я. п. Не потрібно зручностей для ручного програмування; б) при складанні компіляторів можна розраховувати на те, що всі програми на Я. п. правильні, оскільки вони, в свою чергу, складені трансляторами з процедурно-орієнтованих мов. Я. п. Грають велику роль в створенні внутрішнього математичного забезпечення ЦВМ, т. К. На їх основі може розроблятися універсальне матем. забезпечення, придатне одночасно для класу машин, а також може бути вирішена проблема наступності матем. забезпечення при Зміні поколінь машин. Е. 3. Любимський.

Схожі статті