Файл: История развития программирования в России (Становления кибернетики в советский период).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 111

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В это же время началось издание научно-популярной литературы. В 1958 году в издательстве «Советское радио» выходит перевод книги Н. Винера «Кибернетика, или Управление и связь в животном и машине».

Развивались системы автоматизации производства и АСУ ТП. В 1958 году на базе Лаборатории управляющих машин и систем (ЛУМС) АН СССР был организован Институт электронных управляющих машин (ИНЭУМ) АН СССР в числе задач которого была и разработка систем управления производством в целом. В том же 1958 году началась разработка управляющих машины «Днепр» и УМ-1НХ, предназначенных для управления технологическими процессами.

1.2 Развитие программирования в 60-70 годы

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов языков программирования. Смысл появления такого языка — упрощение программного кода.

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

Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу «одна инструкция - одна строка».

Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей - последовательность перепада напряжения, то есть машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей.

Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программы на данном языке - очень длинные последовательности единиц и нулей являются машинно зависимыми, то есть для каждой ЭВМ необходимо было составлять свою программу, а так же программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.


Довольно скоро стало понятно, что процесс формирования машинного кода можно автоматизировать. Уже в 1950 году для записи программ начали применять мнемонический язык - язык assembly. Язык ассемблера позволил представить машинный код в более удобной для человека форме: для обозначения команд и объектов, над которыми эти команды выполняются, вместо двоичных кодов использовались буквы или сокращенные слова, которые отражали суть команды. Например, на языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010.

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

Но сложность разработки в нём больших программных комплексов привела к появлению языков третьего поколения — языков высокого уровня. Но на этом применение ассемблера не закончилась, он пользуется популярностью в узких кругах и по сей день. Сейчас его используют в написании отдельных фрагментов программ или иногда в написании самих программ. Примеров может быть много, но самые яркие это использование ассемблера в написании драйверов, игр и загрузчиков ОС. Не стоит забывать, что у хакеров этот язык так же пользуется популярностью, в связи с тем, что скорость работы полученной программы значительно выше скорости программы написанной на языке программирования высокого уровня. Это объясняется тем, что получившийся размер программы очень мал. Разработчики антивирусов так же используют ассемблер в некоторых модулях своих программ, что так же обеспечивает их быстродействие.

Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей - последовательность перепада напряжения, то есть машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей.


Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программы на данном языке - очень длинные последовательности единиц и нулей являются машинно зависимыми, то есть для каждой ЭВМ необходимо было составлять свою программу, а так же программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.

Довольно скоро стало понятно, что процесс формирования машинного кода можно автоматизировать. Уже в 1950 году для записи программ начали применять мнемонический язык - язык assembly. Язык ассемблера позволил представить машинный код в более удобной для человека форме: для обозначения команд и объектов, над которыми эти команды выполняются, вместо двоичных кодов использовались буквы или сокращенные слова, которые отражали суть команды. Например, на языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010.

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

Но сложность разработки в нём больших программных комплексов привела к появлению языков третьего поколения - языков высокого уровня. Но на этом применение ассемблера не закончилась, он пользуется популярностью в узких кругах и по сей день. Сейчас его используют в написании отдельных фрагментов программ или иногда в написании самих программ. Примеров может быть много, но самые яркие это использование ассемблера в написании драйверов, игр и загрузчиков ОС. Не стоит забывать, что у хакеров этот язык так же пользуется популярностью, в связи с тем, что скорость работы полученной программы значительно выше скорости программы написанной на языке программирования высокого уровня. Это объясняется тем, что получившийся размер программы очень мал. Разработчики антивирусов так же используют ассемблер в некоторых модулях своих программ, что так же обеспечивает их быстродействие.


В 60-х годах 20 века программирование развивалось благодаря комитетам. В 70-х ситуация кардинально изменилась – теперь новые языки придумывали небольшие группы людей. Это произошло благодаря доступности компьютера – теперь заполучить ЭВМ мог буквально любой человек. Именно в 70-х берёт своё начало история языков Pascal и C.

Dartmouth BASIC

Но прежде всего 70-е в программировании ознаменовались подъёмом BASIC. Он был создан в 60-х Джоном Кемени и Томасом Курцем в Дартмутском колледже в США, и должен был выполнить две основные функции:

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

Сделать программирование общедоступным курсом.

Однако мгновенного отклика BASIC не нашёл. Комитеты, отвечавшие за разработку Фортрана, Алгола и Кобола, преследовали совершенно иные цели, а потому на высших уровнях до образовательного языка долгое время не было никакого дела. В первой версии BASIC было несколько ограничений:

Оперировать можно было только функциями LET, PRINT, END, FOR, NEXT, GOTO, IF THEN, DEF, READ, DATA, DIM, GOSUB, RETURN и REM.

Не было различия между целыми и действительными числами.

Имя переменной было ограничено одной буквой или одной буквой и цифрой.

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

Первые массовые ПК имели не более 4 Кбайта памяти, позднее - 16 Кбайт. В определённой степени это было возвращение на 20 лет назад, ведь компиляторы языка высокого уровня занимали сотни килобайт, поэтому часто приходилось работать с машинными командами и кодами. Но было одно исключение - BASIC.

Поскольку он предназначался как учебный язык, для мини-ПК было создано множество реализаций, основанных на интерпретаторе и компиляторе. Так BASIC стало можно запустить на машинах с ограничением памяти в 8-16 Кбайт. Именно поэтому BASIC быстро стал естественным выбором для любого, кому нужен был язык высокого уровня для ПК того времени.

Altair-8800. ПК, который изменил мир.

Первым совместным проектом Пола Аллена и Билла Гейтса был как раз интерпретатор BASIC для PDP 8 (мини-ПК). Они учились в средней школе, когда свет увидел компьютер Altair из MITS. Юные изобретатели увидели в этом уникальную возможность, урезали свой интерпретатор до 4 Кбайт так, чтобы он позволял системе запустить небольшую программу.

Билл Гейтс утверждает, что им потребовалось три с половиной недели, чтобы подготовить первую версию и около восьми недель, чтобы отполировать ее. Чтобы вы лучше представляли, как сложно уместить интерпретатор в 4 Кбайт: им пришлось урезать традиционное READY до OK, чтобы выиграть три байта памяти.


Продукт получил название «4K BASIC» - первая версия Microsoft BASIC. Было много других реализаций языка для Altair и не только - Tiny BASIC Ли Чен Вана, TRS-80 BASIC Стива Лэйнинера, EBASIC и CBASIC Гордона Эубэнкса, 6800 BASIC Роберта Уиттеркика, целая серия интерпретаторов BASIC для Apple от Стива Возняка. Но именно Microsoft BASIC Билла Гейтса оказал наибольшее влияние на программирование и ПО в целом.

Всё дело в его деловой хватке и даре убеждения - даже японцы купили Microsoft BASIC. Вишенкой на торте стало включение детища Гейтса и Аллена в IBM PC. Microsoft продолжала разрабатывать BASIC вплоть до 90-х годов, а окончательной версией стал Quick BASIC - полностью структурированный язык, который сохранил свою простоту и понятность.

Так как BASIC достаточно долго шёл к мировой известности, многие учёные продолжали создавать образовательные языки. Никлаус Вирт руководствовался теми же идеями, что и Кемени с Курцем. Он хотел создать язык, пригодный для обучения информатике в школах и вузах, при этом он должен был работать на мини-ПК и быть походим на один из комитетских языков.

Взяв за основу Algol, в 1972 году Вирт создал язык Pascal, названный в честь французского математика XVII века Блеза Паскаля. Упрощение коснулось не только синтаксиса, но и компиляции. Например, функции и процедуры должны быть определены в начале программы, это позволяло использовать однопроходный компилятор.

Pascal стал очередной революцией в программировании.

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

Именно так до бытового уровня дошла идея использования виртуальной машины – концепции программирования, которая особенно прославится в конце века благодаря языку Java и машине JVM.

Точкой же взлёта Pascal стало появление UCSD Pascal. Кеннет Боулс создал не просто ещё один компилятор, но и операционную систему с утилитами в пи-коде. Система UCSD появилась в 1976 году, а статья в журнале Byte в следующем году принесла ей известность и востребованность на рынке ПК. Популярность была такой большой, что USCD была представлена на презентации очередного IBM PC как альтернативная ОС.

Войны BASIC и Pascal

Неудивительно, что всё это привело к настоящей битве за доминирование между BASIC и Pascal. В каком-то роде это было продолжение противостояния из прошлого десятилетия – Algol против Fortran или Cobol. Однако, если тогда это было просто идеологическое противостояние на уровне комитетов, теперь появилась новая реальная сила – мнение простых людей. И уже тогда было понятно, что именно здесь лежит будущее программирования.