Сравнительный анализ системных программ первых ЭВМ в СССР | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 января, печатный экземпляр отправим 8 января.

Опубликовать статью в журнале

Автор:

Рубрика: История

Опубликовано в Молодой учёный №20 (310) май 2020 г.

Дата публикации: 16.05.2020

Статья просмотрена: 146 раз

Библиографическое описание:

Мальцев, С. Н. Сравнительный анализ системных программ первых ЭВМ в СССР / С. Н. Мальцев. — Текст : непосредственный // Молодой ученый. — 2020. — № 20 (310). — С. 368-372. — URL: https://moluch.ru/archive/310/70182/ (дата обращения: 22.12.2024).



В этой статье рассматриваются системные программы первых электронных компьютеров с хранимой программой. Проводится сравнение системного программирования СССР с системами программирования в других странах в 50х годах прошлого столетия в ходе прогресса системного ПО. Именно этот прогресс привел к созданию Фортрана, Алгола и много пользовательских операционных систем, хотя этот период в статье не рассматривается.

Ключевые слова: компьютеры, история программирования, транслятор, интерпретатор, операционная система.

В исторической литературе много информации о технике первых компьютеров и людях их создававших, а о программах, какие работали на них, написано значительно меньше. К тому же компьютеры и программы в первые годы использования были в работе в основном у военных и засекречены. К тому же описания программных работ того времени в каждой стране отдельные. А между западными странами и СССР в то время был «железный занавес» мешающий контактам, в том числе научным. Поэтому сравнительных работ почти нет, а историки техники редко разбираются в особенностях работы первых компьютеров. Современным специалистам трудно представить программирование начального периода. Поэтому, цель работы рассмотреть сравнительный прогресс системного программного обеспечения первых компьютеров.

В статье рассматриваются в основном системные программы первых электронных компьютеров с хранимой программой. Следовательно, не рассматривается программирование ENIAC, так как он был контактно программируемый не с хранимой программой, программировался как табуляторные машины предыдущего периода. [7, c. 35] Так же в работе не рассматриваются не транслируемые в то время языки алгоритмов, типа PlanKalkul.

Новизной данной статьи является попытка сопоставить и сравнить работы первых программистов СССР с работами программистов других стран.

70 лет назад в 6 ноября 1950 года в СССР был запущен первый компьютер, называемый модель МЭСМ. [7, c. 29]. Это была 16 разрядная 3х адресная машина на примерно 3000 электронных лампах, а та МЭСМ которая была принята в эксплуатацию позже (25 декабря 1951 года) была 26-разрядная 3х адресная машина на примерно 6000 электронных лампах.

Это были машины с хранимой программой и были «полными то Тьюрингу» (Turing complete). Однако они не были машинами по фон Нейману, так как не имели выделенной не регистровой оперативной памяти.

Макет МЭСМ в 1950 осуществлял ввод данных и программ с панели переключателей двоичных чисел. Вывод результата в двоичном виде на панель из лампочек. Первая программа была упрощенной задачей баллистики. Программировали ее С. Авраменко и С. Крейн.

Что же было в других странах. В 1950 году электронные компьютеры с хранимой программой были только в Британии и США. Даже во Франции, где была фирма Bull Мachines выпускавшая перфорационные вычислительные комплексы, электронных компьютеров не было. Они появились только в 1955 году, да и то как аналог IBM. В Германии не смотря на наличие фирм, выпускающих вычислители DEHOMAG и Zuse, электронных компьютеров тоже не было до 1955 года.

В США, если не считать не работающий на тот момент BINAC, были компьютеры SEAC и SWAC которые были запущены на несколько месяцев раньше модели МЭСМ и будучи аналогами Британской ACE, так же находились в стадии эксперимента и программировались в это время в двоичном виде в ручную с пульта.

В Британии в 1950 году работали 3 компьютера АСЕ, MADM, EDSAC и это не считая манческирскую SSEM (Small Scale Experimental Machine), которая выполнила первую программу в 21 июня 1948 года и была первым работающим компьютером с хранимой программой в мире. SSEM была разобрана на детали в конце октября 1948 года. В место нее в апреле 1949 года была установлена более совершенная MADM (вначале MUC), Манчестерский университетский компьютер.

Основные системные программы, повлиявшие на прогресс системного ПО, приводятся в таблице 1.

Британская АСЕ сразу имел перфокарточный ввод, однако в связи с не стандартно расположенными пробивками, можно считать, что программировался с перфокарт, но в двоичном формате. Еще до ее запуска была разработана библиотека подпрограмм десятично-двоичных преобразований и работы с числами с плавающей точкой. Программа АСЕ –VII (1947г.) выглядела так:

1101001101110111011100001110110110101101010101

1001101101110111011100001110110110101100010111

А вот на компьютерах MADM и EDSAC, которые были запущены на полтора года раньше советской «модель МЭСМ», британские программисты осуществили несколько научных переворотов. Первый переворот в системном программировании совершил А. Тьюринг (A. Turing). Он стал осуществлять загрузку в память программы с перфоленты 5 битными латинскими символами, с помощью специальной программы загрузки. Эту загрузку он продемонстрировал уже в октябре 1948 года на компьютере SSEM. Однако для MADM это было доработано к апрелю 1949 года.

При загрузке 5 битной ленты получалась более компактная запись, по сравнению с двоичной и восьмеричной. И как Тьюринг считал, лучше читается и запоминается. Было даже мнемоническое слово для лучшего запоминания каждого символа команды из 31 команды MADM. Такой стиль записи можно назвать первым символьным языком программирования, назывался «AbbreviationInstructioncode» [2, c. 3]. Например, три команды MADM, прочитать, сложить и записать я память результат, выглядело на бланке программы и распечатке на телетайпе так:

Н//0 М/@DD/@@

Также с перфоленты загружалась специальная библиотека системных функций. После загрузки с помощью библиотеки можно было преобразовать нужные данные в рабочей программе в двоичный вид. После преобразования-трансляции можно было выгрузить готовую рабочую программу на перфоленту. Это системное программное обеспечение было названо SchemeA [2, c. 31]. (Тьюринг 1949г.). Она состояла из резидентного монитора и служебных программ. В ее функции входило:

Загрузка программ а память (O, K)

Редактирование ячеек памяти (J)

Преобразование 10х чисел в 2-е (“)

Выполнение команды (X) Например: Х//L — запустить с адреса 0.

Выгрузка данных из памяти (T, Q)

Выполнять команды можно было как с перфоленты, так и клавиатуры телетайпа (с октября 1948г.).

М. Уилкс (M. Wilkes), руководитель проекта EDSAC, переняв, по возможности, одно адресную структуру Манчестерского компьютера, посчитал представление программы А.Тьюринга очень неудобным, тем более что из-за отсутствия переключений регистров у Тьюринга среди символов отсутствовали цифры. Уилкс попросил конструктора EDSAC Ренвика (B. Renwick) сделать код команды более мнемоническим, чем у MADM. В месте с программистом Уиллером (D. Wheeler) было разработано июне 1949 года системное обеспечение Initorder, которое сразу и загружало более понятную текстовую программу и преобразовывало в двоичный вид нужные цифры [2, c. 3]. Как утверждал Уилкс, это более понятно и студентам, и аспирантам. Сложение с записью выглядело так;

26 A 25 S

27 A 4 Sn+1 ton

28 U 25 S

В 1949 Weeler написал программу Compilator которая настраивала адреса вызовов библиотечных подпрограмм необходимых только для этой программы. В последствии многие программные системы стали использовать этот метод.

В сентябре 1949 года Мочли в первые на электронном компьютере стал использовать восьмеричные 3х битные символы и назвал это “Short code”. При этом символы набивались специальной клавиатурой на магнитную ленту и с нее вводились в компьютер. Вывод на печать то же восьмеричный.

BINAC 9/1949

20010 03027

70610 08274

В 1951 Мочли уже на компьютере UNIVAC начал использовать шести битные символы с этим же названием. [1, c. 53]

UNIVAC — 1

В 1951 году система программирования EDSAC была переработана программистом Гилмором (J. Gilmore) из Массачусетского института технологии (MIT) для компьютера Whirlwind.

Г. Хоппер (G. Hopper) в развитие библиотечного ассемблера Уиллера для UNIVAC структурировала большую библиотеку UNIVAC а, создав систему А0 в 1952 году. В 1954 добавив выгрузку готовой к запуску программ на магнитную ленту, назвала это компилятором А-2.

В ЭВМ М-1 в декабре 1951 года в первые в СССР начали программировать восьмеричными символами их набивали на обычном телетайпе, потом вводили с перфоленты, в отличии от магнитной ленты в BINAC. На примере ниже напечатана тестовая программа печати квадратов чисел. [8, c. 243]

М-1 (1951)

10000000

20030060 40080061 40011061 20010030 20051031

30010030 30002031 20010070 00050071 00000050

Программирование БЭСМ в 1952 году производилось перфокартами, как показано ниже.

10 1010 1010 101

10 1010 1010 101

Glennie в Манчестерском университете в 1952 создал Autocode в котором реализовал трансляцию алгебраических формул ограниченного размера, [1, c. 43] для Манчестерского компьютера FERRANTI.

Autocode Glennie 1952

INTEGERS +5 +7 →c # Put 5 plus 7 into c

+t -xy

Тут необходимо уточнить как мог возникнуть подобный транслятор. В дополнение к символьному кодированию и трансляции цифр впервые появляется трансляция формул и трансляция кодов команд. Явно что до трансляции формул была просто трансляция кодов команд. Вероятно, был и предшествующий Autocode Glennie. Вероятно, это мог быть кросс транслятор с ассемблера EDSAC на «AbbreviationInstructioncode» MADM мк1. Глени работал на обоих компьютерах, но MADM мк1 разобрали в декабре 1950 года.

В фирме IBM в 1953 Backus используя наработки Wilkes и Glennie создал Speedcode. [1, c. 3]

SpeedcodeIBM 1953 Backus

RAD 25

RAD 04

RST 25

В 1953 в СССР была запущена серийная ЭВМ СТРЕЛА-1 ввод программ был аналогично БЭСМ.

Однако вскоре были разработаны программы автоматизации программирования. В начале была разработана «Программа Автоматического Присвоения Адресов/ПАПА» (Т. А. Тросман, В. В. Мартынюк). Вероятно, была аналогична компилирующей программе А0 Грейс Хоппер. Выглядела как обычная программа Стрелы-1, однако сокращала работу программистам.

0000 0000 0000 0 01

0001 0001 0001 0 03

В 1954 Подобный подход был усовершенствован (С. С. Камынин, Э. З. Любимский)условными блоками и выгрузкой загружаемой программы на перфокарты и была названа «Программирующей программой» / ПП-1, так как из заготовки программы формировала набор рабочих запускаемых карт. [5, c. 9]

В 1955 Ершов разработал ПП-БЭСМ [9, c. 11] с символьными кодами операций.

ПП_БЭСМ2

В 1954 году Бруккер (Brooker) довел до практического использования Autocode А. Глени. с алгебраической записью. [1, c. 63]

Autocode Brooker 1954

1 vn1 = Ireads input into v [n [1]]

n1 = n1 + 1

j1,11 ≥ n1 jumps to 1 if n [1] ≤ 11

И усовершенствовал «Schema A» в Интерпретирующую систему Autocode. Запуск программы выглядела так: $ prog1.

Бекус (J. Backus) в IBM используя наработки предшественников Autocode, в 1956 году начинает обкатывать FORTRAN [1, c. 60] [4, c. 3], создав для него операционную систему пакетной обработки FMS. Пример вызова программы:

JOB START

А в 1958 году Интерпретирующую систему для М-20 написал Шура-бура.

ИС-2 в начале для М-20. ИС разрабатывалась для работы с библиотечными программами с перфокарточного считывателя. [9, c. 11] Программа просто выполняла команду, считанную с перфокарточного ввода. Однако в купе с хорошо подобранной системой команд ЭВМ М-20 позволяла просто выполнять большое количество функций [10, c. 30] без обращения к пульту управления ЭВМ. Чтобы загрузить и выполнить программу в штатном режиме, нужно было безошибочно набрать больше 100 двоичных тумблеров на инженерной панели. При запущенной ИС-2, достаточно было положить колоду перфокарт с программой и с подготовленными перфокартами загрузки и запуска, виде машинной команды в 15 восьмеричных цифр. А если при отладке требовалось изменить информацию в памяти, то достаточно было набить на клавиатуре перфоратора команду записи в память в восьмеричном формате и положить эту карту в считыватель. Использовалась до 1970 года.

Выводы из описанного в статьеможно сделать такие, что начиная с 1946 года шел непрерывный процесс совершенствования системного ПО, в котором лидировали британские программисты. Программисты СССР создавая оригинальные программные продукты шли на третьем месте. Германоязычные программисты себя серьезно проявили только в 1958 гору в разработке Алгола. Практически с 1960 года начался современный этап развития программирования.

Литература:

  1. Knuth, D. E., Trabb P. L. «Early development of programming languages», Stanford:1976.

2. Turing, A. M. Manual for the Ferranti Mk. I — Manchester: 1951.

  1. Wilkes, M. V. Wheeler, D. J. Gill S. The Preparation of Programs for an Electronic Digital Computer, Mass.: Addison-Wesley, 1951.

4. Backus, J. The history of Fortran I, II, and III — IEEE Annals of the History of Computing: 1989.

  1. Камынин С. С., Любимский Э. З. Автоматизация программирования // Тр. конф. «Пути развития советского математического машиностроения и приборостроения». — ч. 3 — М., 1956. — С. 9–17.
  2. Сергей Алексеевич Лебедев. К 100-летию со дня рождения основоположника отечественной электронной вычислительной техники. Под ред. В. С. Бурцева, М.: ФИЗМАТЛИТ, 2002.
  3. Мальцев, С. Н. Роль Холлерита в развитии вычислительной техники. [Электронный ресурс] // Электронный периодический научный журнал «SCI-ARTICLE.RU». 2017. № 46. С. 31–39. URL: http://sci-article.ru/number/06_2017.pdf (дата обращения: 12.05.2020).
  4. Мальцев, С. Н. О программировании АЦВМ М-1 // Молодой ученый. — 2018. — № 25. — с. 243–246.
  5. Шура-Бура, М. Р. Система интерпретации ИС-2 // Библиотека стандартных программ. — М.:Изд-во ЦБТИ, 1961.

10. Шура-Бура М. Р. Штаркман В. С. Вычислительная машина М-20 М.: 1962.

Основные термины (генерируются автоматически): MADM, EDSAC, UNIVAC, BINAC, IBM, SSEM, компьютер, программа, хранимая программа, двоичный вид.


Ключевые слова

операционная система, компьютеры, история программирования, транслятор, интерпретатор

Похожие статьи

Основные современные языки программирования

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

О программировании АЦВМ М-1

В данной статье описывается компьютер М-1 созданный в лаборатории Электросистем Энергетического института АН СССР в 1951 году и предпринята попытка восстановить одну из программ.

Методологии проектирования мультиагентных систем

В данной статье рассмотрены методологии проектирования мультиагентных систем, в том числе, применительно к созданию искусственного интеллекта. Приведен анализ популярных подходов к разработке информационных систем на всех этапах создания.

Применение программного комплекса ANSYS в компьютерном моделировании

В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...

Методы проектирования архитектуры информационных систем

Статья посвящена методам проектирования архитектуры информационных систем. Описаны достоинства и недостатки рассмотренных подходов. Представлено мнение автора об использовании нужного из перечисленных методов при проектировании архитектуры различных ...

Классификация операционных систем

Сложность функциональных возможностей операционной системы ведет к сложности ее архитектуры, которая в свою очередь расширяется за счет специализации операционных систем, что привело к широкому разнообразию современных операционных систем. Актуально...

Разработка информационной системы корпоративного тестирования сотрудников со встроенным блоком графоаналитического представления результатов

В данной статье автор пытается создать прототип информационной системы тестирования корпоративных работников. Рассматриваются технологии для разработки и отладки информационных систем, а также способы построения архитектуры программного обеспечения.

Современные программные продукты для анализа данных

В статье представлены особенности современного программного обеспечения для анализа данных и сравнительный анализ программных продуктов.

Машинное обучение и язык программирования Python

В статье рассматриваются общие сведения о машинном обучении, его основные виды, а также наиболее значительные библиотеки для машинного обучения на языке Python.

Разработка командной оболочки с поддержкой конвейера (pipeline)

В данной статье говорится об особенностях разработки командной оболочки (shell) для UNIX систем. Приводятся блок-схемы работы основных алгоритмов работы командной оболочки. Подробно разбирается реализация конвейера (pipeline).

Похожие статьи

Основные современные языки программирования

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

О программировании АЦВМ М-1

В данной статье описывается компьютер М-1 созданный в лаборатории Электросистем Энергетического института АН СССР в 1951 году и предпринята попытка восстановить одну из программ.

Методологии проектирования мультиагентных систем

В данной статье рассмотрены методологии проектирования мультиагентных систем, в том числе, применительно к созданию искусственного интеллекта. Приведен анализ популярных подходов к разработке информационных систем на всех этапах создания.

Применение программного комплекса ANSYS в компьютерном моделировании

В статье представлены известные и современные программные комплексы для компьютерного моделирования конструкций, изделий и их составных частей. Программы основаны на методе конечных элементов, как метод численного моделирования и анализа. Показаны во...

Методы проектирования архитектуры информационных систем

Статья посвящена методам проектирования архитектуры информационных систем. Описаны достоинства и недостатки рассмотренных подходов. Представлено мнение автора об использовании нужного из перечисленных методов при проектировании архитектуры различных ...

Классификация операционных систем

Сложность функциональных возможностей операционной системы ведет к сложности ее архитектуры, которая в свою очередь расширяется за счет специализации операционных систем, что привело к широкому разнообразию современных операционных систем. Актуально...

Разработка информационной системы корпоративного тестирования сотрудников со встроенным блоком графоаналитического представления результатов

В данной статье автор пытается создать прототип информационной системы тестирования корпоративных работников. Рассматриваются технологии для разработки и отладки информационных систем, а также способы построения архитектуры программного обеспечения.

Современные программные продукты для анализа данных

В статье представлены особенности современного программного обеспечения для анализа данных и сравнительный анализ программных продуктов.

Машинное обучение и язык программирования Python

В статье рассматриваются общие сведения о машинном обучении, его основные виды, а также наиболее значительные библиотеки для машинного обучения на языке Python.

Разработка командной оболочки с поддержкой конвейера (pipeline)

В данной статье говорится об особенностях разработки командной оболочки (shell) для UNIX систем. Приводятся блок-схемы работы основных алгоритмов работы командной оболочки. Подробно разбирается реализация конвейера (pipeline).

Задать вопрос