Языки, компилирующие программы и программы перевода
Решение задачи на вычислительной машине связано с тремя основными проблемами: 1) язык задачи; 2) подготовка и использование подпрограмм; 3) рекурсивное использование подпрограмм. Значение проблемы языков в автоматизации программирования рассматривалось в лекции 6. Преобразование символических кодов в форму кодов команд осуществляется методами компилирования и перевода. При компилировании может дополнительно потребоваться выборка подпрограмм из запоминающих устройств, распределение адресов, составление программы из подпрограмм и выполнение других операций.
Первые эксперименты по использованию алгебраической символики в качестве входного языка были проведены в 1951 -1952 гг. Однако только с 1956 г. началась разработка ряда входных языков, как-то: языка ФОРТРАН (Formula Translator) для машины ИБМ-704; языка ИТ (Internal Translator) для Дататрон-205, ИБМ-650, ЮНИВАК Сайнтифик-1103А, ИМБ-701 и для ЮНИВАК I; языка МАС-МАТИК для ЮНИВАК I и II; языка ЮНИКОД для ЮНИВАК Сайнтифик-ПОЗА, а также других языков для машин ИБМ-709, Ферранти Меркурий (Англия), ПЕРМ (Западная Германия) и «Стрела».
В 1957 г. при Ассоциации по вычислительным машинам был учрежден специальный Комитет по входным языкам. В 1958 г. были проведены совместные заседания этого комитета с Германо-Шведским обществом прикладной математики (GAMM). Целью работы комитета и общества была стандартизация определений и символов и выработка класса языков, которые легко преобразовывались бы один в другой машиной, а также легко воспринимались бы человеком, не имеющим специальной подготовки.
Непосредственный перевод с входного языка в машинный код обычно называется однозаходной системой перевода. Перевод с входного языка на язык составляющей программы с последующим преобразованием такой программы в машинный код называется двухзаходной системой перевода.
Источник: delete-it