logo search
стр 103-113

Библиотеки стандартных программ и ассемблеры

Первые вычислительные машины вообще не имели никакого общего программного

обеспечения. Программы для решения конкретных задач писались с нуля, в машинных двоичных кодах (для сокращения записи использовалась восьмеричная или шестнадцатеричная система, но это не меняло сути) в абсолютных адресах, они загружались в чистую оперативную память. Процесс был мучительным и трудоемким. Приходилось помнить двоичные коды всех операций, а любую подпрограмму выписывать из справочника в условных адресах, затем вручную привязывать к главной программе, распределять память и т. д. На каждом этапе возникали ошибки, поэтому отладить программу даже в тысячу команд было уже очень трудно. Первоочередной задачей программистов на данном этапе было создание библиотек, которые обеспечивали бы вызов стандартных программ из внешней памяти и автоматически подключали их к

главной программе.

Вторая проблема была связана с мнемоническим кодированием и автоматическим распределением памяти. Впервые она была решена в Кембридже в Великобритании на ЭВМ EDSAC (1949 г.). Вместо того, чтобы записывать коды операций двоичными цифрами программист писал текст программы на символическом языке, пользуясь мнемоническими обозначениями операций и условными адресами, а специальная программа (руководитель проекта Морис Уилкс назвал ее собирающей системой — по английски assembly system) автоматически преобразовывала мнемонические коды в понятные машине двоичные, и распределяла память для выполнения программы. Идея оказалась столь продуктивной, что все последующие поколения программистов на всех ЭВМ отказались от абсолютного кодирования. Языки программирования низкого уровня, в которых коды операций заменены мнемоническими обозначениями, стали называться языками ассемблера или автокодами (мнемокодами), а преобразующие программы — ассемблерами.