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

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


igor:istoria

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:istoria [2022/04/15 22:50] – [Программирование в древние времена] igorigor:istoria [2022/05/01 18:15] (текущий) – [Программирование в средние века] igor
Строка 288: Строка 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 раз больше емкости ОЗУ. Ни редакторов, ни компиляторов, ни линковщиков на таких компьютерах не бывает, так что разработка программ может производиться только на //инструментальной машине//, также как для нынешних микроконтроллеров. Средневековые ПЗУ выполнялись на ферритовых сердечниках, и установка новой программы выполнялась вручную путем продевания длинного тонкого провода в отверстия сердечников. Внешне эта работа напоминала шитьё, и с тех пор для этой операции закрепился термин "прошивка". В наше время соответствующая работа производится чисто электрическими методами, легко и быстро, а в то время это была очень трудоемкая работа, и возможна она была только в заводских условиях. \\
Строка 339: Строка 339:
 Следующей работой Н. Вирта стал язык **Модула-2**, в котором Вирт воплотил идею модульного программирования: весь "багаж", наработанный программистами, предлагалось разделить на модули, каждый из которых содержит "тематическую подборку" процедур и функций, а при написании новой программы просто указывать, какую процедуру (функцию) из какого модуля использовать. Идея модульного программирования чрезвычайно полезна, но внедрять ее в один какой-то язык, а тем более создавать новый язык специально ради этого, - это оказалось ошибкой. Такие полезные фичи целесообразно создавать вне привязки к какому-либо языку, операционной системе и т. д. Таким образом, язык Модула-2 не представлял собой ничего революционного по сравнению с Паскалем, и неудивительно, что он не получил большого признания.\\ Следующей работой Н. Вирта стал язык **Модула-2**, в котором Вирт воплотил идею модульного программирования: весь "багаж", наработанный программистами, предлагалось разделить на модули, каждый из которых содержит "тематическую подборку" процедур и функций, а при написании новой программы просто указывать, какую процедуру (функцию) из какого модуля использовать. Идея модульного программирования чрезвычайно полезна, но внедрять ее в один какой-то язык, а тем более создавать новый язык специально ради этого, - это оказалось ошибкой. Такие полезные фичи целесообразно создавать вне привязки к какому-либо языку, операционной системе и т. д. Таким образом, язык Модула-2 не представлял собой ничего революционного по сравнению с Паскалем, и неудивительно, что он не получил большого признания.\\
 Паскаль - не единственный потомок Алгола: даже если считать только мало-мальски жизнеспособные, то все равно получится довольно много. Остановлюсь на языке **Ада**. Он был создан в 1979-1980 годах в США и сразу стал стандартным языком в Пентагоне и НАСА. Предполагалось, что он станет общемировым, но этого не произошло: даже в гражданских ведомствах США он не нашел признания. В России этот язык практически неизвестен, хотя книжка (переводная с английского, разумеется) мне в руки попадалась. \\ Паскаль - не единственный потомок Алгола: даже если считать только мало-мальски жизнеспособные, то все равно получится довольно много. Остановлюсь на языке **Ада**. Он был создан в 1979-1980 годах в США и сразу стал стандартным языком в Пентагоне и НАСА. Предполагалось, что он станет общемировым, но этого не произошло: даже в гражданских ведомствах США он не нашел признания. В России этот язык практически неизвестен, хотя книжка (переводная с английского, разумеется) мне в руки попадалась. \\
 +Языки, которые мы рассмотрели выше, назовем **классическими языками высокого уровня**. При всех внешних различиях они имеют много общего. Во-первых, они вписываются в категорический императив программирования и, соответственно, обеспечивают максимально возможную (максимально технически достижимую!) скорость выполнения операций. По этому параметру они лишь ненамного уступают языкам ассемблера. Во-вторых, эти языки создавались не с бухты-барахты, а по итогам серьезных научных изысканий. Язык Ада знаменует
 +собой закат эпохи классических языков. Конечно, потом будет еще микропроцессорно-микроконтроллерный язык ST, который и по внешнему виду, и по техническим параметрам безусловно принадлежит к классическим. И языки командных оболочек UNIX-подобных операционных систем тоже могут быть отнесены к классическим, пусть и с некоторыми оговорками. Но после Ады в эволюции языков начался большой поворот, который, похоже, не завершился и до настоящего времени. \\
 Сейчас я хочу акцентировать внимание читателя вот на чем: и Вирт, и Дейкстра, и Грейс Хоппер были учеными отнюдь не шуточного уровня, и их коллеги из Пентагона, НАСА и "ИБМ" тоже были не лыком шиты. Новые языки они придумывали не с бухты-барахты, а по итогам тщательного осмысления опыта эксплуатации языков-прототипов, от которых они отталкивались. Научная мысль обладает свойством воспроизводимости: мало-мальски глубокий специалист, не читавший научных трудов Вирта, может восстановить ход его мыслей, просто сравнивая Паскаль с Алголом. С другими языками ситуация в основном аналогична, но в совершенно иных обстоятельствах родился **язык C (Си)**. \\ Сейчас я хочу акцентировать внимание читателя вот на чем: и Вирт, и Дейкстра, и Грейс Хоппер были учеными отнюдь не шуточного уровня, и их коллеги из Пентагона, НАСА и "ИБМ" тоже были не лыком шиты. Новые языки они придумывали не с бухты-барахты, а по итогам тщательного осмысления опыта эксплуатации языков-прототипов, от которых они отталкивались. Научная мысль обладает свойством воспроизводимости: мало-мальски глубокий специалист, не читавший научных трудов Вирта, может восстановить ход его мыслей, просто сравнивая Паскаль с Алголом. С другими языками ситуация в основном аналогична, но в совершенно иных обстоятельствах родился **язык C (Си)**. \\
 Ходит легенда, что этот язык был создан на основе более старого языка B (Би), но с последним произошло именно то, о чем мы говорили в самом начале нашего исследования: от него не осталось никаких следов (да пОлно, был ли он вообще?). Зато при мало-мальски тщательном рассмотрении очевидно сходство языка Си с другим древним языком, который хотя и выведен уже давно из эксплуатации, но специалистам все же известен - я имею в виду Алгол. Однако, рассматривая различия между Си и Алголом, мы едва ли сможем понять логику людей, создававших Си (особенно если допустить, что они были знакомы с Паскалем, что вообще-то не факт). \\ Ходит легенда, что этот язык был создан на основе более старого языка B (Би), но с последним произошло именно то, о чем мы говорили в самом начале нашего исследования: от него не осталось никаких следов (да пОлно, был ли он вообще?). Зато при мало-мальски тщательном рассмотрении очевидно сходство языка Си с другим древним языком, который хотя и выведен уже давно из эксплуатации, но специалистам все же известен - я имею в виду Алгол. Однако, рассматривая различия между Си и Алголом, мы едва ли сможем понять логику людей, создававших Си (особенно если допустить, что они были знакомы с Паскалем, что вообще-то не факт). \\
igor/istoria.1650052253.txt.bz2 · Последнее изменение: 2022/04/15 22:50 — igor