Введение

Ранние языки компьютерного программирования – язык ассемблера, используемый в серии IBM 1400.

Autocode – это название семейства "упрощенных систем кодирования", позднее названных языками программирования, разработанных в 1950-х и 1960-х годах для ряда цифровых компьютеров в университетах Манчестера, Кембриджа и Лондона. Autocode был обобщенным термином; автокоды для различных машин не обязательно тесно связаны между собой, в отличие, например, от различных версий единого языка Fortran. Сегодня этот термин используется для обозначения семейства ранних языков, произошедших от систем автокодирования Manchester Mark 1, которые в целом были схожими. В 1960-х годах термин "автокодеры" использовался в более широком смысле для обозначения любого языка программирования высокого уровня, использующего компилятор. Примерами языков, которые назывались автокодами, являются COBOL и Fortran.

Позднейшие автокоды

Брукер также разработал автокод для Ferranti Mercury в 1950-х годах совместно с Манчестерским университетом. Mercury Autocode имел ограниченный набор переменных: a, z и a', z', и в некотором отношении напоминал ранние версии языка Dartmouth BASIC. Он предшествовал ALGOL, не имея понятия о стеках и, следовательно, не поддерживал рекурсию или динамически выделяемые массивы. Чтобы обойти относительно небольшой объем памяти, доступный на Mercury, большие программы писались в виде отдельных «глав», каждая из которых представляла собой накладку. Требовались определенные навыки, чтобы минимизировать времязатратные передачи управления между главами. Эта концепция накладок с использованием барабанной памяти под управлением пользователя оставалась распространенной до появления виртуальной памяти в более поздних машинах. Несколько отличающиеся диалекты Mercury Autocode были реализованы для Ferranti Atlas (отличающиеся от более позднего Atlas Autocode) и серии ICT 1300 и 1900. Версия для EDSAC 2 была разработана Дэвидом Хартли из Математической лаборатории Кембриджского университета в 1961 году. Известная как EDSAC 2 Autocode, она являлась прямым развитием Mercury Autocode, адаптированным к местным условиям, и отличалась продвинутой для своего времени оптимизацией объектного кода и диагностикой исходного языка. Версия была разработана для преемника Titan (прототип компьютера Atlas 2) как временное решение, пока разрабатывался более совершенный язык, известный как CPL. CPL так и не был завершен, но породил BCPL (разработанный М. Ричардсом), который, в свою очередь, привел к B и, в конечном итоге, к C. Параллельно, но независимо, для машины Atlas 1 Манчестерского университета был разработан Atlas Autocode.