Инструменты пользователя

Инструменты сайта


igor:istoria

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:istoria [2022/04/14 23:02] – [Программирование в древние времена] igorigor:istoria [2022/05/01 18:15] (текущий) – [Программирование в средние века] igor
Строка 196: Строка 196:
 Основной недостаток Фортрана - его непригодность для решения иных задач, кроме вычислений по формулам, поэтому сейчас он имеет ограниченное применение: главным образом там, где от программы требуются учебно-демонстрационные свойства. Будучи ПЕРВЫМ В ИСТОРИИ официально принятым на вооружение языком высокого уровня, Фортран жив и сейчас (последняя ревизия стандарта была в 2008 г.). За долгие годы на нем было написано множество программ математического назначения, которые хорошо отлажены, эффективны и доступны в виде исходных текстов - без преувеличения это достояние человечества! \\ Основной недостаток Фортрана - его непригодность для решения иных задач, кроме вычислений по формулам, поэтому сейчас он имеет ограниченное применение: главным образом там, где от программы требуются учебно-демонстрационные свойства. Будучи ПЕРВЫМ В ИСТОРИИ официально принятым на вооружение языком высокого уровня, Фортран жив и сейчас (последняя ревизия стандарта была в 2008 г.). За долгие годы на нем было написано множество программ математического назначения, которые хорошо отлажены, эффективны и доступны в виде исходных текстов - без преувеличения это достояние человечества! \\
 Запись арифметических операций в виде формул привычна всем современным программистам и кажется настолько естественной, что ничего другого как будто и быть не может, а между тем альтернативные пути были, и если мы хотим быть хорошими историками, то нам никуда не деться от того, чтобы осветить и эту тему. \\ Запись арифметических операций в виде формул привычна всем современным программистам и кажется настолько естественной, что ничего другого как будто и быть не может, а между тем альтернативные пути были, и если мы хотим быть хорошими историками, то нам никуда не деться от того, чтобы осветить и эту тему. \\
-Знала ли уже знакомая нам Грейс Хоппер о разработке Фортрана? Очень возможно, что и не знала, а может быть и знала, но сомневалась в его перспективности, а может сознательно решила идти своим путем... Что мы можем утверждать с большой уверенностью: будучи по натуре глубоким ученым, создавая свой Flow-Matic, она не рассчитывала на то, что ее творение сразу овладеет умами всего человечества.  Flow-Matic стал "пробным шаром", остался практически неизвестным за пределами круга разработчиков и к нашему времени совершенно забыт. Однако его влияние на весь путь развития мирового программного искусства колоссально. Даже если бы Грейс Хоппер не создала больше ничего другого, ее вклад в это искусство превышал бы вклад любого из тех ученых и инженеров, которых мы будем вспоминать по ходу нашего исследования. \\+Знала ли уже знакомая нам Грейс Хоппер, работая в начале 1950-х годов на фирме "Ремингтон-Рэнд" над разработкой уже знакомого нам UNIVAC I, о разработке Фортрана? Очень возможно, что и не знала, а может быть и знала, но сомневалась в его перспективности, а может сознательно решила идти своим путем... Впрочем, есть еще одна гипотеза, пусть и маловероятная: она элементарно не додумалась до алгоритма трансляции формул в машинные коды, ведь полная научная теория, на основании которой такие задачи решаются, была проработана Бэкусом несколько позже, в начале 1960-х годов. Так это было или не так, но есть одна вещь, которую мы можем утверждать с большой уверенностью: будучи по натуре глубоким ученым, создавая свой Flow-Matic, она не рассчитывала на то, что ее творение сразу овладеет умами всего человечества.  Flow-Matic стал "пробным шаром", остался практически неизвестным за пределами круга разработчиков и к нашему времени совершенно забыт. Однако его влияние на весь путь развития мирового программного искусства колоссально. Даже если бы Грейс Хоппер не создала больше ничего другого, ее вклад в это искусство превышал бы вклад любого из тех ученых и инженеров, которых мы будем вспоминать по ходу нашего исследования. \\
 Во Flow-Matic арифметические операции записываются не формулами, а словесными выражениями. Примерно такими: \\ Во Flow-Matic арифметические операции записываются не формулами, а словесными выражениями. Примерно такими: \\
 <code>MULTIPLY OBJEM BY PLOTNOST GIVING VES</code> <code>MULTIPLY OBJEM BY PLOTNOST GIVING VES</code>
Строка 207: Строка 207:
 Фортран в его классическом виде - //бесструктурный// язык. Для условных переходов в нем используется запись типа: \\ Фортран в его классическом виде - //бесструктурный// язык. Для условных переходов в нем используется запись типа: \\
 <code>IF X<0 THEN GOTO 5</code> <code>IF X<0 THEN GOTO 5</code>
-где 5 - метка оператора, к которому совершается переход. И оператор GOTO, и метка, на которую он нацелен, могут находиться в любом месте программы. Это не важно, если программа не очень большая. По мере разработки сложной программы множество условных переходов может создать нешуточную путаницу. На это почти сразу после массового внедрения Фортрана обратил внимание голландец Э. Дейкстра, ставший идейным вдохновителем разработки Алгола. Решение о начале разработки Алгола было принято в мае 1958 г. на конференции в федеральном техническом университете города Цюриха. В ней, в частности, участвовали Бэкус от имени Фортрана и Джозеф Уэгстен от Кобола. Разработка шла медленнее, чем хотелось бы, а потом еще трудности возникли с внедрением... В 1962 г. состоялась новая конференция, среди участников которой были уже и Дейкстра, и Никлаус Вирт - впоследствии создатель языка Паскаль, в котором были реализованы идеи Вирта, не принятые другими участниками. В общем, единодушия на обеих конференциях не было, и неудивительно, что разработка затянулась. Так постепенно оформился язык Алгол-68. \\ +где 5 - метка оператора, к которому совершается переход. И оператор GOTO, и метка, на которую он нацелен, могут находиться в любом месте программы. Это не важно, если программа не очень большая. По мере разработки сложной программы множество условных переходов может создать нешуточную путаницу. На это почти сразу после массового внедрения Фортрана обратил внимание голландец Э. Дейкстра, ставший идейным вдохновителем разработки Алгола. Решение о начале разработки Алгола было принято в мае 1958 г. на конференции в федеральном техническом университете города Цюриха. В ней, в частности, участвовали Бэкус от имени Фортрана и Джозеф Уэгстен от Кобола. Разработка шла медленнее, чем хотелось бы, а потом еще трудности возникли с внедрением... В 1962 г. состоялась новая конференция, среди участников которой были уже и Дейкстра, и Никлаус Вирт - впоследствии (ближе к 1970 г.) создатель языка Паскаль, в котором были реализованы идеи Вирта, не принятые другими участниками. В общем, единодушия на обеих конференциях не было, и неудивительно, что разработка затянулась. Так постепенно оформился язык Алгол-68, который получил распространение на всем европейском континенте, включая СССР. В средние века Алгол-68 станет базовым языком МПВК "Эльбрус". А вот в США этот язык встретил серьезное противодействие со стороны ИБМ, которая активно продвигала свои разработки: сначала Фортран, а к концу 1960-х годов ПЛ-1. \\ 
-В Алголе, в отличие от Фортрана, меток вообще нет, а условные переходы и циклы программируются в виде //структур//, содержащих то или иное количество блоков: условный переход возможен только по правилам структуры и только в пределах "своего" блока, а "далекие" переходы, создающие наибольшую опасность путаницы, отменены вообще как класс. Это позволяет сделать программу более логичной и ясной и, как следствие, несколько уменьшить трудоемкость разработки. Вроде бы мелочь, но если структурному принципу следует множество программистов, работающих год за годом, то экономический эффект может быть весьма значительным. Во что это выльется "в тугриках", никто не считал и считать не собирается, да это и непринципиально. Для нас принципиально то, что древние люди к таким вещам относились серьезно и принимали грамотные инженерные решения, не дожидаясь подсчета прибылей и убытков. \\+В Алголе и ПЛ-1, в отличие от Фортрана, меток вообще нет, а условные переходы и циклы программируются в виде //структур//, содержащих то или иное количество блоков: условный переход возможен только по правилам структуры и только в пределах "своего" блока, а "далекие" переходы, создающие наибольшую опасность путаницы, отменены вообще как класс. Это позволяет сделать программу более логичной и ясной и, как следствие, несколько уменьшить трудоемкость разработки. Вроде бы мелочь, но если структурному принципу следует множество программистов, работающих год за годом, то экономический эффект может быть весьма значительным. Во что это выльется "в тугриках", никто не считал и считать не собирается, да это и непринципиально. Для нас принципиально то, что древние люди к таким вещам относились серьезно и принимали грамотные инженерные решения, не дожидаясь подсчета прибылей и убытков. \\
 Заметим, что при программировании на бесструктурных языках типа Фортрана нам никто не запрещает придерживаться структурного принципа (в современных версиях языка введены даже соответствующие операторы). Но на Фортране это вопрос самодисциплины. В конечном счете - вопрос культуры каждого конкретного программиста. А на Алголе этот принцип возведен в ранг обязательного, поэтому все мало-мальски современные языки, начиная со средневекового Паскаля, построены на структурном принципе и таким образом являются потомками Алгола. \\ Заметим, что при программировании на бесструктурных языках типа Фортрана нам никто не запрещает придерживаться структурного принципа (в современных версиях языка введены даже соответствующие операторы). Но на Фортране это вопрос самодисциплины. В конечном счете - вопрос культуры каждого конкретного программиста. А на Алголе этот принцип возведен в ранг обязательного, поэтому все мало-мальски современные языки, начиная со средневекового Паскаля, построены на структурном принципе и таким образом являются потомками Алгола. \\
 На смену Алголу был предложен **ПЛ-1** (PL/1, 1964 г., фирма "ИБМ" в рамках проекта IBM/360), затем появилось множество других языков. "Иных уж нет, а те далече"... \\ На смену Алголу был предложен **ПЛ-1** (PL/1, 1964 г., фирма "ИБМ" в рамках проекта IBM/360), затем появилось множество других языков. "Иных уж нет, а те далече"... \\
-Появление PL-1 поначалу было принято программистами, мягко говоря, прохладно: они думали, что теперь их заставят все прежние программы переписывать на новый язык. Однако этот психологический барьер был преодолен, и новые языки стали создаваться один за другим, как новые сорта тюльпанов. Аналогия с тюльпанами особенно уместна потому, что большинство вновь создаваемых языков не представляло собой ничего принципиально нового. \\ +Появление ПЛ-1 поначалу было принято программистами, мягко говоря, прохладно: они думали, что теперь их заставят все прежние программы переписывать на новый язык. Однако этот психологический барьер был преодолен, и новые языки стали создаваться один за другим, как новые сорта тюльпанов. Аналогия с тюльпанами особенно уместна потому, что большинство вновь создаваемых языков не представляло собой ничего принципиально нового. Вот и ПЛ-1 не стал новой ступенью эволюции по отношению к Алголу (а по каким, собственно, основаниям от него этого ожидали?) и сошел со сцены еще раньше своего прототипа. И поделом: с запозданием осознав преимущества Алгола, ИБМ, вместо того чтобы признать свою неправоту и скорректировать курс, затеяла разработку чисто конкурентного языка, не предлагавшего ничего нового в сравнении с прототипом. В средние века ИБМ повторит эту стратегическую ошибку: будет разрабатывать операционную систему ОС-2 (OS/2), которая была призвана заменить ДОС, по сути не предлагая ничего нового взамен... \\ 
-ПЛ-1, однако, не стал новой ступенью эволюции по отношению к Алголу (а по каким, собственно, основаниям от него этого ожидали?) и сошел со сцены еще раньше своего прототипа. \\ +Язык высокого уровня, в противоположность ассемблеру, всегда - математическая абстракция, описывающая некоторый "компьютер вообще". В нем нет (по крайней мере не должно быть) элементов, связанных с особенностями устройства какой-либо машины. Соответственно от программы, написанной на таком языке, мы ждем //переносимости//, или //кроссплатформенности//, т. е. возможности исполнять ее на любом компьютере, а не только на том, для которого она была изначально написана. На практике переносимость чаще всего бывает лишь частичной, т. к. не все компиляторы и не все операционные системы строго однозначно понимают все, что может быть записано в программе. Переносимость - чрезвычайно важное свойство программы, но оно не бесплатно: при написании программы на языке высокого уровня программист не может использовать тонкие возможности конкретного компьютера, так что программа выполняется медленнее и зачастую требует больше памяти, чем аналогичная программа на ассемблере. \\
-Язык высокого уровня, в противоположность ассемблеру, всегда - математическая абстракция, описывающая некоторый "компьютер вообще". В нем нет (по крайней мере не должно быть) элементов, связанных с особенностями устройства какой-либо машины. Соответственно от программы, написанной на таком языке, мы ждем //переносимости//, т. е. возможности исполнять ее на любом компьютере, а не только на том, для которого она была изначально написана. На практике переносимость чаще всего бывает лишь частичной, т. к. не все компиляторы и не все операционные системы строго однозначно понимают все, что может быть записано в программе. Переносимость - чрезвычайно важное свойство программы, но оно не бесплатно: при написании программы на языке высокого уровня программист не может использовать тонкие возможности конкретного компьютера, так что программа выполняется медленнее и зачастую требует больше памяти, чем аналогичная программа на ассемблере. \\+
 Алгол, Кобол и Фортран знаменуют собой древнекомпьютерную цивилизацию. Вот я это написал и соображаю: не забыл ли чего? Очень похоже, что не забыл. Древние люди отнюдь не стремились к разнообразию языков. Более того: они были ПРОТИВ разнообразия, потому что у них были в жизни другие приоритеты. И если мы серьезные историки, то мы просто обязаны в этих приоритетах разобраться. \\ Алгол, Кобол и Фортран знаменуют собой древнекомпьютерную цивилизацию. Вот я это написал и соображаю: не забыл ли чего? Очень похоже, что не забыл. Древние люди отнюдь не стремились к разнообразию языков. Более того: они были ПРОТИВ разнообразия, потому что у них были в жизни другие приоритеты. И если мы серьезные историки, то мы просто обязаны в этих приоритетах разобраться. \\
 Во-первых, поскольку основные пользователи Фортрана - ученые, то Фортран для них - инструмент научного познания. В науке ни одно достижение не утверждается само собой: оно требует обсуждения, обоснования, доказательств. Соответственно программа должна быть написана так, чтобы была понятна коллегам-ученым. А поскольку большинство коллег - не профессиональные программисты (да еще и инглиш в школе не все хорошо учили, да и не всем его хорошо преподавали), изучение множества языков для них было бы совершенно непопутно. Нужен такой язык, чтобы один на всех, язык как средство международного общения. Фортран, будучи предельно простым для изучения (в сравнении с другими языками), этому требованию удовлетворял. \\ Во-первых, поскольку основные пользователи Фортрана - ученые, то Фортран для них - инструмент научного познания. В науке ни одно достижение не утверждается само собой: оно требует обсуждения, обоснования, доказательств. Соответственно программа должна быть написана так, чтобы была понятна коллегам-ученым. А поскольку большинство коллег - не профессиональные программисты (да еще и инглиш в школе не все хорошо учили, да и не всем его хорошо преподавали), изучение множества языков для них было бы совершенно непопутно. Нужен такой язык, чтобы один на всех, язык как средство международного общения. Фортран, будучи предельно простым для изучения (в сравнении с другими языками), этому требованию удовлетворял. \\
Строка 289: Строка 288:
 {{igor:korabli_-_s189_-_scvm_klejster.jpg?400}} \\ {{igor:korabli_-_s189_-_scvm_klejster.jpg?400}} \\
 На этой лодке эта машина неродная: она датируется концом 1970-х годов, тогда как сама лодка построена в 1950-е. По сути "Клейстер-Н" - это калькулятор, предназначенный в основном для штурманских вычислений. "Клейстер" - ближайший родственник 15-ВСМ-5, о которой мы уже говорили. \\ На этой лодке эта машина неродная: она датируется концом 1970-х годов, тогда как сама лодка построена в 1950-е. По сути "Клейстер-Н" - это калькулятор, предназначенный в основном для штурманских вычислений. "Клейстер" - ближайший родственник 15-ВСМ-5, о которой мы уже говорили. \\
-В 70-е годы в нашей стране построена серия ракетных крейсеров проекта 1164 (в интернете чаще всего можно встретить "Москву" - бывшую "Славу"). На этих кораблях был установлен централизованный вычислительный комплекс, который у моряков получил название БИУС - боевая информационно-управляющая система. "Сердцем" БИУС является ЦВМ "Атака" (строилась серийно на НПО "Агат" в 1976-1990 г., построено 255 шт.). БИУС могла решать несколько десятков типовых задач: как по управлению кораблем, так и по наведению оружия. Круг задач, которые должны были решаться на этой машине, был четко оговорен к началу ее проектирования, поэтому создатели БИУС "заточили" свое изделие под эти задачи, трезво сознавая, что попытка приспособить машину для решения "неродных" задач может оказаться неудачной. Компьютер, проектируемый по такому принципу, называется //специализированным//. Для древней эпохи такие компьютеры были совершенно нехарактерны, а средневековье отмечено их появлением и развитием. С тех давних времен и до наших дней бортовые компьютеры на кораблях и самолетах - всегда специализированные, хотя в наше время они на 3/4 и более собираются из деталей от универсальных компьютеров. \\+В 70-е годы в нашей стране построена серия ракетных крейсеров проекта 1164 (в интернете чаще всего можно встретить "Москву" - бывшую "Славу", увы, погибшую 14 апреля 2022 г.). На этих кораблях был установлен централизованный вычислительный комплекс, который у моряков получил название БИУС - боевая информационно-управляющая система. "Сердцем" БИУС является ЦВМ "Атака" (строилась серийно на НПО "Агат" в 1976-1990 г., построено 255 шт.). БИУС могла решать несколько десятков типовых задач: как по управлению кораблем, так и по наведению оружия. Круг задач, которые должны были решаться на этой машине, был четко оговорен к началу ее проектирования, поэтому создатели БИУС "заточили" свое изделие под эти задачи, трезво сознавая, что попытка приспособить машину для решения "неродных" задач может оказаться неудачной. Компьютер, проектируемый по такому принципу, называется //специализированным//. Для древней эпохи такие компьютеры были совершенно нехарактерны, а средневековье отмечено их появлением и развитием. С тех давних времен и до наших дней бортовые компьютеры на кораблях и самолетах - всегда специализированные, хотя в наше время они на 3/4 и более собираются из деталей от универсальных компьютеров. \\
 Семейство корабельных ЭВМ "Карат" еще даже более интересно, чем "Атака". Разработка была начата еще в 1963 г. в Киевском НИИ радиоэлектроники, но шла небыстро, т. к. требование создать максимально компактную, экономичную и при этом быстродействующую машину было на пределе того, что позволяла тогдашняя элементная база. "Карат" остается едва ли не единственным представителем ЭВМ на больших гибридных микросхемах (нечто похожее было в первых американских IBM/360, но сейчас уже трудно сказать, насколько они были сходны или различны). Машины были 24-разрядные с фиксированной запятой и имели весьма высокое для своего времени быстродействие: позднейшие представители семейства достигали 2.5 миллионов операций в секунду. \\ Семейство корабельных ЭВМ "Карат" еще даже более интересно, чем "Атака". Разработка была начата еще в 1963 г. в Киевском НИИ радиоэлектроники, но шла небыстро, т. к. требование создать максимально компактную, экономичную и при этом быстродействующую машину было на пределе того, что позволяла тогдашняя элементная база. "Карат" остается едва ли не единственным представителем ЭВМ на больших гибридных микросхемах (нечто похожее было в первых американских IBM/360, но сейчас уже трудно сказать, насколько они были сходны или различны). Машины были 24-разрядные с фиксированной запятой и имели весьма высокое для своего времени быстродействие: позднейшие представители семейства достигали 2.5 миллионов операций в секунду. \\
 Характерная черта средневековых бортовых компьютеров - их программное обеспечение. Операционной системы как таковой в них нет. Вместо ОС может быть небольшая программа - диспетчер, функции которой сводятся к запуску прикладных программ на выполнение по команде пользователя. Все программы, нужные для работы, не хранятся на перфокартах и т. п., а записываются в постоянное запоминающее устройство (ПЗУ), емкость которого (так уж по жизни сложилось) обычно в 4..16 раз больше емкости ОЗУ. Ни редакторов, ни компиляторов, ни линковщиков на таких компьютерах не бывает, так что разработка программ может производиться только на //инструментальной машине//, также как для нынешних микроконтроллеров. Средневековые ПЗУ выполнялись на ферритовых сердечниках, и установка новой программы выполнялась вручную путем продевания длинного тонкого провода в отверстия сердечников. Внешне эта работа напоминала шитьё, и с тех пор для этой операции закрепился термин "прошивка". В наше время соответствующая работа производится чисто электрическими методами, легко и быстро, а в то время это была очень трудоемкая работа, и возможна она была только в заводских условиях. \\ Характерная черта средневековых бортовых компьютеров - их программное обеспечение. Операционной системы как таковой в них нет. Вместо ОС может быть небольшая программа - диспетчер, функции которой сводятся к запуску прикладных программ на выполнение по команде пользователя. Все программы, нужные для работы, не хранятся на перфокартах и т. п., а записываются в постоянное запоминающее устройство (ПЗУ), емкость которого (так уж по жизни сложилось) обычно в 4..16 раз больше емкости ОЗУ. Ни редакторов, ни компиляторов, ни линковщиков на таких компьютерах не бывает, так что разработка программ может производиться только на //инструментальной машине//, также как для нынешних микроконтроллеров. Средневековые ПЗУ выполнялись на ферритовых сердечниках, и установка новой программы выполнялась вручную путем продевания длинного тонкого провода в отверстия сердечников. Внешне эта работа напоминала шитьё, и с тех пор для этой операции закрепился термин "прошивка". В наше время соответствующая работа производится чисто электрическими методами, легко и быстро, а в то время это была очень трудоемкая работа, и возможна она была только в заводских условиях. \\
Строка 340: Строка 339:
 Следующей работой Н. Вирта стал язык **Модула-2**, в котором Вирт воплотил идею модульного программирования: весь "багаж", наработанный программистами, предлагалось разделить на модули, каждый из которых содержит "тематическую подборку" процедур и функций, а при написании новой программы просто указывать, какую процедуру (функцию) из какого модуля использовать. Идея модульного программирования чрезвычайно полезна, но внедрять ее в один какой-то язык, а тем более создавать новый язык специально ради этого, - это оказалось ошибкой. Такие полезные фичи целесообразно создавать вне привязки к какому-либо языку, операционной системе и т. д. Таким образом, язык Модула-2 не представлял собой ничего революционного по сравнению с Паскалем, и неудивительно, что он не получил большого признания.\\ Следующей работой Н. Вирта стал язык **Модула-2**, в котором Вирт воплотил идею модульного программирования: весь "багаж", наработанный программистами, предлагалось разделить на модули, каждый из которых содержит "тематическую подборку" процедур и функций, а при написании новой программы просто указывать, какую процедуру (функцию) из какого модуля использовать. Идея модульного программирования чрезвычайно полезна, но внедрять ее в один какой-то язык, а тем более создавать новый язык специально ради этого, - это оказалось ошибкой. Такие полезные фичи целесообразно создавать вне привязки к какому-либо языку, операционной системе и т. д. Таким образом, язык Модула-2 не представлял собой ничего революционного по сравнению с Паскалем, и неудивительно, что он не получил большого признания.\\
 Паскаль - не единственный потомок Алгола: даже если считать только мало-мальски жизнеспособные, то все равно получится довольно много. Остановлюсь на языке **Ада**. Он был создан в 1979-1980 годах в США и сразу стал стандартным языком в Пентагоне и НАСА. Предполагалось, что он станет общемировым, но этого не произошло: даже в гражданских ведомствах США он не нашел признания. В России этот язык практически неизвестен, хотя книжка (переводная с английского, разумеется) мне в руки попадалась. \\ Паскаль - не единственный потомок Алгола: даже если считать только мало-мальски жизнеспособные, то все равно получится довольно много. Остановлюсь на языке **Ада**. Он был создан в 1979-1980 годах в США и сразу стал стандартным языком в Пентагоне и НАСА. Предполагалось, что он станет общемировым, но этого не произошло: даже в гражданских ведомствах США он не нашел признания. В России этот язык практически неизвестен, хотя книжка (переводная с английского, разумеется) мне в руки попадалась. \\
 +Языки, которые мы рассмотрели выше, назовем **классическими языками высокого уровня**. При всех внешних различиях они имеют много общего. Во-первых, они вписываются в категорический императив программирования и, соответственно, обеспечивают максимально возможную (максимально технически достижимую!) скорость выполнения операций. По этому параметру они лишь ненамного уступают языкам ассемблера. Во-вторых, эти языки создавались не с бухты-барахты, а по итогам серьезных научных изысканий. Язык Ада знаменует
 +собой закат эпохи классических языков. Конечно, потом будет еще микропроцессорно-микроконтроллерный язык ST, который и по внешнему виду, и по техническим параметрам безусловно принадлежит к классическим. И языки командных оболочек UNIX-подобных операционных систем тоже могут быть отнесены к классическим, пусть и с некоторыми оговорками. Но после Ады в эволюции языков начался большой поворот, который, похоже, не завершился и до настоящего времени. \\
 Сейчас я хочу акцентировать внимание читателя вот на чем: и Вирт, и Дейкстра, и Грейс Хоппер были учеными отнюдь не шуточного уровня, и их коллеги из Пентагона, НАСА и "ИБМ" тоже были не лыком шиты. Новые языки они придумывали не с бухты-барахты, а по итогам тщательного осмысления опыта эксплуатации языков-прототипов, от которых они отталкивались. Научная мысль обладает свойством воспроизводимости: мало-мальски глубокий специалист, не читавший научных трудов Вирта, может восстановить ход его мыслей, просто сравнивая Паскаль с Алголом. С другими языками ситуация в основном аналогична, но в совершенно иных обстоятельствах родился **язык C (Си)**. \\ Сейчас я хочу акцентировать внимание читателя вот на чем: и Вирт, и Дейкстра, и Грейс Хоппер были учеными отнюдь не шуточного уровня, и их коллеги из Пентагона, НАСА и "ИБМ" тоже были не лыком шиты. Новые языки они придумывали не с бухты-барахты, а по итогам тщательного осмысления опыта эксплуатации языков-прототипов, от которых они отталкивались. Научная мысль обладает свойством воспроизводимости: мало-мальски глубокий специалист, не читавший научных трудов Вирта, может восстановить ход его мыслей, просто сравнивая Паскаль с Алголом. С другими языками ситуация в основном аналогична, но в совершенно иных обстоятельствах родился **язык C (Си)**. \\
 Ходит легенда, что этот язык был создан на основе более старого языка B (Би), но с последним произошло именно то, о чем мы говорили в самом начале нашего исследования: от него не осталось никаких следов (да пОлно, был ли он вообще?). Зато при мало-мальски тщательном рассмотрении очевидно сходство языка Си с другим древним языком, который хотя и выведен уже давно из эксплуатации, но специалистам все же известен - я имею в виду Алгол. Однако, рассматривая различия между Си и Алголом, мы едва ли сможем понять логику людей, создававших Си (особенно если допустить, что они были знакомы с Паскалем, что вообще-то не факт). \\ Ходит легенда, что этот язык был создан на основе более старого языка B (Би), но с последним произошло именно то, о чем мы говорили в самом начале нашего исследования: от него не осталось никаких следов (да пОлно, был ли он вообще?). Зато при мало-мальски тщательном рассмотрении очевидно сходство языка Си с другим древним языком, который хотя и выведен уже давно из эксплуатации, но специалистам все же известен - я имею в виду Алгол. Однако, рассматривая различия между Си и Алголом, мы едва ли сможем понять логику людей, создававших Си (особенно если допустить, что они были знакомы с Паскалем, что вообще-то не факт). \\
igor/istoria.1649966530.txt.bz2 · Последнее изменение: 2022/04/14 23:02 — igor