Файл: История развития программирования в России(Теоретические аспекты программирования, его история).pdf
Добавлен: 17.05.2023
Просмотров: 100
Скачиваний: 2
СОДЕРЖАНИЕ
1.1. Сущность и роль программирования в современном мире
1.2. Становление дисциплины программирования в России
1.3. История языков программирования: 1970-е
2. Особенности программирования в России на современном этапе
2.1. Сравнительный анализ системных программ первых ЭВМ в СССР
2.2. Российская индустрия программирования
Всё дело в его деловой хватке и даре убеждения – даже японцы купили Microsoft BASIC. Вишенкой на торте стало включение детища Гейтса и Аллена в IBM PC. Microsoft продолжала разрабатывать BASIC вплоть до 90-х годов, а окончательной версией стал Quick BASIC – полностью структурированный язык, который сохранил свою простоту и понятность [4, с. 130].
Pascal. Так как BASIC достаточно долго шёл к мировой известности, многие учёные продолжали создавать образовательные языки. Никлаус Вирт руководствовался теми же идеями, что и Кемени с Курцем. Он хотел создать язык, пригодный для обучения информатике в школах и вузах, при этом он должен был работать на мини-ПК и быть походим на один из комитетских языков.
Взяв за основу Algol, в 1972 году Вирт создал язык Pascal, названный в честь французского математика XVII века Блеза Паскаля. Упрощение коснулось не только синтаксиса, но и компиляции. Например, функции и процедуры должны быть определены в начале программы, это позволяло использовать однопроходный компилятор [5, с. 214].
Pascal стал очередной революцией в программировании.
Несмотря на критику, Pascal был очень быстро принят компьютерным сообществом. Причиной стал умный способ сделать его доступным для большинства машин без необходимости писать для каждой компиляторы с нуля. Вирт создал компилятор, который переводил код Pascal в пи-код (язык ассемблера). Далее всё, что нужно было сделать для работы на конечном устройстве – написать простой интерпретатор пи-кода, что намного проще, чем каждый раз писать компилятор Pascal [9, с. 142].
Именно так до бытового уровня дошла идея использования виртуальной машины – концепции программирования, которая особенно прославится в конце века благодаря языку Java и машине JVM.
Точкой же взлёта Pascal стало появление UCSD Pascal. Кеннет Боулс создал не просто ещё один компилятор, но и операционную систему с утилитами в пи-коде. Система UCSD появилась в 1976 году, а статья в журнале Byte в следующем году принесла ей известность и востребованность на рынке ПК. Популярность была такой большой, что USCD была представлена на презентации очередного IBM PC как альтернативная ОС [5, с. 216].
Войны BASIC и Pascal. Неудивительно, что всё это привело к настоящей битве за доминирование между BASIC и Pascal. В каком-то роде это было продолжение противостояния из прошлого десятилетия – Algol против Fortran или Cobol. Однако, если тогда это было просто идеологическое противостояние на уровне комитетов, теперь появилась новая реальная сила – мнение простых людей. И уже тогда было понятно, что именно здесь лежит будущее программирования.
Основная битва за доминирование между Pascal и BASIC развернётся в следующем десятилетии, и приведёт к созданию почти совершенных диалектов этих языков qBasic и Turbo Pascal. Именно им будут обучать в российских школах, именно их многие из нас заложат в фундамент программистского образования [4, с. 132].
В пользу BASIC была поддержка крупных корпораций. Он по умолчанию использовался на всех известных ПК. Однако здесь был и скрыт аргумент в пользу Pascal – скорость. При нехватке памяти ПК BASIC запускался через интерпретатор, который работает медленнее компилятора. Таким образом, возник миф, что Pascal быстрее, хотя непосредственно к языкам эта версия не имеет никакого отношения [21, с. 177].
C. Пока BASIC и Pascal боролись за умы начинающих программистов, многие корпорации были озабочены разработкой мощного универсального языка высокого уровня, который бы был производительнее и удобнее тех, над которыми трудились комитеты. Больше всего в этом преуспела компания Bell Labs – именно здесь увидели свет операционная система Unix и язык программирования C.
Одним из недостатков существующих популярных компьютерных языков была их ограниченность. Например, если вы хотели написать операционную систему, сначала приходилось иметь дело с низкоуровневыми функциями аппаратного обеспечения, и лишь заложив фундамент, можно было перейти к программированию на языке высокого уровня [21, с. 179].
В результате в Великобритании появились сначала системный язык CPL, а потом его урезанный младший брат – BCPL (базовый CPL). Его слава добралась до другой стороны Атлантики, где Кен Томпсон, сотрудник Bell Labs, выпустил еще более упрощённую версию BCPL – B. В то время Unix разрабатывался на ассемблере, поэтому B стал настоящим панацеей для компании [15, с. 35].
Позднее Деннис Ритчи переработал некоторые идеи Томпсона, и создал C (просто следующая буква алфавита). Язык сочетал в себе функции низкого уровня со структурой Algol. Таким образом, вначале C получил известность как структурированный язык ассемблера [4, с. 135].
Самым ярким доказательством качества языка являлось то, что основная часть Unix, кроме небольшого ядра, была полностью переписана на C. Именно так, рука об руку, язык и ОС Unix существовали первые годы. Но слава распространялась, и в конечном итоге С начал использоваться в других операционных системах, и как итог – получил славу языка общего назначения.
Тем не менее, 70-е годы – это лишь время, когда было посажено семя С. Настоящий успех язык обрёл в следующем десятилетии. Такой, о каком создатели могли только мечтать [5, с. 220].
Комитетские языки. Для Fortran и Cobol 70-е годы были временем перезапуска. Первый в 77 версии обзавёлся строковым типом, освоил блочную конструкцию if-else, расширил возможности по работе с файлами. Cobol-74 стал более статичным и ещё больше расширил синтаксис в угоду финансовым структурам.
А вот для Algol десятилетие выдалось плохим. В США к концу 70-х его почти вытеснил Pascal, его спасала лишь востребованность среди европейских и советских разработчиков, которые очень настороженно относились к новым языкам [5, с. 221].
В СССР лишь в 1978 году появляется первый стандарт на комитетский язык – им стал Фортран. Разумеется, речь шла о базисном языке, а не его свежем диалекте. ГОСТ на Алгол-68 вышел спустя 10 лет, и, если вы его откроете, то узнаете причину задержки – синтаксис языка был полностью переведён на русский язык. Именно поэтому сложилось впечатление, что Фортран в СССР был больше востребован. На самом деле так было только в образовании. В науке и обороне Алгол был востребован ничуть не меньше [21, с. 182].
Итак, в 1970-х в программировании наконец возникла главная движущая сила – мнение простых людей. Они уже не просто пользовались деятельностью «больших» учёных, любой желающий мог создать свой язык, написать компилятор или интерпретатор. Кто-то благодаря этому обрёл вечную славу, а кто-то построил миллиардную империю. Для того, чтобы сделать следующий качественный скачок, необходимо было вновь изменить подход к программированию, увеличив возможности и усложнив структуру. Совсем скоро в моду войдёт объектно-ориентированное программирование. Но об этом в следующей части.
2. Особенности программирования в России на современном этапе
2.1. Сравнительный анализ системных программ первых ЭВМ в СССР
В исторической литературе много информации о технике первых компьютеров и людях их создававших, а о программах, какие работали на них, написано значительно меньше. К тому же компьютеры и программы в первые годы использования были в работе в основном у военных и засекречены. К тому же описания программных работ того времени в каждой стране отдельные. А между западными странами и СССР в то время был «железный занавес» мешающий контактам, в том числе научным. Поэтому сравнительных работ почти нет, а историки техники редко разбираются в особенностях работы первых компьютеров [19, с. 368].
Современным специалистам трудно представить программирование начального периода. Поэтому, цель работы рассмотреть сравнительный прогресс системного программного обеспечения первых компьютеров.
70 лет назад в 6 ноября 1950 года в СССР был запущен первый компьютер, называемый модель МЭСМ.
Это была 16 разрядная 3х адресная машина на примерно 3000 электронных лампах, а та МЭСМ которая была принята в эксплуатацию позже (25 декабря 1951 года) была 26-разрядная 3х адресная машина на примерно 6000 электронных лампах. Это были машины с хранимой программой и были «полными то Тьюрингу» (Turing complete) [19, с. 368].
Однако они не были машинами по фон Нейману, так как не имели выделенной не регистровой оперативной памяти. Макет МЭСМ в 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), Манчестерский университетский компьютер [19, с. 369]
Британская АСЕ сразу имел перфокарточный ввод, однако в связи с не стандартно расположенными пробивками, можно считать, что программировался с перфокарт, но в двоичном формате. Еще до ее запуска была разработана библиотека подпрограмм десятично-двоичных преобразований и работы с числами с плавающей точкой.
Программа АСЕ –VII (1947г.) выглядела так:
1101001101110111011100001110110110101101010101
1001101101110111011100001110110110101100010111 [19, с. 369]
А вот на компьютерах MADM и EDSAC, которые были запущены на полтора года раньше советской «модель МЭСМ», британские программисты осуществили несколько научных переворотов. Первый переворот в системном программировании совершил А. Тьюринг (A. Turing). Он стал осуществлять загрузку в память программы с перфоленты 5 битными латинскими символами, с помощью специальной программы загрузки. Эту загрузку он продемонстрировал уже в октябре 1948 года на компьютере SSEM. Однако для MADM это было доработано к апрелю 1949 года.
При загрузке 5 битной ленты получалась более компактная запись, по сравнению с двоичной и восьмеричной. И как Тьюринг считал, лучше читается и запоминается. Было даже мнемоническое слово для лучшего запоминания каждого символа команды из 31 команды MADM. Такой стиль записи можно назвать первым символьным языком программирования, назывался «AbbreviationInstructioncode».
Например, три команды MADM, прочитать, сложить и записать я память результат, выглядело на бланке программы и распечатке на телетайпе так [19, с. 370]:
Н//0 М/@DD/@@
Также с перфоленты загружалась специальная библиотека системных функций. После загрузки с помощью библиотеки можно было преобразовать нужные данные в рабочей программе в двоичный вид. После преобразования-трансляции можно было выгрузить готовую рабочую программу на перфоленту. Это системное программное обеспечение было названо SchemeA.
Она состояла из резидентного монитора и служебных программ.
В ее функции входило:
Загрузка программ а память (O, K)
Редактирование ячеек памяти (J)
Преобразование 10х чисел в 2-е (“)
Выполнение команды (X) Например: Х//L — запустить с адреса 0.
Выгрузка данных из памяти (T, Q)
Выполнять команды можно было как с перфоленты, так и клавиатуры телетайпа (с октября 1948г.) [19, с. 370].
М. Уилкс (M. Wilkes), руководитель проекта EDSAC, переняв, по возможности, одно адресную структуру Манчестерского компьютера, посчитал представление программы А.Тьюринга очень неудобным, тем более что из-за отсутствия переключений регистров у Тьюринга среди символов отсутствовали цифры. Уилкс попросил конструктора EDSAC Ренвика (B. Renwick) сделать код команды более мнемоническим, чем у MADM.
В месте с программистом Уиллером (D. Wheeler) было разработано июне 1949 года системное обеспечение Initorder, которое сразу и загружало более понятную текстовую программу и преобразовывало в двоичный вид нужные цифры.
Как утверждал Уилкс, это более понятно и студентам, и аспирантам. Сложение с записью выглядело так [12, с. 162];