Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Ранние языки компьютерного программирования – язык ассемблера, используемый в серии IBM 1400.
Early computer programming languages
the assembly language used with the IBM 1400 series
Autocode – это название семейства "упрощенных систем кодирования", позднее названных языками программирования, разработанных в 1950-х и 1960-х годах для ряда цифровых компьютеров в университетах Манчестера, Кембриджа и Лондона. Autocode был обобщенным термином; автокоды для различных машин не обязательно тесно связаны между собой, в отличие, например, от различных версий единого языка Fortran. Сегодня этот термин используется для обозначения семейства ранних языков, произошедших от систем автокодирования Manchester Mark 1, которые в целом были схожими. В 1960-х годах термин "автокодеры" использовался в более широком смысле для обозначения любого языка программирования высокого уровня, использующего компилятор. Примерами языков, которые назывались автокодами, являются COBOL и Fortran.
Autocode is the name of a family of "simplified coding systems", later called programming languages, devised in the 1950s and 1960s for a series of digital computers at the Universities of Manchester, Cambridge and London. Autocode was a generic term; the autocodes for different machines were not necessarily closely related as are, for example, the different versions of the single language Fortran. Today the term is used to refer to the family of early languages descended from the Manchester Mark 1 autocoder systems, which were generally similar. In the 1960s, the term autocoders was used more generically as to refer to any high level programming language using a compiler. Examples of languages referred to as autocodes are COBOL and 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.
Brooker also developed an autocode for the Ferranti Mercury in the 1950s in conjunction with the University of Manchester. Mercury Autocode had a limited repertoire of variables a z and a' z' and, in some ways resembled early versions of the later Dartmouth BASIC language. It pre dated ALGOL, having no concept of stacks and hence no recursion or dynamically allocated arrays. In order to overcome the relatively small store size available on Mercury, large programs were written as distinct "chapters", each of which constituted an overlay. Some skill was required to minimise time consuming transfers of control between chapters. This concept of overlays from drum under user control became common until virtual memory became available in later machines. Slightly different dialects of Mercury Autocode were implemented for the Ferranti Atlas (distinct from the later Atlas Autocode) and the ICT 1300 and 1900 range. The version for the EDSAC 2 was devised by David Hartley of University of Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it was a straight development from Mercury Autocode adapted for local circumstances, and was noted for its object code optimisation and source language diagnostics which were advanced for the time. A version was developed for the successor Titan (the prototype Atlas 2 computer) as a temporary stop gap while a more substantially advanced language known as CPL was being developed. CPL was never completed but did give rise to BCPL (developed by M. Richards), which in turn led to B and ultimately C. A contemporary but separate thread of development, Atlas Autocode was developed for the University of Manchester Atlas 1 machine.