СОСТАВЛЕНИЕ SIMULA

ЯН РУНЕ ХОЛМЕВИК

Copyright (C) 1993, 94, 95, 96, 97, 98.

Эта статья первоначально появилась в: Jan Rune Holmevik. Обучение машине: изучение истории вычислительной техники и конструирования языков программирования SIMULA . Тронхейм: отчет STS 22/94.1994.

Печатную версию книги, в которой изначально появилась эта статья, можно заказать у

Центр технологий и общества

Университет Тронхейма

N-7055 Драгволл, Норвегия

E-mail: karhei@sts.ntnu.no

Язык программирования SIMULA был разработан и создан Оле-Йоханом Далем и Кристеном Нигардом в Норвежском вычислительном центре (NCC) в Осло в период с 1962 по 1967 год. [1] Он был изначально спроектирован и реализован как язык для моделирования дискретных событий, но был позже расширен и переопределен как полнофункциональный язык программирования общего назначения.Хотя SIMULA никогда не использовался широко, язык оказал большое влияние на современную методологию программирования. Среди прочего, SIMULA представила важные концепции объектно-ориентированного программирования, такие как классы и объекты, наследование и динамическое связывание.

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

Как показал историк технологии Томас Хьюз в своих замечательных исследованиях Эдисона и других, технологи в своей работе часто уделяют мало внимания общепринятым категориям знаний или профессиональным границам. [2] Он отмечает, что для достижения своих целей они часто выходят за пределы того, что обычно считается техническим или научным, и что они обычно объединяют вопросы, обычно называемые техническими, научными, социальными, экономическими или политическими. Таким образом, для Хьюза технологи являются разнородными профессионалами, и их взаимодействие с более широким социально-техническим контекстом, с которым они связывают свою работу, становится главным предметом интереса. Его главный аргумент, по сути, заключается в том, что нельзя полностью понять сложные процессы технологических и научных изменений, если не признать, что технологи, решающие проблемы, рассматривают все аналитические категории, перечисленные выше, как объединение в единую целостную среду, составляющую единую сеть. , чтобы использовать собственную терминологию Хьюза. В соответствии с этим он призывает нас «следовать за действующими лицами» и искать объяснения технологических и научных изменений, выходящих за рамки узкого внутреннего описания технического развития. [3]

Как показано в этой главе, создание SIMULA действительно было усилием, которое требовало высокой степени гетерогенной инженерии со стороны двух руководителей, Дала и Найгаарда. Основная часть главы посвящена обсуждению того, как язык был построен и реализован. В соответствии с тем, что было сказано выше, в анализе предпринята попытка включить социально-технический подход к истории, и, таким образом, некоторые «нетехнические» аспекты проекта рассматриваются более подробно. В заключительных разделах приводится краткий обзор некоторых наиболее значительных реализаций SIMULA, появившихся в 1970-х годах, а также комментарий об участии NCC в SIMULA в этот период.

 

 Потягивая нити вместе

С тех пор, как Кристен Найгаард впервые начала работать с исследованиями операций еще в 1952 году, она постоянно интересовалась способами концептуализации сложных систем реального мира. Одной из основных проблем, с которыми он столкнулся в этом стремлении, было то, как описать неоднородность системы и ее работу. В 1950-х годах моделирование таких систем обычно осуществлялось с помощью символьных обозначений, то есть блок-схем, сопровождаемых изложением правил, управляющих работой системы. [4] Моделирование по методу Монте-Карло оказалось полезным инструментом для анализа этих моделей, и когда в конце лета 1957 года в NDRE была установлена ​​Ferranti MERCURY, Nygaard и его команда немедленно начали писать программы компьютерного моделирования.

Как я указывал в предыдущих главах, в конце 1950-х годов распространилась новая схема компьютерного программирования, известная как языки программирования высокого уровня. Благодаря Яну Гарвику, NDRE получили преимущество в этой области, и, хотя Кристен Найгаард не принимала непосредственного участия в этой области работы, он был хорошо знаком с принципами языков программирования. Воодушевленный многообещающими перспективами компьютерного моделирования, Найгаард вскоре начал задумываться о том, как он может формализовать процедуры описания систем таким образом, чтобы компьютер мог легко обрабатывать стандартизированные концепции. Учитывая его опыт работы в NDRE, идея создания языка программирования не кажется слишком удивительной, и с точки зрения технических концепций в 1961 году начал формироваться фрагментарный и довольно расплывчатый набор идей. В январе 1962 года Нигаард написал своему коллеге, французскому специалисту по исследованию операций Шарлю Зальцману:

Статус языка моделирования (компилятор Монте-Карло) таков, что у меня есть достаточно четкие идеи о том, как описывать системы массового обслуживания, и я разработал концепции, которые, как мне кажется, позволяют достаточно легко описать большие классы ситуаций. Я полагаю, что эти результаты представляют некоторый интерес даже изолированно от компилятора, поскольку используемые в настоящее время способы описания таких систем не очень удовлетворительны. […] Работа над компилятором не могла быть начата до того, как язык был достаточно хорошо разработан, но этот этап, похоже, уже достигнут. Опытный программист, который заинтересован в этой части работы, встретится со мной завтра. Он был довольно оптимистичен во время наших предыдущих встреч. [5]

Как видно из этого письма, SIMULA с самого начала задумывалось как описание системы и язык программирования, поэтому для ее построения потребуются навыки системного мышления и программирования. Несмотря на то, что Найгаард имел некоторый опыт работы с компьютерным программированием в NDRE до того, как он был назначен на исследование операций в 1952 году, у него не было достаточного опыта или знаний, чтобы самостоятельно выполнить такую ​​обширную задачу, как эта. Он был вынужден нанимать специалистов по программированию извне, и лучшим союзником, которого он мог найти, помимо Гарвика, был его старый знакомый из NDRE, Оле-Йохан Даль. Весной 1962 года Нюгаард и Даль присоединились к ряду дискуссий, в результате которых в мае 1962 года было принято первое официальное предложение по языку.

 

 

SIMULA на IFIP 62

Чтобы лучше понять аргументацию Найгаарда на данном этапе, полезно немного предвидеть ход событий, изучая, как появился язык, когда он впервые был представлен публике осенью 1962 года. Поводом стала вторая международная конференция по обработке информации. состоялся в Мюнхене, Германия, в конце августа того же года. Во введении к своей статье, озаглавленной «SIMULA – Расширение ALGOL к описанию сетей с дискретными событиями», Найгаард объяснил обоснование SIMULA следующим образом:

Для исследователей в области эксплуатации и других, изучающих сетевые системы, существует определенная потребность в точном языке, который позволяет описать сеть в терминах стандартизированных и общепринятых концепций. Такое описание должно заставить научного сотрудника рассмотреть все соответствующие аспекты сети. SIMULA – SIMUlation LAnguage – представляет собой попытку удовлетворить эту потребность в отношении сетей с дискретными событиями, то есть когда поток может рассматриваться как состоящий из дискретных блоков, требующих обслуживания в дискретных элементах обслуживания, и входящих и выходящих из элементы в определенные моменты [так] времени. Примерами таких систем являются системы учета билетов, производственные линии, производство в программах разработки, нейронные системы и параллельная обработка программ на компьютерах. [6]

Ранний подход к SIMULA, как свидетельствует приведенная выше цитата, основывался на понятии математически сформулированной концепции сети, состоящей из активных станций, обслуживающих поток пассивных клиентов. Как показано на рисунке 7, эти станции состояли из части очереди и части обслуживания, а действия, связанные с частью обслуживания, были описаны последовательностью формализованных операторов. Клиенты не обладали подобными правилами работы, но вместо этого были описаны через последовательность переменных, называемых характеристиками. Предполагалось, что клиент будет создан сервисной частью данной станции, затем переведен в очередь другой станции, а затем в сервисную часть этой станции. Здесь клиент был «обслужен», а затем передан на следующую станцию ​​в сети, и так далее, пока он, в конечном счете, не исчез из-за того, что больше не передавался. Действия, предпринимаемые станциями, рассматривались как мгновенные, происходящие в отдельные моменты времени, и, соответственно, этот класс систем назывался сетями дискретных событий. [7]

Рисунок 7. Станция в сети дискретных событий.

Намерение было построить язык вокруг общей математической структуры. Таким образом, решающим вопросом на этом этапе было то, должны ли они создавать свою языковую структуру с нуля или, скорее, адаптировать свои концепции к уже существующей. Даль и Найгаард рано решили, что если SIMULA станет настоящим языком программирования, а не просто академическим «бумажным языком», им придется объединить усилия с одним из доминирующих языков программирования. В начале 60-х ALGOL 60 [8] был ведущим языком программирования в Европе. Элегантные и мощные концепции этого языка привлекли Даля и Найгара и сделали его, по их мнению, идеальным выбором для SIMULA. [9] Решающее решение о соединении SIMULA с ALGOL 60 было принято весной 1962 года, и впоследствии оно оказалось огромной силой и серьезным препятствием. Я вернусь к этим техническим вопросам позже, но пока давайте просто установим, что ALGOL 60 стал решающим техническим оплотом для проекта SIMULA.

 

Новые мужчины

Для того чтобы понять, как SIMULA выросла из набора бессмысленных идей в голове Найгаарда в рабочий язык программирования, важно знать кое-что об окружающей среде, в которой происходила эта разработка. Как мы видели в предыдущей главе, в то время как NDRE в 1950-х годах зарекомендовал себя как ведущая норвежская среда в области информатики, NCC в значительной степени находился в стороне в этой области. С 1954 года основной задачей вычислительного центра была работа NUSSE, но когда в 1957 году в Норвегию приехал гораздо более мощный Ferranti MERCURY, эта машина вскоре устарела. В 1958 году NCC было поручено управлять компьютером DEUCE Центрального бюро статистики, и, как упоминалось в главе 3, это привело к реорганизации вычислительного центра. Согласно ежегодному отчету NTNF за 1958/1959 гг., Новый мандат NCC состоял в том, чтобы работать в области применения вычислительной техники, выполнять функции контрактного института вычислительной техники и выполнять числовые и статистические вычисления для государственных учреждений и промышленности. [10]

Приблизительно в 1960 году стало очевидно, что NCC не в состоянии выполнить эти обязательства. Объем работы быстро увеличивался, тогда как использование DEUCE не соответствовало ожиданиям.Одной из причин этих проблем был глубокий недостаток квалифицированных кадров. [11] Другая причина возникла из-за многочисленных технических проблем с самой машиной, а третья – из-за того, что DEUCE была чрезвычайно сложной для программирования машиной. Акцент на простой машине привел к более сложному кодированию, чем тот, который использовался на любом другом компьютере того времени, и, учитывая масштабы проблем, которые NCC должен был решить, это создало огромные трудности для его сотрудников программистов.

Вскоре заинтересованным сторонам стало очевидно, что что-то необходимо сделать, и в качестве первого шага по укреплению НКС его совет решил весной 1960 года пересмотреть цели Центра, придав ему более исследовательский характер. Как уже упоминалось, к концу 1950-х годов Кристен Найгаард находила работу в NDRE все труднее, и поэтому, когда NCC в мае 1960 года предложила ему новую должность, он с энтузиазмом принял ее. В соответствии с намерениями NCC, его новым заданием было главным образом создать отдел исследования гражданских операций. Для этого он привел с собой шесть членов своей предыдущей группы по исследованию операций из NDRE.

Для NDRE это изначально стало серьезным ударом, так как большое количество специалистов по исследованию операций внезапно исчезло. Однако под руководством Эрика Клиппенберга остатки группы в NDRE вскоре реорганизовались и перешли в системный анализ. В конечном итоге это событие привело к гораздо более серьезным последствиям для научно-исследовательской деятельности института в области информатики. Когда Нюгаард и его группа ушли в 1960 году, Оле-Йохан Даль постепенно стал ассоциироваться с проектом SIMULA в NCC, а Ян Гарвик позже переехал в США, большая часть опыта, накопленного в NDRE, исчезла. Результатом этого стало то, что NCC в 1960-х годах занял лидирующее положение в области информатики в Норвегии. [12]

Участие DEUCE серьезно повлияло на способность NCC исполнять свои поручения, и к 1961 году стало ясно, что это оказало решающее негативное влияние на финансовое доверие Центра. Заметные финансовые недостатки были зафиксированы как в 1959 г., так и в 1960 г. [13], и перспективы на 1961 г. не указывают на какое-либо немедленное улучшение. Это, прежде всего, продемонстрировало необходимость высококвалифицированного и профессионального персонала, и в этом отношении внедрение исследования операций в 1960 году вскоре стало шагом в правильном направлении. Кроме того, он также выявил глубокую потребность NCC в новом компьютере, который улучшит способность института выполнять свой мандат.

 

 Компьютерный вопрос

Событие, которое, в конечном итоге, вытолкнуло проект SIMULA из бумаги, произошло в 1962 году и, в конечном итоге, также стало решением компьютерных проблем NCC.

В апреле 1961 года NCC получила неофициальное предложение от Датского вычислительного центра в Копенгагене относительно возможного будущего сотрудничества. [14] В то время у директора вычислительного центра Нилса Ивара Бека были идеи для большой сети скандинавских вычислительных центров, называемой Скандинавской электронной системой. Согласно датскому предложению, NCC может в течение нескольких лет стать частью этой сети и в краткосрочной перспективе выиграет от такого сотрудничества несколькими способами. С точки зрения NTNF и совета директоров NCC, предложение Дании, казалось, предлагало идеальное решение наиболее насущных проблем NCC, и после нескольких предварительных встреч в 1961 году были установлены неформальные отношения между двумя вычислительными центрами.

С точки зрения Нюгаарда, было негласно понято, что, когда ему и директору NCC Бьёрну Орджансену было поручено составить отчет о неотложных компьютерных потребностях NCC, они должны были в заключение порекомендовать GIER из Датского вычислительного центра. [15] GIER был признанным компьютером среднего размера, но, по мнению Нюгаарда и Орджансена, он не был идеальным решением для насущных потребностей NCC и для долгосрочной выгоды норвежской информатики. Им нужен был настоящий мэйнфрейм, такой как KDF-9 от English Electric. Тем не менее, этот компьютер был в то время далеко за пределами финансовой досягаемости NCC, и, следовательно, они согласились на GIER. Основываясь на выводах из отчета Нюгаарда и Орьянсена, NTNF в феврале 1962 года решил, что NCC должен заказать GIER из Дании, и выделил 2 миллиона. NOK. ($ 280 112) для этой цели. [16]

Примерно такова была ситуация, когда еще один важный участник, подразделение Univac корпорации Sperry Rand, вышел на сцену ближе к концу мая 1962 года. В связи с маркетингом своих совершенно новых компьютеров UNIVAC III и UNIVAC 1107, компания организовала Представительский тур в США для потенциальных европейских клиентов. Кристен Найгаард была приглашена к участию от имени NCC. [17]

Теперь, на этом этапе, давайте кратко изложим состояние проекта SIMULA. Как упоминалось ранее, концепция SIMULA к маю 1962 года достигла состояния полураспада, и Даль и Найгаард почувствовали, что теперь у них есть презентабельная языковая концепция. Предварительная основа была сделана, и пришло время искать финансовые ресурсы. Как сообщили Dahl и Nygaard в 1981 году, [18] не было первоначального энтузиазма по поводу SIMULA в среде NCC, т. Е. Кроме ценной моральной поддержки, оказанной советом NCC. По их мнению, основное возражение заключалось в том, что такой язык программирования, как SIMULA, бесполезен, и, если случайно, такой язык уже существует. Кроме того, было заявлено, что их идеи не были достаточно хорошими, и что им в целом не хватало компетенции, необходимой для осуществления такого масштабного проекта, который по этим причинам никогда не будет завершен. Наконец, было заявлено, что такого рода работу не следует выполнять в небольших странах, таких как Норвегия. Из этих заявлений должно быть очевидно, что получение финансовой поддержки от Исследовательского совета действительно будет сложной и затяжной задачей.

К счастью, существовали и другие варианты, и в попытке отменить коммерческую миссию Univac Кристен Найгаард решила представить SIMULA американцам. Как только партия прибыла в Нью-Йорк, он связался с представителем Univac Europe Джеймсом У. Никитасом и подарил ему SIMULA и другой программный проект NCC по линейному программированию. [19] Никитас посчитал идеи Найгаарда интересными и согласился организовать встречу с несколькими влиятельными представителями отдела программного обеспечения Univac. На этой встрече также присутствовал Роберт Бемер, ранее работавший в IBM, а ныне директор Univac по системному программированию. Бемер напоминает, что:

Именно после того, как я начал работать с UNIVAC, я встретил Кристен Нигард из Норвежского вычислительного центра в Осло. Он рассказал мне о своем проекте SIMULA. Мой годовой бюджет на системное программирование в то время составлял около 8 млн. Долларов США, так как там было около 325 человек. Доктор Рэйдер посоветовал мне, чтобы 5% этих денег были на мое усмотрение, чтобы делать то, что, как я думал, принесет пользу UNIVAC больше всего! Случилось так, что я организовывал и возглавлял сессию на конференции IFIP в Мюнхене в августе этого года, к которой проект Найгаарда был близок. Я пригласил его дать доклад на этой сессии. Это заинтересовало меня, и я хотел SIMULA для репертуара программного обеспечения 1107 (ALGOL также был в репертуаре, чего я никогда не смог бы добиться в IBM, но в UNIVAC я запускал шоу!). [20]

Бемер все время был присяжным поклонником ALGOL 60 и, слушая, как Нюгаард объясняет свои идеи относительно языка моделирования на основе ALGOL, он все больше и больше убеждался в том, что современные средства моделирования SIMULA значительно выиграют в ALGOL 60 в его борьбе с FORTRAN. [21] К концу встречи Бемер объявил, что он будет председательствовать на сессии на Всемирном конгрессе IFIP 62 в Мюнхене, и что он очень хотел провести презентацию SIMULA по этому случаю. Nygaard немедленно принял это предложение, поскольку он понял значение такой возможности. [22]Представление SIMULA на конференции IFIP, прежде всего, означало важный шаг к консолидации языковых концепций. Кроме того, он предложил подходящие условия для внедрения SIMULA и одновременно предоставил Далу и Найгаарду важную информацию для выдающегося сообщества компьютерных профессионалов.

Несмотря на то, что Кристен Найгаард сумела привлечь профессиональное внимание к SIMULA, жизненно важный вопрос финансовой поддержки все еще не решен. В этот момент, однако, Univac начал двигаться. В связи с маркетингом UNIVAC 1107, компания нуждалась в демонстрационной площадке в Европе как можно скорее. В связи с этим Кристен Найгаард, должно быть, произвела большое впечатление на людей Univac и действительно смогла убедить их в профессиональных качествах NCC, потому что по возвращении в Норвегию Никитас обратился к нему с неофициальным предложением Univac создать этот демонстрационный участок в NCC. , Сделка заключалась в том, что демонстрационный сайт должен служить рекламным целям Univac, и NCC получит 50% скидку на возможную покупку. Однако в обмен на это щедрое предложение Univac хотела, чтобы NCC предоставила им SIMULA и реализацию системы линейного программирования, разработанной Sverre Spurkland. [23]

 

 Новый и мощный союзник

Когда появился Univac, условия для проекта SIMULA значительно изменились. Как уже объяснялось ранее, перспективы получения грантов в системе NTNF были вовсе не многообещающими. Теперь неожиданно возникла новая ситуация. По своей инициативе Univac изменил условия, связав разработку SIMULA с приобретением компьютеров NCC. Стоит отметить, что в то время Univac знал, что NCC уже заказала компьютер GIER из Дании. [24] В связи с этим их инициативу следует понимать как попытку подорвать приказ GIER, предложив NCC лучший контракт. Однако их стратегия была намного более тонкой, чем эта. В дополнение к благоприятным экономическим условиям, это также подразумевало внутреннее сотрудничество. Заявляя о реализации SIMULA и LP Package в обмен на их компьютерное предложение, они явно стремились привлечь Кристен Найгаард в качестве своего союзника и сотрудника в Норвегии.

С точки зрения Nygaard, инициатива Univac, должно быть, действительно имела привлекательный звук. Прежде всего потому, что UNIVAC 1107 обеспечит гораздо лучшую среду, в том числе с точки зрения вычислительной мощности, для разработки компилятора SIMULA, чем GIER. Даже сегодня высокоточное моделирование и симуляция по методу Монте-Карло являются задачами с высокой загрузкой процессора, где трехчасовые работы суперкомпьютера не являются редкостью. [25] Другим аспектом, который также должен был привлечь Nygaard, была заметная маркетинговая позиция Univac и всемирная дистрибьюторская сеть. Связанный с таким мощным компьютером, как 1107, SIMULA будет выпущен на мировой рынок в качестве стандартного программного обеспечения в масштабе, которого NCC никогда бы не достиг. [26] Тем не менее, наиболее важным аспектом, вероятно, была перспектива того, что НКЦ возьмет на себя расходы на разработку, связанные с проектом SIMULA.

В более широком контексте ряд других элементов, возможно, также повлиял на рассуждения Найгаарда. Здесь, однако, мы остановимся на, пожалуй, самом важном, который также в значительной степени был связан с усилиями SIMULA. Из предыдущего должно быть очевидно, что Кристен Найгаард была довольно амбициозным человеком, и что его профессиональные устремления были в значительной степени связаны с положением NCC как исследовательского центра в области информатики. В этом отношении он, должно быть, оценил возможности получения компьютера, подобного 1107, в начале шестидесятых среди самых совершенных решений в области высокотехнологичных компьютерных технологий, как предоставленную Богом возможность укрепить норвежскую информатику и, несомненно, его собственный профессиональный престиж. одновременно. В любом случае, было очевидно, что Univac станет грозным оплотом для проекта SIMULA, и что у Кристен Найгаард и Univac есть общие интересы в этом случае, хотя они преследовали разные цели.

 

 Переговоры о сделке Univac / SIMULA

Вернувшись в Норвегию, Миссия Найгаарда состояла, соответственно, в том, чтобы узнать мнение о предложении Univac в NCC и в NTNF. Поскольку Исследовательский совет уже заказал компьютер GIER из Дании, усилия должны были быть направлены на преобразование их интересов в этом случае. К середине лета 1962 года Лутар Харр, директор Univac Europe, Стиг Уоллстам, директор Univac Scandinavia и Джеймс Никитас приехали в Норвегию, чтобы объявить о своем официальном предложении. В связи с этим члены правления НКС вместе с несколькими влиятельными людьми в Научном совете были вызваны на встречу с представителями Univac. На этой встрече Univac выступил с предложением, которое означало, что NCC может приобрести 1107 с 50-процентной скидкой или приблизительно 7,1 млн. Долл. США. NOK. (991400 $). [27]

Однако в ходе обсуждений представители Univac поняли, что конфигурация компьютера слишком велика и, следовательно, слишком дорога. Поэтому, пытаясь сделать его более привлекательным для норвежцев, они впоследствии решили расширить свое предложение. В ходе последующих обсуждений они показали, что будут готовы предложить NCC контракт на программное обеспечение для SIMULA и LP Package. Это неожиданное предложение, казалось бы, импровизированная попытка соблазнить NCC и, в частности, Кристен Найгаард, было фактически тузом, которого они прятали все время, пытаясь получить SIMULA бесплатно. Полезно напомнить, что в то время глава системного программирования Univac Роберт Бемер имел годовой бюджет около 8 миллионов долларов. из которых он мог потратить до 5 процентов дискреционных денег на любой проект, который он нашел стоящим. Поскольку проект SIMULA, по его мнению, очень стоил сделать, он уже разрешил необходимое финансирование проекта.[28] Свидетельство устойчивого интереса Univac к SIMULA можно найти в письме Univac Кристен Нигард от 23 октября 1964 года:

«Основная причина нашего интереса к SIMULA заключается в том, что мы хотим создать мощные возможности моделирования систем для нашего собственного использования здесь, в Сент-Пол. Мы оценивали альтернативные подходы, и ваш материал [отчеты о ходе работы и спецификации по SIMULA] изучается со значительным интересом “ [29]

Эта новая инициатива подразумевает более тесную связь между судьбой SIMULA и результатами торговой миссии Univac, и для Кристен Найгаард это, несомненно, стало важным стимулом для дальнейшего взаимодействия.

 

 Большая рыба

Своими предпринимательскими маневрами Найгаард разбудил одну из действительно крупных рыб норвежской исследовательской системы, а именно своего бывшего босса из NDRE, Финна Лиеда. Будучи директором NDRE, председателем правления IFA, членом рабочего комитета NTNF и имея прочные контакты на высшем уровне в Министерстве финансов и Министерстве промышленности, Лид был человеком, обладающим значительной властью и влиянием в норвежской научной политике и он совсем не относился с легкостью к инициативе Найгаарда по UNIVAC.

Уже в сентябре 1960 года IFA и NDRE впервые начали изучать вопрос о приобретении нового компьютера для замены Ferranti MERCURY. Утверждалось, что для того, чтобы сохранить передовые позиции в области НИОКР в области высоких технологий, необходимо, чтобы оба института имели в своем распоряжении самую мощную и современную вычислительную технику. В феврале 1962 года дело было передано в министерство финансов, но вскоре выяснилось, что дела идут не так гладко, как хотелось бы. В мае того же года Лид написал своему коллеге Карлу Холбергу, который в то время представлял NDRE в Совете по обработке данных в государственном управлении: [30]

Приобретение [компьютера] сейчас вступило в очень критическую фазу с самыми большими трудностями в Министерстве промышленности. Подробности в устной форме. Мне пришлось обратиться к двум государственным секретарям в устной и письменной форме. Я уступил во всех аспектах, кроме самого необходимого. Это, на мой взгляд, необходимо, так как дело сейчас стоит. Я частично передал дело в руки (ваши) Совета. [31] [Мой перевод]

По мере развития этих трудностей на горизонте собирались все более темные облака. Кристен Найгаард вернулась из Штатов с исключительно выгодным предложением от Univac, и Исследовательский совет, по-видимому, проглотил приманку.

В июле рабочий комитет NTNF решил обсудить вопрос 1107, и Кристен Найгаард получила поручение составить отчет по этому вопросу. Предложение Univac было в силе до 1 октября 1962 года, и Nygaard очень хорошо понял, что поставлено на карту. Он должен был действовать быстро. В то время как Лид и другие, которые могли вмешиваться, отсутствовали во время летних каникул, он составил отчет, в котором говорилось, что NTNF должен приобрести UNIVAC 1107. Он утверждал, что потребности в вычислительной мощности в исследованиях, государственных учреждениях, частной торговле и различных отраслях промышленности были быстро растет, и что компьютер, подобный 1107, действительно будет служить как нынешним, так и будущим потребностям. [32] Другим преимуществом было то, что предложение Univac составляло приблизительно 2,5 млн. Норвежских крон. ($ 350 140) меньше, чем котировки конкурентов (IBM и English Electric). [33]

Для Lied инициатива NIVAAC в Nygaard значительно усложнила планы приобретения компьютеров IFA / NDRE. Министр финансов Петтер Дж. Бьерве полагал, что один мэйнфреймский компьютер должен быть полностью задействован до того, как будет приобретен следующий. Это означало, что если планы Nygaard и NCC будут реализованы на данном этапе, это может означать значительную задержку для собственных планов NDRE / IFA.

Дело UNIVAC было рассмотрено рабочим комитетом NTNF на заседаниях, состоявшихся 21 августа и 12 сентября 1963 года. Члены комитета в целом поддержали выводы, содержащиеся в отчете Nygaard, за исключением директора NDRE, Финна Лиеда. Лиед отметил, что было бы прискорбно, если бы NCC расширила свой штат, наняв опыт из других аналогичных учреждений. Он также был обеспокоен тем, что приобретение большого и дорогого компьютера, такого как 1107, поставит под угрозу шансы NDRE на приобретение аналогичного компьютера в ближайшем будущем. [34] Однако, несмотря на его беспокойство, Лид не решил выступать в этом деле. Одна из причин, по которой он воздерживался от вмешательства в планы NCC, заключалась в том, что гранты для компьютера IFA / NDRE в этот момент казались надежными. [35] Намерение Nygaard и NCC состояло в том, чтобы профинансировать 60 процентов оборудования за счет частных займов, и, таким образом, их приобретение компьютеров не будет напрямую мешать переговорам IFA / NDRE с Министерством финансов и Министерством промышленности.

Когда контракт между NTNF и Univac был подписан 24 октября 1962 года, программные системы для сопровождения компьютера еще не были готовы. Тем не менее, Univac заверил NTNF в штрафной оговорке в контракте, что эти системы будут доступны вовремя для доставки. Первоначальная дата поставки была назначена на март 1963 года, но по разным причинам позднее была отложена. Когда в конце концов компьютер появился, в августе 1963 года стало очевидно, что предоставленные программные системы не соответствуют стандартам, обещанным Univac. Эта ситуация значительно не улучшилась, и к марту 1964 года NCC накопила претензию к Univac на сумму около 1,8 млн. NOK (250 000 долларов США). Однако прогресс был достигнут, и в июне 1964 года NCC, наконец, сочла ситуацию с программным обеспечением удовлетворительной. К тому времени постоянные претензии NCC к Univac стали существенными, и важные люди в организации Univac оказались в крайне неловком положении.Таким образом, чтобы поддерживать дружеские отношения с Univac и избежать ненужных «головокружительных» действий в этой компании, NCC согласилась принять обновление конфигурации оборудования вместо оплаты наличными. Короче говоря, это означало, что NCC получил очень мощную конфигурацию компьютера на чрезвычайно выгодных условиях. [36] В августе 1963 года UNIVAC 1107 прибыл в Осло. После нескольких недель сборки и тестирования компьютер наконец заработал, примерно через четыре месяца после графика.

 

 Департамент специальных проектов

Проект SIMULA наконец-то, похоже, уже начался. Жизненно важный финансовый вопрос был наконец решен, и технические предпосылки довольно хорошо прояснены. Тем не менее, несмотря на эти многообещающие условия, пройдет еще год, прежде чем разработка SIMULA действительно начнется. Причина этой, казалось бы, неожиданной задержки отчасти техническая, отчасти политическая, и ясно показывает, как наука и исследования в значительной степени зависят от внешних предпосылок.

С тех пор, как предложение Univac было впервые известно NTNF в июне 1962 года, они подчеркивали тот факт, что участие, связанное с такими крупными инвестициями, обязательно будет означать, что основная часть доступных ресурсов NCC должна быть строго направлена ​​на деловую сторону деятельности института. [37]Поскольку НКЦ в основном работали на основе возмещения расходов, это означало, что мероприятиям, составляющим источники дохода, необходимо было уделять первоочередное внимание. В этом отношении можно утверждать, что UNIVAC 1107 представлял собой обоюдоострый меч, по крайней мере, в том, что касается фундаментальных исследований. Трудно установить, как именно эта ситуация могла повлиять на развитие SIMULA, поскольку этот проект финансировался Univac. Очевидно, однако, что сражение 1107 ограничило исследовательскую широту в целом и уступило место профессиональному профилю, который, по крайней мере, в некоторой степени напоминал ситуацию до 1960 года. Для Кристен Найгаард, которая в декабре 1962 года была назначена директором NCC исследования, этот взгляд, должно быть, был очень тревожным,и ему, очевидно, было трудно согласиться с тем, что исследования должны быть перенесены в «маленький угол».[38]

И поэтому, пытаясь найти компромисс между этими расходящимися интересами и в то же время создать более подходящую, эффективную и динамичную организацию, совет решил реструктурировать весь институт, разделив его на несколько независимых департаментов. В соответствии с решением совета от 11 декабря 1962 года эти новые департаменты должны были участвовать в работе практических комиссий, а также в прикладных исследованиях по конкретным целевым областям в рамках мандата NCC. [39]Проект SIMULA, однако, представлял небольшую проблему в отношении этой новой организационной структуры. Поскольку разработка программного обеспечения ранее не была неотъемлемой частью деятельности NCC и, кроме того, требовала высококвалифицированной профессиональной экспертизы, выяснить, к какому отделу она фактически принадлежала, было довольно сложно. Это был, так сказать, тревожный элемент, нанесенный NCC в результате предпринимательской деятельности Кристен Найгаард в связи с сделкой UNIVAC.

Конфликт интересов также должен был иметь важное значение с точки зрения другой причины, по которой совет директоров реорганизовал институт. Когда NTNF решил перейти на UNIVAC 1107, это, как мы видели, подразумевало, что нужно было придавать большее значение экономике. Эта ответственность была в первую очередь возложена на директора NCC Бьорна Орьянсена, но также и на остальных сотрудников. Как уже указывалось, Кристен Найгаард не совсем разделяла это мнение, и, соответственно, он делал все возможное, чтобы не допустить сокращения фундаментальных исследований из-за ограниченных ресурсов. Деятельность Nygaard в этом отношении создала для администрации NCC сложнейшую административную ситуацию, и по разным причинам в NCC возникли ненадежные социальные условия. Конфликт достиг кульминации в марте 1963 года, когда три сотрудника были уволены за, среди прочего,заговор против Орьянсена и Нюгаарда. Поскольку политика, связанная с этими событиями, была довольно сложной, я не буду здесь обсуждать дальше. Однако в результате этого кризиса Бьерн Орьянсен решил уйти в отставку со своего поста директора NCC и был освобожден Лейфом К. Олауссеном в декабре 1963 года. Для Кристен Найгаард тяжелая нагрузка, вызванная условиями труда после кризиса, привела к в отпуск по болезни осенью 1963 года. Эта сложная ситуация, должно быть, также способствовала замедлению развития SIMULA.Для Кристен Нюгаард тяжелая нагрузка, вызванная условиями труда после кризиса, привела к отпуску по болезни осенью 1963 года. Эта сложная ситуация также должна была способствовать замедлению развития SIMULA.Для Кристен Нюгаард тяжелая нагрузка, вызванная условиями труда после кризиса, привела к отпуску по болезни осенью 1963 года. Эта сложная ситуация также должна была способствовать замедлению развития SIMULA.

Поэтому, возможно, было необходимо, чтобы Правление впоследствии решило создать Департамент по специальным проектам и назначить Найгаарда директором по исследованиям. Новый департамент должен сосредоточиться на важных проблемах в рамках мандата NCC, такого характера, чтобы ни один из других департаментов не смог адекватно их решить. В качестве примеров такого рода деятельности совет выдвигает: разработку программного обеспечения, исследования в новых областях применения компьютеров, специальные проекты, связанные с развитием профессионального профиля NCC, связи с общественностью и консультационные услуги для важных клиентов. Как мы видим, можно легко утверждать, что это была «игровая площадка», специально предназначенная для Кристен Найгаард. Таким образом, они могли бы занять его,и помешать ему вмешиваться в административные вопросы, и одновременно предоставить подходящий форум для разработки программного обеспечения.[40] Департамент специальных проектов стал прецедентом для разработки программного обеспечения в NCC, что, несомненно, имело значение для более поздних проектов SIMULA.

 

 SIMULA – язык программирования и описания систем дискретных событий

Давайте теперь вернемся к техническим вопросам. [41] Когда Кристен Найгаард и Оле-Йохан Даль начинали весной 1962 года, у них был довольно смутный набор идей для языка программирования, который должен соответствовать широкому набору спецификаций. Если мы сравним эти первоначальные идеи с фактическим результатом их научной деятельности, компилятором SIMULA I, мы обнаружим, что между этими двумя позициями существует довольно четкое различие. В дальнейшем я укажу несколько причин такого изменения целей.

Ранний подход к SIMULA был основан на идее математически сформулированной концепции сети, связанной с ALGOL 60. [42] В целом, идея Даля и Найгаарда состояла в том, чтобы реализовать SIMULA как пакет процедур моделирования вместе с препроцессором к ALGOL 60. [43 ]Идея препроцессора подразумевала, что данную программу SIMULA сначала нужно было преобразовать в ALGOL, а затем, в свою очередь, скомпилировать в исполняемую программу. Другими словами, это означало, что программа SIMULA должна работать строго в рамках ALGOL 60, и, как мы увидим, это оказалось серьезным препятствием, когда были задействованы аспекты моделирования. Однако на этом раннем этапе они были в основном озабочены идеей, что клиенты в имитационной модели могут быть изображены как блоки ALGOL и охарактеризованы с использованием локальных переменных. В то время эта идея выглядела довольно многообещающей, поскольку рекурсивный блочный механизм ALGOL учитывал множественные вхождения пользовательских структур данных. [44]

Однако к весне 1963 года работа Даля над схемой управления хранилищем ясно показала, что блочная структура ALGOL и строгий динамический режим единого стека несовместимы с адекватной реализацией сложных средств моделирования SIMULA. Короче говоря, проблема, с которой столкнулись Даль и Найгаард на этом этапе, заключалась в том, что вызовы процедур ALGOL 60 и механизмы выделения хранилища работали строго по принципу стека, тогда как объекты (клиенты) в имитационной модели скорее имели тенденцию вести себя по принципу очереди. В свете этого они впоследствии поняли, что не достигнут своих целей проектирования, если не найдут способ обойти строгий режим стека ALGOL.

Летом и осенью 1963 года, когда Кристен Найгаард была озабочена проблемами на политической арене, Оле-Йохан Даль начал работу над новой схемой распределения хранилищ на основе двумерного списка свободных площадей. [45]Имея эту новую схему под рукой, они обнаружили, что их больше не связывают ограничения, наложенные ALGOL 60, и, таким образом, они в конечном итоге решили полностью отказаться от идеи препроцессора. Вместо этого они решили внедрить SIMULA путем модификации и расширения компилятора Univac ALGOL 60. Это изменение стратегии открыло целый ряд новых перспектив SIMULA, и, соответственно, они были вынуждены начать все сначала. На этот раз они получили базовые концепции с помощью множества всесторонних тематических исследований, начиная от магазинов вакансий и заканчивая системами вылета из аэропорта до эпидемиологических исследований.

Рисунок 8. Блок-схема, изображающая простую систему очередей с двумя клерками.

Что касается первоначальной концепции сети, они в конечном итоге обнаружили, что это также можно рассматривать с другой стороны, то есть активных клиентов, использующих пассивные станции. Это, в свою очередь, привело к осознанию того, что промежуточная или двойная точка зрения может быть выгодно принята. С этой точки зрения клиенты считались активными при переходе от станции к станции, но пассивны в своем взаимодействии с сервисными частями различных станций. (См. Рисунок 8). В результате этой жизненно важной конструкции совместная деятельность внутри самой системы стала одним общим принципом, применимым к широким классам систем. В свете этого нового понимания они обнаружили, что простая концепция сети казалась слишком узкой и, следовательно, неуместной, и по этим причинам от нее впоследствии отказались.Вместо этого Даль и Найгаард представили гораздо более мощную концепцию процесса, которая стала основной объединяющей чертой языка SIMULA I. Короче говоря, процесс можно понимать как обобщенную процедуру ALGOL с квазипараллельными свойствами.[46] Этот решающий прорыв, в феврале 1964 года, подразумевал, что простое понятие системы, описываемой общей математической структурой, было заменено гораздо более мощным понятием. Система теперь понималась как состоящая из серии взаимодействующих процессов, работающих квазипараллельно, поскольку стеки ALGOL в процессе выполнения основной программы. [47]

К марту 1964 года этап проектирования наконец подошел к концу. Пришло время перевести бумажную версию SIMULA в работающий компилятор. Усилия по внедрению проводились исключительно Оле-Йоханом Далем. Однако по отдельным предметам, связанным с ALGOL, ему оказали помощь два американских инженера-программиста Кен Джонс и Джозеф Сперони, последний отвечал за Case Western Reserve 1107 ALGOL. [48] Работа по внедрению продолжалась в течение всего года, и в декабре 1964 года на прототипе NIV UNIVAC 1107 был запущен и запущен первый прототип компилятора SIMULA I.

В соответствии с руководством SIMULA I, которое появилось в мае 1965 года, две основные цели SIMULA заключались в следующем:

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

2. обеспечить язык программирования для простого создания программ моделирования для «систем дискретных событий». [49]

Идея Nygaard о языке для описания системы и имитационного программирования стала реальностью. В течение этого года было проведено три курса по языку, и его использование стало настолько быстрым, что в своем докладе об использовании SIMULA Найгаард отмечает, что к концу 1965 года NCC «больше не имела полной информации о том, какие работы выполняются SIMULA, поскольку много пользователей за пределами института “. [50]

В течение первого года SIMULA применялась для решения широкого круга задач исследования операций. В своем отчете Найгаард ссылается на планирование производства, администрирование, инвентаризацию, транспортировку, порты, планирование и планирование, обновление, эксплуатацию и проектирование компьютеров, а также анализ различных социальных систем. В качестве иллюстрации конкретных проблем SIMULA был применен в тот первый год, Нюгаард упоминает, среди прочего, анализ макета нового литейного цеха в Raufoss Amunisjonsfabrikker, где целью было найти правильное расположение и размеры кранов, хранилище баллы и т. д. Программа SIMULA для этой работы была пробита на 1130 карт. Время компиляции составило 50 секунд, а симуляция двух с половиной дней работы заняла 22 секунды.Он также упоминает, что в сотрудничестве со Скандинавской авиационной системой (SAS) разрабатывалась система отправления из аэропорта, что было проведено большое исследование по системе транспортировки, предварительной подготовки и хранения норвежской бумажной фабрики, и что два крупных в SIMULA были выполнены масштабные модели гавани.

 

 Интермеццо

Когда Даль и Найгаард впервые приступили к работе над SIMULA весной 1962 года, их идея состояла в том, чтобы разработать простой пакет процедур моделирования вместе с препроцессором на основе ALGOL 60. Этот, казалось бы, простой подход оказался тупиком, когда они в конечном итоге столкнулся с жестким стековым режимом ALGOL 60. Как мы уже видели, решение этой проблемы было найдено в схеме управления хранилищем Оле-Йохана Даля с ноября 1963 года. С тех пор их амбиции росли и вслед за новаторской новинкой Даля Схема распределения прорыв для всей SIMULA была сделана. С конца 1963 года становится очевидным, что теперь они стремились к общим, объединяющим понятиям, чтобы реализовать настоящий язык программирования высокого уровня. В этом отношении,SIMULA Меня следует рассматривать как промежуточную позицию на пути к тому, что позже стало SIMULA 67.

 

 На пути к общности

В течение 1965 и 1966 гг. Даль и Найгаард потратили много времени на ознакомление и преподавание SIMULA, и использование языка быстро распространилось в Швецию, Германию, Советский Союз, а также ряд других стран. Помимо версии UNIVAC, SIMULA также стала доступна на компьютерах Burroughs B5500 в 1968 году, а затем и на российском компьютере URAL-16. Однако амбиции Даля и Найгаарда были выше этого. Они знали, что теперь у них есть мощный и достаточно обобщенный язык, который станет отличной платформой для языка программирования общего назначения. Кроме того, используя язык, они впоследствии поняли, что существует ряд недостатков.В своем отчете об использовании SIMULA Nygaard упоминает, что они увидели необходимость внедрения средств трассировки и отладки, чтобы пользователю было легче обнаруживать и исправлять ошибки в исходном коде SIMULA.[51] Помимо прочего, им стало известно об очевидном недостатке исправных инструментов для выражения общих свойств между взаимосвязанными процессами в системе. Более того, было очевидно, что сложные средства моделирования, встроенные в SIMULA I, были слишком тяжелым бременем для языка программирования с амбициями общего назначения, и, наконец, им стало известно о некоторых серьезных недостатках в самом компиляторе UNIVAC ALGOL 60. [52]

Осенью 1965 года Норвежский технологический институт в Тронхейме связался с NCC и выразил заинтересованность во внедрении нового и улучшенного компилятора ALGOL для 1107. Их идея заключалась в том, чтобы разработать этот компилятор, особенно с учетом SIMULA. С точки зрения Даля и Найгаарда это звучало как многообещающее предложение, и в течение некоторого времени в течение 1966 года поддерживались отношения с компьютерной командой, возглавляемой Кнутом Скогом в Тронхейме.

Как уже упоминалось, с конца 1963 года, в начале 1964 года Даль и Найгаард все больше времени уделяли попыткам выработать как можно более общие и объединяющие концепции. По мере того, как это преследование продолжалось летом и осенью 1966 года, они все больше и больше были озабочены возможностями, заложенными в конструкцию класса записи Тони Хоара, впервые представленную в бюллетене ALGOL №. 21, 1965. После тщательного изучения предложения Хоара о записи они в конечном итоге пришли к выводу, что, хотя он, очевидно, обладает рядом очень полезных свойств, он не полностью отвечает их требованиям. На самом деле они искали какую-то обобщенную концепцию процесса со свойствами класса записи. [53]

Ответ на их проблему неожиданно появился в декабре 1966 года, когда была введена идея префикса. Процесс, позже названный объектом, теперь можно рассматривать как состоящий из двух уровней: префиксного уровня, содержащего ссылки на своего предшественника и преемника, наряду с рядом других свойств, и основного слоя, содержащего атрибуты рассматриваемого объекта. В дополнение к этой важной новой функции, они также представили концепцию класса, которую можно грубо описать как усовершенствованную версию концепции деятельности SIMULA I. Эта мощная новая концепция позволила установить иерархии классов и подклассов объединенных объектов. В качестве примера мы можем представить класс «vehicle», который можно понимать как обобщение подклассов «car», «bus» и «truck». Другими словами,базовая концепция речи в общих и более конкретных терминах была принята как способ выражения реальности в контексте языка программирования. Имея под рукой эти общие, объединяющие инструменты, Даль и Найгаард немедленно решили начать разработку нового общего языка программирования высокого уровня, с помощью которого можно было бы выразить улучшенную SIMULA.[54] В предыдущем я довольно кратко упомянул тот факт, что Даль и Найгаард хотели сделать новую версию SIMULA универсальным языком. В дальнейшем я постараюсь указать на некоторые причины этого.

Как было объявлено Найгаардом на Всемирном конгрессе IFIP-62 и о чем свидетельствует руководство SIMULA от мая 1965 года, SIMULA I был языком специального назначения, предназначенным для решения задач исследования операций. 1960-е годы стали свидетелями огромного распространения этих так называемых языков специального назначения. Это может быть отчасти понято как функция меняющегося восприятия самого компьютера, о чем я говорил ранее в главе 2. Поскольку компьютер все чаще воспринимается как устройство общего назначения, специальное программное обеспечение взяло на себя функцию его настройки для специализированные области применения, такие как моделирование, например. В сообществе информатики это распространение не считалось совершенно беспроблемным,что еще более подчеркивалось ощущением кризиса, возникшего в конце 1960-х годов, когда один крупный программный проект за другим отставал от графика, превышал бюджет и не соответствовал техническим требованиям. В течение 1960-х годов призыв к более согласованным усилиям в разработке языков программирования усиливался, и одним из решений, которое все больше и больше разработчиков языка считали многообещающим, был язык общего назначения, язык программирования, который был настолько универсальным по своей природе, что его можно было использовать для всех мыслимых целей. На IFIP TC 2язык программирования, который был настолько общим по своей природе, что его можно было использовать для всех мыслимых целей. На IFIP TC 2язык программирования, который был настолько общим по своей природе, что его можно было использовать для всех мыслимых целей. На IFIP TC 2[55] На конференции в Лизебу под Осло в мае 1967 года Ян Гарвик даже зашел так далеко, что сказал:

Единственным спасением для мира программирования является действительно универсальный язык. Даже если он еще не существует, ясно, что это единственное, к чему мы должны стремиться, если мы хотим предоставить всем программистам доступ к необходимым инструментам. Мы не можем просто постоянно создавать новые языки специального назначения, потому что они не будут широко внедрены. [56]

Как я отметил в Главе 2, самой первой попыткой создать универсальный, машинно-независимый язык был ALGOL, разработанный примерно в 1960 году. Этот проект, созданный совместными усилиями ведущих ученых-компьютерщиков [57] с обеих сторон Атлантики, Он стал основой для большинства теоретических и практических работ по языку и компиляции в 1960-х и в 70-е годы. Хотя ALGOL был задуман как язык программирования общего назначения, он стал рассматриваться как инструмент для численных вычислений. Чтобы привести язык в большее соответствие с первоначальными намерениями, в 1964 году новый комитет (Рабочая группа 2.1) решил «Очистить Алгол 60» [58], и в кругах языков программирования появилось новое имя, ALGOL X. [59]

Пока это происходило, в IBM проводился еще один крупный языковой проект общего назначения. В главе 2 я упомянул этот язык в связи с обсуждением новой линейки продуктов IBM, System / 360. В отличие от ALGOL X (сегодня известного как ALGOL 68), который был многонациональным предприятием, координируемым IFIP, PL / 1 был отраслевым усилием, выдвинутым IBM. В 1960-х годах эти два крупных и престижных проекта вызвали значительный интерес к идее языков общего назначения, и я думаю, что это фон, на котором мы должны рассмотреть усилия Дала и Найгаарда SIMULA 67. Чтобы использовать собственные слова Nygaard:

Даль и я начали создавать язык моделирования, но, конечно, мы потратили так много времени на то, чтобы все эти люди работали над языками общего назначения, и я должен признать, что мы в какой-то степени влюбились в концепцию языков общего назначения. [60]

В результате предложения, сделанного Оле-Йоханом Далем в то время, когда представитель Норвегии в Техническом комитете 2 IFIP (по языкам программирования), осенью 1965 года было принято решение о проведении рабочей конференции IFIP по языкам моделирования. в Осло в мае 1967 года. Нет сомнений в том, что признание такого профессионального форума, как ИФИП ТК-2, станет профессиональным оплотом, имеющим огромное значение для их усилий, и когда концептуальный прорыв наконец-то наступил на рубеже года, они были полны решимости. представить новую и пересмотренную версию SIMULA на этой рабочей конференции IFIP. [61]

 

 SIMULA 67 Общая база

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

Две недели спустя, в июне 1967 года, была организована еще одна важная конференция. Цель этой конференции была в основном двоякой, во-первых, определить стандарт для обмена программами SIMULA между различными реализациями, называемый Общим базовым стандартом, и, во-вторых, инициировать проекты внедрения для серии Control Data 3000 (верхняя и нижняя) и UNIVAC 1100 серия. Даль и Нюгаард снова выдвинули ряд новых предложений. Одной из вещей, которые они хотели включить, было объединение связанных понятий Типа и Класса. Новое предложение подверглось серьезным обсуждениям, но после рассмотрения связанных с этим последствий и трудностей прагматический подход возобладал, и исполнители впоследствии отклонили его. Это, однако, не означало, что идея как таковая была мертва,и, как «Спящая красавица», она в конце концов снова ожила.[62]

Вопросы, связанные с обработкой строк и вводом / выводом, не обсуждались ни в одном из многочисленных предложений Даля и Найгаарда к конференции. Тем не менее, исполнители единодушно подчеркнули необходимость того, чтобы эти вещи были включены и определены как часть Общего базового определения. Поэтому для обеспечения высокой стандартизации и портативности было решено предоставить SIMULA эти средства. Ответственность за дизайн и разработку была возложена на Бьёрна Мирхауга, близкого коллегу Даля и Найгаарда. Результаты его работы были приняты на первом заседании группы стандартов SIMULA (SSG) в феврале 1968 года, после чего SIMULA была официально заморожена. [63]

 

 В мир: компиляторы SIMULA 67

Как уже подчеркивалось, Даль и Найгаард имели большие амбиции для SIMULA 67. Они хотели, чтобы это был «живой» язык программирования, но до сих пор их идеи существовали только на бумаге. В то время они предполагали, что только несколько из многих языков программирования, разработанных в 1960-х годах, все еще будут использоваться к 1980 году, и если SIMULA станет одним из них, важно, чтобы реализации языка были доступны на важных мейнфреймах. Примерно в 1970 году это в основном означало серию UNIVAC 1100 и серию компьютеров IBM 360/370. [64]

 

 UNIVAC 1100 SIMULA

С 1966/67 исследователи из NCC работали с командой Кнута Скога в Тронхейме, чтобы разработать новый компилятор ALGOL (NUALGOL) для UNIVAC. В то время как предполагалось, что это должен быть как компилятор ALGOL, так и компилятор SIMULA, вскоре стало очевидно, что различия между этими языками и их соответствующими методами реализации сделали такое объединение неосуществимым. [65]

Частично из-за этих технических проблем и частично из-за того, что NCC почувствовала определенное обязательство перед SIMULA I и его сообществом пользователей, в течение 1968 года было решено, что NCC следует выйти из проекта NUALGOL и вместо этого разработать реализацию SIMULA 67 для 1107. [66]

Команда UNIVAC SIMULA, состоящая из Рона Керра и Сигурда Кубоша при некоторой помощи Бьёрна Мирхауга, не начинала с нуля. Код реализации ALGOL служил руководством на протяжении всего процесса, и, где бы они ни были, этот код был каннибализирован и использован повторно. Таким образом, единственные области, которые нуждались в свежем дизайне и реализации, были связаны с элементами SIMULA. Работая так близко к коду ALGOL, Kerr и Kubosch приложили большие усилия, чтобы обеспечить, насколько это возможно, генерирование кода и производительность во время выполнения SIMULA по сравнению с ALGOL. Эта кропотливая работа во многом способствовала тому, что компилятор UNIVAC SIMULA стал одной из самых быстрых систем SIMULA, когда-либо созданных. Конкурентоспособный элемент, представленный разработкой IBM-компилятора, также положительно повлиял на производительность.

По разным причинам Исследовательский совет в сентябре 1969 года принял решение продать 1107 и передать прибыльные компьютерные комиссии, которые в этом году составили примерно 1,2 миллиона. NOK ($ 167 832), [67] для Computas, компании, принадлежащей крупному и влиятельному обществу по классификации судов Det Norske Veritas. [68] Несмотря на отказ от старого 1107, проект UNIVAC SIMULA, однако, продолжился, и новым целевым устройством стал UNIVAC 1108.

Влияние этого драматического события на проект UNIVAC SIMULA было различным. С точки зрения прогресса, он представлял собой немедленную и существенную неудачу из-за всей необходимости перекодирования. Тем не менее, UNIVAC 1108 и его новая операционная система (EXEC 8), во многих отношениях современная по состоянию на 1970 год, обеспечили гораздо более мощную и эффективную среду, которая в конечном итоге фактически оказала довольно положительное влияние на компилятор. спектакль. Другая проблема заключалась в том, что новый хост 1108 не был расположен внутри компании, как это было в случае с 1107. В то время, когда пакетная обработка была в порядке дня, это, несомненно, способствовало замедлению проекта. В любом случае, прогресс был достигнут, и в марте 1971 года была выпущена первая коммерческая версия UNIVAC серии 1100 SIMULA. [69]

Univac не был единодушен в своих реакциях на новый компилятор SIMULA. Прежде всего, SIMULA I была полезной, но не очень важной частью их программного репертуара, и они не чувствовали рыночного спроса на новую и улучшенную версию. Во-вторых, они потратили значительную сумму денег на проект SIMULA I и не видели причин, почему они должны делиться SIMULA с другими производителями. Тем не менее, в 1968 году между NCC и Univac состоялся долгий ряд дискуссий о возможной передаче прав компилятору, но никаких контрактов подписано не было. [70]

 

 IBM 360/370 SIMULA

В случае с компиляторами IBM 360/370 ситуация была несколько иной. Когда Найгаард и его команда в 1967/68 годах выразили свою заинтересованность в разработке компиляторов SIMULA 67 для IBM и UNIVAC, условия для этого были сформулированы очень четко. Во-первых, такие проекты могут быть реализованы только при наличии достаточного внешнего финансирования, и, во-вторых, этот проект сможет в течение 5 лет покрыть общие расходы, продавая составители на строго коммерческой основе. [71]В соответствии с этими предварительными условиями Кристен Найгаард и частный консультант Харальд Омдаль приступили к утомительной и трудной задаче создания консорциума фирм, которые были бы заинтересованы в инвестировании средств в проекты по разработке компиляторов. Охота на инвесторов продолжалась почти безуспешно до тех пор, пока летом 1969 года Нюгаард не встретился с представителями Шведского научно-исследовательского института национальной обороны (шведское сокращение: FOA). FOA на протяжении многих лет хотела использовать SIMULA в связи с их исследовательской деятельностью, и поскольку они недавно приобрели компьютер IBM / 360, они, естественно, были очень заинтересованы в предложениях Nygaard относительно разработки компилятора SIMULA 67 для этой конкретной системы. [72]На основании этого FOA впоследствии согласился поддержать проект IBM 360/370, профинансировав участие двух шведских инженеров-программистов, Ларса Эндерина и Стефана Арнборга. Помимо этого, IBM также внесла важный вклад, предоставив NCC всего 240 часов вычислительного времени, которое будет использовано в связи с разработкой и тестированием компилятора. [73]После почти трех лет напряженной работы компиляторы IBM были обнародованы в мае 1972 года. Бьёрн Мирхауг руководил проектом, и в дополнение к Эндерину и Арнборгу команда также состояла из Грэма Биртвистла, который отвечал за синтаксис анализ, Фрэнсис Стивенсон, который позаботился о части генерации кода, Пол Уинн о модификации CMS и, что не менее важно, Карел Бабчицки, который отвечал за обработку семантики и который во второй половине 1970-х годов отвечал за вся деятельность SIMULA в Норвежском вычислительном центре. [74]

Несмотря на то, что затраты, связанные с этими двумя проектами внедрения, были оценены примерно в 15 человеко-лет каждый [75] , и оба были проведены в NCC под эгидой Бьёрна Мирхауга, они были очень разными. Команда IBM работала в хорошо поддерживаемом и тщательно спланированном проекте, тогда как команда UNIVAC была гораздо более слабо организована, работала с меньшей внешней поддержкой и в течение более длительного периода времени. Тем не менее, в обоих проектах были созданы высококачественные компиляторы, которые использовались во всем мире более 20 лет. [76]

 

 Контрольные данные SIMULA

В предыдущих разделах я попытался дать общее описание собственных проектов разработки компиляторов NCC. Эти два компилятора, однако, не были первыми доступными компиляторами SIMULA. До конференции Common Base Кристен Найгаард через крупных норвежских заказчиков заинтересовала Control Data Corporation (CDC), заинтересовавшейся реализацией SIMULA для своих компьютеров серии 3000 (верхняя и нижняя) и 6000. [77] В мае 1967 года были подписаны контракты, и в Париже команда под руководством Жака Ньюи начала работу над реализацией SIMULA 67 для CDC 6000. Позднее этот компилятор был доработан SHAPE [78].Технический центр в Нидерландах, и новая версия для серии CDC Cyber ​​70 была разработана в 1973/74 NDRE. В Норвегии команда из Университета Осло во главе с Пер Офстадом выполнила внедрение CDC 3300 (нижняя серия), а другая норвежская команда из NDRE и Объединенной компьютерной установки Университета Осло в Кьеллере (KCIN), которую возглавлял Свейн. А. Эвергаард, занимался реализацией CDC 3600 (верхняя серия). Два проекта были организованы как совместное предприятие под эгидой Пер Мартина Кьелдсааса из KCIN, и оба проекта были завершены весной 1969 года. Некоторая финансовая поддержка была предоставлена ​​Control Data Europe, которая, в свою очередь, получила права на маркетинг и распространение, тогда как Ответственность за техническое обслуживание соответствующих компиляторов осталась за Университетом и KCIN. [79]

В дополнение к этим проектам французская компания Compagnie Internationale pour l’Informatique (CII) внедрила компиляторы для CII 10070 и IRIS 80. Две идентичные системы были выпущены в 1972 году и были бесплатно предоставлены клиентам CII. [80]

 

 Система DEC-10 SIMULA

Другая важная разработка SIMULA произошла в Швеции в первой половине 1970-х годов, на этот раз целевой машиной был PDP-10 от Digital Equipment. [81]Около 1970 года Шведский научно-исследовательский институт национальной обороны (FOA) в Стокгольме решил создать лабораторию для углубленных военных исследований в области оперативных исследований. В связи с этим они намеревались приобрести новый компьютер, и Джейкоб Пальме, самый выдающийся актер SIMULA в Швеции в то время, был назначен председателем комитета, целью которого было составить оценочный отчет по этому вопросу. После тщательного изучения четырех разных компьютеров они в конечном итоге выбрали PDP-10. Поскольку в то время этот компьютер не имел компилятора SIMULA в своей библиотеке программного обеспечения, такая реализация была немедленно заказана у шведского дома разработчиков программного обеспечения ENEA Data. Первая тестовая версия компилятора была доступна программистам в центре обработки данных QZ в Стокгольме и по сетям связи с сентября 1974 года.Первый публичный релиз состоялся в январе 1975 года.

Система DEC System-10 SIMULA была во многих отношениях более всеобъемлющей, чем ее предшественники. Среди прочего, он содержал средства онлайн-отладки, которые позволяли устанавливать и переустанавливать точки останова во время выполнения программы. [82] Кроме того, компилятор был специально разработан для интерактивного использования и вскоре установит новый стандарт для разработки компиляторов SIMULA.

Помимо FOA, Digital Equipment Corp. также внесла свой вклад в проект при условии, что компилятор должен распространяться бесплатно. Это условие было принято, в результате чего компилятор DEC System-10 оказал значительное влияние на распространение SIMULA, особенно в Соединенных Штатах. В августе 1975 года, через восемь месяцев после выпуска, компилятор был распространен на 28 установок, 22 из которых были расположены в Соединенных Штатах и ​​Канаде. [83]

 

 Записка об участии NCC в SIMULA в 1970-х годах

В начале 60-х годов продвижение и маркетинг SIMULA в основном осуществлялись самими разработчиками, когда они посещали конференцию, или проводили вводные курсы для других ученых-исследователей, как в NCC, так и за рубежом. Однако, поскольку язык быстро распространился на большие группы пользователей, и суммы денег, вложенные в проект, неуклонно росли, эту ситуацию пришлось делать более профессиональным образом.

Как упоминалось в связи с двумя проектами разработки компиляторов NCC, UNIVAC и IBM, вычислительный центр не чувствовал непосредственной ответственности за финансирование их выполнения. Как сообщила Кристен Найгаард, это нежелание было особенно выражено в случае проекта IBM. [84]Общее мнение заключалось в том, что срок службы такого языка программирования, как SIMULA, не будет превышать пяти лет. Кроме того, если принять во внимание затраты на разработку компилятора, не говоря уже о больших коммерческих рисках, NCC, естественно, был очень сдержан. Тем не менее, когда NCC в конечном итоге согласился взять на себя ответственность за два проекта разработки компиляторов, их условия для этого заключались в том, что достаточное внешнее финансирование находилось в страхе, и что Центр как таковой не будет нести расходы. На основе этого взаимопонимания были начаты два проекта (UNIVAC в 1967/68 и IBM в 1969), и Найгаард начал свою охоту на инвесторов. Однако, как мы знаем, его усилия оказались безуспешными, и когда это в конечном итоге стало ясно заинтересованным сторонам, оба проекта развились до такой степени, что их невозможно вернуть,и NCC должна была нести финансовое бремя в одиночку.

В связи с этими обстоятельствами NCC оказалась в начале 70-х годов в очень сложной экономической ситуации. Центр функционировал в основном на основе возмещения расходов и в этом случае не мог рассчитывать на государственное финансирование. Поэтому, с точки зрения руководства, было необходимо, чтобы деятельность SIMULA была самоокупаемой, а инвестиции в компилятор приносили прибыль. [85]

NCC часто критиковали за ценовую политику в отношении двух компиляторов SIMULA. Эта критика в некоторых случаях была оправданной, например, когда Дональду Кнуту в 1973 году запретили вводить SIMULA в Стэнфордском университете, отчасти из-за нежелания NCC снижать цены и отдавать его бесплатно университетам. [86]Однако при обсуждении этих вопросов следует учитывать тот факт, что NCC не является ни обычным программным обеспечением, ни полностью финансируемым правительственным учреждением. В дополнение к операциям SIMULA, NCC также посвятил себя ряду других исследований, которые заслуживают равного внимания и финансовой поддержки. Тем не менее, к 1973 году использование SIMULA распространилось до такой степени, что NCC потеряла контроль над этим, и, несмотря на то, что это распространение могло бы получить еще больший импульс, если бы NCC снизила свои цены, язык, по оценкам, был на регулярном уровне. использовать на более чем 250 сайтах в этом году. [87]

 

 Ассоциация пользователей SIMULA

Говоря о приверженности NCC SIMULA в 1970-х годах, следует также упомянуть важную роль Центра в создании Ассоциации пользователей SIMULA (ASU). Построение организационной структуры, которая могла бы облегчить обмен идеями между пользователями SIMULA, было на самом деле старой идеей, впервые предложенной Далем и Найгаардом еще в 1967 году. Однако в то время другим и более насущным потребностям был отдан приоритет, но в 1972/73 Идея снова возникла, и в сентябре 1973 года была официально основана Ассоциация пользователей SIMULA.

Благодаря ежегодным конференциям, семинарам и информационным бюллетеням ASU стал международным форумом для обсуждения и обмена идеями в сообществе SIMULA. В этом качестве организация также представляла важный канал для обмена информацией и идеями между Группой стандартов SIMULA [88], состоящей из членов различных групп внедрения SIMULA, и более широким сообществом пользователей. [89]

На первой конференции ASU в Осло число членов-основателей составило 43, а спустя год, в августе 1974 года, это число возросло до 172, и сообщество SIMULA теперь охватило более 23 различных стран мира. [90]

Фото 7. СИМУЛА ​​Всегда Сначала! Оле-Йохан Даль (слева) и Кристен Нюгаард, 1982 год. Предоставлено Rune Myhre, Dagbladet.

 

Эпилог: власть народу

Прежде чем завершить эту главу, я хочу немного остановиться на одном интересном аспекте проекта SIMULA, который ясно показывает, насколько научно-техническая деятельность так же загружена политическими интересами, как и любое другое человеческое предприятие. [91] Во время своей работы по исследованию операций в 1950-х годах Кристен Найгаард все больше осознавал, что он видит в опасностях технократии. [92] Он был обеспокоен тем, что современные технологии станут средством, с помощью которого небольшая, технически информированная элита сможет распространить свою власть на большие массы, которые не имеют доступа к одной и той же базе знаний. Чтобы проиллюстрировать, как взгляды Нюгаарда на технократию повлияли на развитие SIMULA, я хочу воспроизвести часть речи, которую он сделал на конференции в ЛизебуЯзыки программирования в мае 1967 года. Его озабоченность возникла в споре с Яном Гарвиком, автором языка общего назначения GPL, по поводу влияния технократии на сообщество программистов.

Принято считать, что эта Конференция состоит из людей, принадлежащих к группе 1%, – это неправда, поскольку я являюсь представителем группы 99%, и я думаю, что поскольку нас так много, и мы собираемся использовать эти инструменты, мы должны иметь право что-то здесь сказать. Мы простые люди, но у нас есть сложные проблемы, и мы вынуждены сталкиваться с этими сложными проблемами. […] Когда Гарвик говорил о своем языке, он сказал, что это супер язык, который решает все проблемы. Конечно, даже если это выглядело немного пугающим, я все же почувствовал облегчение. Но тогда – что случилось? Он сказал, что это только для группы 1%, но для 99% мы собираемся предоставить ряд различных языков, которые определены на общем языке, поэтому мы вынуждены вместо этого изучать все эти языки. Это не то, что мы хотим.Мы хотим получить концепции, чтобы мы могли решать сложные проблемы таким образом, чтобы мы могли их понять. [93]

Благородная защита Nygaard для непрофессионала, возможно, очаровательна, но она демонстрирует глубокую озабоченность отношениями власти и знаний между поставщиками и пользователями технологий. Он решительно выступил против идеи Гарвика о том, что первосвященники являются первыми поставщиками технологий, и призвал к универсальному языку, который был бы простым и достаточно легким для обычных программистов для эффективного изучения и использования. [94] Нет сомнений, что он хотел, чтобы SIMULA 67 был именно таким языком. Если использовать известный лозунг, мы можем сказать, что технополитическая программа Нюгаарда была «властью для людей». Это станет еще более ясным, если мы посмотрим на его исследовательские работы, последовавшие за проектом SIMULA.

Когда я использовал SIMULA в 1966 и 1967 годах, Найгаард заметил, что язык – его язык – постепенно становится инструментом в руках того, что он считал правящей элитой общества. Он говорит:

Я мог видеть, что SIMULA использовался для организации работы для людей, и я мог видеть, что это будет способствовать серьезным изменениям в этой области: больше рутинной работы, меньше спроса на знания и квалифицированной рабочей силы, меньше гибкости на рабочем месте, больше давление. Я мог видеть это, потому что участвовал во многих проектах, в которых использовалась SIMULA. На этом мрачном фоне я постепенно столкнулся с моральной дилеммой. Я не скажу, что он был таким же драматичным и героическим, как тот, который испытали физики-ядерщики из-за атомной бомбы, но это было аналогично. Я понял, что технология, которую я помог разработать, имела серьезные последствия для других людей, особенно для людей, с которыми я столкнулся в политическом плане. Вопрос был в том, что с этим делать? У меня не было желания изобретать SIMULA […] потому что я был убежден, что в обществе, которое я хотел бы помочь в создании, компьютеры стали бы играть чрезвычайно важную роль. [95] [Мой перевод]

Кристен Найгаард перенесла свой опыт, свои знания и технические знания в рабочее движение. Он хотел предупредить их о том, «что будет на их пути» [96] , и он хотел обучить их и помочь им создать базу знаний о новых компьютерных технологиях. Его контакты и сотрудничество с норвежским рабочим движением в конце 1960-х годов привели к крупному исследовательскому проекту [97], в котором Найгаард и его исследователи из NCC сотрудничали с членами рабочего движения для создания этой базы знаний. Этот проект был пионерским усилием в мировом масштабе, и, будучи первым человеком за пределами Северной Америки, Кристен Найгаард был отмечен за его усилия американской организацией Computer Professionals for Social Responsibility. [98] Это, однако, другая история, которая должна остаться за рамками данного исследования.

 

 Резюме

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

Когда вы читаете традиционные истории интернализма в истории технологий, часто создается ошибочное впечатление, что технологии как бы развиваются в техническом или научном вакууме. Это ошибочное представление о природе технологических изменений, как неоднократно критиковали многие авторы [99], в значительной степени связано с отсутствием более широкого контекста, с которым можно связать технический нарратив.

Как показано в этой главе, создание SIMULA ни в коем случае не было самостоятельным техническим и научным предприятием, и результат усилий Дала и Найгаарда в значительной степени зависел от того, что обычно считается внешним или контекстным помещением. В качестве примеров можно упомянуть UNIVAC 1107, который значительно улучшил среду для разработки SIMULA, и Департамент по специальным проектам, который во многих отношениях стал средой важности для разработки программного обеспечения в NCC.

Другим, но, тем не менее, важным аспектом проблемы, рассматриваемой выше, является партеногенный миф о том, что такие технологии, как Афина из головы Зевса, оживают в полной мере благодаря внезапной вспышке прозрения гениальными умами, такими как Чарльз Бэббидж, Алан Тьюринг или Джон фон Нейман. , Однако, как должно быть ясно из предыдущего, такого не было в случае SIMULA.

Из простого пакета процедур моделирования, связанного с ALGOL 60, язык был тщательно разработан, сформирован и преобразован с помощью SIMULA I в язык программирования SIMULA 67 высокого уровня, который мы знаем сегодня. Этот генезис, как уже подчеркивалось, включал высокую степень гетерогенной инженерии со стороны Даля и Найгара. Помимо их постоянного стремления к окончательным техническим решениям, их деятельность также имела последствия в областях, которые обычно не считаются техническими или научными. Предпринимательская роль Кристен Найгаард в связи со сделкой Univac / SIMULA, а также постоянная работа Оле-Йохана Даля по разработке и внедрению языков, а также его инструментальная роль в IFIP TC-2 являются репрезентативными примерами гетерогенной инженерии, которую я пытался реализовать. осветить в этой главе.

 

Заметки

[1] Эта глава взята из статьи, опубликованной в « Летописи истории вычислительной техники» . Том16 (4), 1994; С. 25-37. Я с благодарностью отмечаю множество полезных комментариев и предложений относительно более ранних проектов, предложенных, среди прочего, Уильямом Аспреем, Мартином Кэмпбеллом-Келли, Полом Черуцци, Майклом С. Махони, Артуром Л. Норбергом, Нильсом Ролл-Хансеном, Кнутом Х. Соренсеном и рецензентами. из анналов истории вычислительной техники .

[2] См., Например: Хьюз (1983) и Хьюз (1989).

[3] См. Хьюз (1986) и Латур (1987).

[4] «Отчет о состоянии SIMULA – языка для описания сетей с дискретными событиями». 13 июля 1963 г. NCC

[5] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 441.

[6] Nygaard (1963, стр. 520).

[7] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit.

[8] ALGOL 60 представляет собой веху в истории языков программирования, и в течение 60-х и 70-х этот язык был основным источником большинства теоретических работ, связанных с проектированием и разработкой компилятора.

[9] Интервью с Оле Йоханом Далем, 7 ноября 1991 г.

[10] Годовой отчет NTNF за 1958/59, стр.82.

[11] «Ден фримтидж вирксомет вед Норск Регнессентрал», 3 мая 1961 года. НКЦ.

[12] Предыдущий рассказ основан, главным образом, на интервью с Кристен Найгаард 28 ноября 1992 года, Карлом Холбергом 5 марта 1992 года и Финном Лиедом 6 марта 1992 года.

[13] Финансовая отчетность НКЦ, 1959, 1960.

[14] “День свободы вирксомет вед”, ​​Норск, Регнессентрал “, 3 мая 1961 года. НКС.

[15] Интервью с Кристен Нюгаард, 28 ноября 1991 г.

[16] “Forslag om anskaffelse av en elektronisk regnemaskin type UNIVAC-1107 til Norsk Regnesentral”, в котором говорится о том, что это не так. Осень 1962 года. НТНФ. Обратите внимание, что все цифры в долларах США в этой главе основаны на обменных курсах США и Норвегии, перечисленных в « Исторической статистике» за 1978 год , с. 513.

[17] Записка от директора NTNF Роберта Мейджора. 19 июля 1962 года. НТНФ.

[18] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 442.

[19] Этот проект был основан на новом и многообещающем алгоритме линейного программирования, названном параметрически приличным, разработанном Сверре Спуркландом в NCC. Несмотря на то, что проект основывался на очень мощной концепции, и впоследствии он должен был получить существенную финансовую поддержку от Univac, он так и не был завершен.

[20] Письмо Роберта Бемера автору. 15 июля 1994 г.

[21] Телефонное интервью с Робертом В. Бемером, 14 апреля 1992 г.

[22] Nygaard (1963).

[23] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 455.

[24] Там же, с. 454.

[25] Дональд МакКензи: «Влияние национальных лабораторий Лос-Аламоса и Ливермора на развитие суперкомпьютеров». Летопись истории вычислительной техники , том 13 (2), 1991.

[26] Интервью с Кристен Нюгаард, 28 ноября 1991 г.

[27] Предложение Sperry Rand Univac для NCC в отношении UNIVAC 1107, 26 июня 1962 года и «Соглашение, заключенное 1-го июня между Sperry Rand Corporation (Univac) и Королевским норвежским советом по научным и промышленным исследованиям» 1 июня 1963 г. НТНФ.

[28] Телефонное интервью с Робертом Бемером, 14 апреля 1992 года, и письмо Роберта Бемера автору, 29 июля 1992 года.

[29] Письмо А.А. Коэна, научного сотрудника отдела обработки данных, Кристен Нюгаард. 23 октября 1964 года. NCC.

[30] Rådet для электронных данных, ожидающих, я заявляю. Мой перевод.

[31] Памятка Финна Лжи Карлу Холбергу. 11 мая 1962 года. NDRE

[32] Его заключение было в значительной степени сделано из обзора вычислительных потребностей в районе Осло. В этом опросе Nygaard связался со многими учреждениями, которые ранее пользовались его услугами OR, и спросил, как они будут использовать возможный мэйнфрейм-компьютер в районе Осло. Это были Aftenposten, Det Norske Veritas, Directoratet для Statens Skoger, H. EEG Henriksen A / S, Kontroautomasjon A / S, Norsk Produktivitetsinstitutt, Осло Коммуне / Коммуникасйонс-Родманнен, Осло Коммуне / Сённтонс / Сённтонс / Сённтерс Sentralinstituttet для Industriell Forskning и Vegdirektoraet. Источник: “Forslag om anskaffelse av en stor elektronisk regnemaskin to Norsk Regnesentral”. Сентябрь 1962 г. нтнф.

[33] «Forslag om anskaffelse av en elektronisk regnemaskin type UNIVAC-1107 til Norsk Regnesentral», innstilling fra rodets arbeidsutvalg. Осень 1962 года. НТНФ.

[34] Лиде сослался на встречу с государственным секретарем Гудмумдом Гарлемом, где Гарлем заявил, что, если на этом этапе будет предложено приобретение двух компьютеров, это может привести к значительным задержкам для обоих. Источник: протокол заседания рабочей комиссии 21 августа 1962 г. НТНФ

[35] Протокол заседания рабочей комиссии 21 августа 1962 года. НТНФ

[36] Заметка директора NCC Лейфа К. Олауссена: «Избыточный курс форхолдета меломорск», 15 января 1965 г., интервью с Робертом Мейджором, 29 ноября 1991 г., интервью с Робертом Мейджором.

[37] Письмо директора NTNF Роберта Мейджора директору NCC Бьёрну Орянсену, 21 июля 1962 года. NTNF.

[38] Записка Кристен Нюгаард для правления NCC, 22 января 1964 года. NTNF.

[39] Резолюция Правления NCC: «Организационный план для Норска Регнентраль», 11 декабря 1962 года, и интервью с Карлом Холбергом, 5 марта 1992 года. NTNF.

[40] Резолюция Правления NCC: «Организационный план для Норска Регенсентраль», 11 декабря 1962 года, и интервью с: Бьёрном Орджансеном 25 ноября, Сверре Спуркландом 27 ноября, Робертом Майором 29 ноября 1991 года и Карлом Холбергом 5 марта 1992 года. NTNF.

[41] Название для этого подраздела взято из Даля, Оле-Йохана и Нюгаарда, Кристен. «SIMULA: язык для программирования и описания систем дискретных событий. Введение и руководство пользователя». Май 1965 г. NCC.

[42] Следует добавить, что, хотя Даль и Найгаард на этом этапе утверждали, что SIMULA должна быть основана на Алголе, они не исключали более позднюю версию, основанную на Фортране, с использованием тех же базовых концепций.

[43] Даль О.-Ж. и Nygaard K: «Предварительная презентация языка SIMULA (по состоянию на 18 мая 1963 г.) и некоторые примеры описаний сетей». NCC: май 1963 г.

[44] Nygaard K. и Dahl O.-J: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., Pp. 447-448, и интервью с Оле-Йоханом Далом 7 ноября 1991 г. ,

[45] Даль О.-Дж .: «Схема распределения памяти SIMULA». NCC № документа 162, ноябрь 1963 г., и интервью с Оле-Йоханом Далем, 7 ноября 1991 г.

[46] Интервью с Оле-Йоханом Далем, 7 ноября 1991 года и 4 марта 1992 года, и Кристен Нигард, 28 ноября 1991 года.

[47] Выполнение квазипараллельного процесса подразумевало, что основная программа могла переключать управление от одного процесса к другому во время выполнения программы в соответствии со специальными инструкциями последовательности. В SIMULA эта последовательность была определена оператором Hold в дополнение к локальным ссылочным переменным в каждом неактивном процессе, определяющим, где элемент управления должен возобновить работу при следующей активации процесса. (Источник: Dahl O.-J: «Структуры данных SIMULA», документ NCC, февраль / март 1964 г.).

[48] Письмо Оле-Йохана Даля автору, 10 апреля 1992 года.

[49] Даль и Найгаард (1965, стр. 2).

[50] Нюгаард, Кристен. «Отчет об использовании SIMULA до декабря 1965 года». Декабрь 1965 г. НКК.

[51] Там же.

[52] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., Pp. 459-461.

[53] Интервью с Оле-Йоханом Далем, 4 марта 1992 г.

[54] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 459-461.

[55] Технический комитет 2 Международной федерации по обработке информации был комитетом, специально занимающимся языками программирования.

[56] Бакстон (1968, с.337-338).

[57] Я использую этот термин, даже если он не существовал в 1950-х и начале 60-х годов. Тогда эти люди были математиками, и область, в которой они работали, обычно называлась прикладной математикой.

[58] Ф. Г. Дункан и А. ван Вейнгаарден. «Очистка Алгола 60». Бюллетень АЛГОЛ , AB16.3.3, май 1964 г.

[59] Подробнее см .: CH Lindsey. «История Алгола 68». Уведомления ACM / SIGPLAN , Vol. 28 (3), март 1993 года; С. 97-132.

[60] Бакстон (1968, с. 345).

[61] Dahl O.-J. и Nygaard K: «Объявления классов и подклассов». Документ NCC, март 1967 г.

[62]Спроектировав язык описания систем DELTA (1973-1975), во второй половине 1970-х годов Кристен Найгаард вместе с учеными-исследователями из Орхусского университета и Ольборгского университета в Дании приступила к еще одному проекту по развитию языка под названием BETA. Основная идея этого проекта была той же самой, что была отклонена Конференцией общих баз десять лет назад. Грубо говоря, можно сказать, что проект BETA был попыткой обобщить и уточнить связанные понятия классов, записей, типов и процедур в одну базовую конструкцию, на которой в конечном итоге мог бы быть разработан и реализован новый язык программирования. Усилия оказались успешными, и команда BETA разработала новую конструкцию под названием Super Pattern. Основываясь на этой весьма общей концепции,Компилятор DELTA был позже разработан в Университете Орхуса. Источник: Биргер Мёллер-Педерсен: «Как SIMULA заставила нас думать о бета-версии»Доклад представлен по адресу: «SIMULA 1967-1992», специальный семинар в TOOLS’92, Дортмунд, Германия, 31 марта 1992 года, и интервью с Кристен Нигард, 28 ноября 1991 года.

[63] Myhrhaug Bjørn: «Предложение по обработке строк и определению ввода / вывода в SIMULA 67 Common Base. Предварительная презентация», январь 1968 г. Публикация NCC № 212.

[64] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 471

[65] Письмо Рона Керра автору, 17 марта 1993 года.

[66] Интервью Друда Бернтсена, 6 ноября 1991 года.

[67] Годовой обзор НТНФ за 1969 г., с. 69

[68] Работа UNIVAC 1107 была во второй половине 1960-х годов одним из важнейших источников дохода NCC и краеугольным камнем исследовательской деятельности Центра. Когда решение Научного совета стало известно, это, естественно, вызвало спекуляции относительно будущего NCC, и это справедливо, поскольку имелись веские основания полагать, что центральные силы в Научном совете хотели закрыть весь Центр и передать свои операции другим институтам NTNF. , В ответ на это сотрудники NCC организовались и начали контратаку на NTNF. Конфликт достиг своего апогея в январе / феврале 1970 года, после чего NCC была реорганизована и ситуация нормализовалась. Источник: Интервью со Сверре Спурклендом, 27 ноября 1991 г.

[69] Отчет о разработке SIMULA UNIVAC основан на интервью с Сигурдом Кубошем, 5 марта 1992 года, переписке с Роном Керром в 1993 году и информационном бюллетене SIMULA: Vol. 1, № 1, май 1973 г.

[70] Интервью с Друдом Бернтсеном, 6 ноября 1991 года, и «Проект наброска соглашения SIMULA 67 между UNIVAC и Норвежским вычислительным центром», сентябрь 1969 года.

[71] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 470.

[72] Интервью с Джейкобом Палме, 19 августа 1992 года, и Джейкобом Пальме: «Удобны ли языки симуляции для военных симуляций?». Научно-исследовательский институт национальной обороны, Центр оперативных исследований Швеции, апрель 1968 года.

[73] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 475.

[74] Карел Бабчицки: «Каменный век SIMULA». Доклад представлен по адресу: «SIMULA 1967-1992», специальный семинар в TOOLS’92, Дортмунд, Германия, 31 марта 1992 г.

[75] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., P. 475.

[76] Карел Бабчицки: «Каменный век SIMULA». Обсуждение представлено на; “SIMULA 1967-1992”, специальная мастерская в TOOLS’92, Дортмунд, Германия, 31 марта. 1992.

[77] «Соглашение о внедрении языка SIMULA 67 между Control Data A / S Norway и Норвежским вычислительным центром». Осло, 23 мая 1967 года. NCC

[78] SHAPE является аббревиатурой от: Верховный штаб-квартира союзных держав Европы.

[79] Nygaard K. и Dahl OJ: «Развитие языков SIMULA», Wexelblatt (ed.), Op.cit., Pp. 473 – 474.

[80] Друда Бернтсен: «Приветственная речь», в материалах конференции пользователей SIMULA . Осло, 24-25 сентября 1973 г.

[81] Следующая запись, описывающая разработку шведского компилятора DEC-10 SIMULA, основана на интервью с Джейкобом Пальме, 19 августа 1992 года.

[82] SIMULA Newsletter , Vol. 2, № 3, август 1974 г.

[83] DEC System-10 SIMULA Gazette , Vol. 1, № 2, август 1975 г.

[84] Кристен Нюгаард: «Построение SIMULA – сотрудничество и война». Доклад представлен по адресу: «SIMULA 1967-1992», специальный семинар в TOOLS’92, Дортмунд, Германия, 31 марта 1992 г., и интервью с Кристен Нигард, 28 ноября 1991 г.

[85] Интервью с Друдом Бернтсеном: 6 ноября 1991 г.

[86] Кристен Нюгаард: «Построение SIMULA – Сотрудничество и война». Доклад представлен по адресу: «SIMULA 1967-1992», специальный семинар в TOOLS’92, Дортмунд, Германия, 31 марта 1992 г., и интервью с Кристен Нигард, 28 ноября 1991 г.

[87] Друда Бернтсен: «Приветственная речь», в материалах конференции пользователей SIMULA . Осло, 24-25 сентября 1973 года. Среди крупнейших пользователей, известных в 1973 году, мы находимся: Норвежское научно-исследовательское оборонное учреждение, Шведский научно-исследовательский институт национальной обороны, Финский государственный вычислительный центр и Broken Hill Proprietary Co., Ltd. в Австралии. В дополнение к этим основным учреждениям, было также известно, что ряд европейских университетов используют язык в образовательных целях.

[88] Группа стандартов SIMULA была сформирована после конференции Common Base в 1967 году. Она состояла из одного представителя от каждой из групп внедрения SIMULA, а также двух представителей от Норвежского вычислительного центра. Важной частью их задачи было защитить стандарт SIMULA 67 от нежелательного расцвета диалектов, которые встречаются во многих других языках. В этом отношении их усилия должны рассматриваться как вполне успешные, поскольку стандарт SIMULA 67 оставался на должном уровне в течение всего периода и даже до настоящего времени.

[89] Говоря об АГУ, было бы неправильно не упоминать саму «Симуляди», миссис Эйлин Шрайнер. Будучи секретарем АГУ с 1973 по 1989 год, а также казначеем и редактором информационного бюллетеня по настоящее время (1993 год), г-жа Шрайнер была непрерывной связью в сообществе SIMULA и во многих отношениях верным чемпионом SIMULA.

[90] Информационный бюллетень SIMULA: Vol. 2, No. 3, August 1974, p. 3. По состоянию на август 1974 г. в АГУ были представлены следующие страны; Австралия, Австрия, Бельгия, Великобритания, Чехословакия, Дания, Финляндия, Франция, Германия, Гонконг, Венгрия, Израиль, Италия, Новая Зеландия, Нидерланды, Норвегия, Польша, Южная Африка, Испания, Швейцария и США. В дополнение к этому необходимо также учитывать деятельность SIMULA в тогдашнем Советском Союзе, которая во многих отношениях представляла собой отдельную атмосферу, изолированную от организационных рамок ASU.

[91] Для заинтересованных читателей я обращаюсь к Langdon Winner. «Есть ли у артефактов политика» в Дональде Маккензи и Джуди Вайцман (ред.) «Социальное формирование технологий» . Милтон Кейнс: Открытая университетская пресса, 1985.

[92] Ниже приводится интервью с Кристен Нюгаард 28 ноября 1991 года.

[93] Бакстон (1968, с. 210-211).

[94] Однако, несмотря на эти благие намерения, интересно отметить, что SIMULA никогда не становился простым языком для изучения и использования. Большинству людей было очень трудно адаптироваться к образу мышления SIMULA, и Бьярн Страуструп, автор C ++, безусловно, самого популярного языка, похожего на SIMULA в 1990-х годах, утверждает, что для людей, которые не были знакомы с ключевыми понятиями, SIMULA была непостижимой , По его мнению, это также в значительной степени объясняет, почему язык так и не стал широко распространенным в использовании. Источник: интервью с Бьярном Страуструпом, 22 апреля 1993 г.

[95] Интервью с Кристен Нюгаард, 28 ноября 1991 г.

[96] Там же.

[97] На норвежском: Jernog metalprosjektet.

[98] Компьютерные профессионалы для социальной ответственности – это организация компьютерных профессионалов, которая концентрируется на определенных областях влияния компьютерных технологий на общество. Альянс восходит к осени 1981 года, когда несколько исследователей в Пало-Альто, штат Калифорния, решили что-то предпринять по поводу своей озабоченности по поводу тесной связи между компьютерами и гонкой ядерных вооружений.

[99] Джон М. Штауденмайер, SJ: Рассказчики технологий – перевоплощение человеческой ткани . Кембридж, Ма: Общество истории технологии и MIT Press, 1985. См. Также Вибе Э. Бийкер, Томас Хьюз и Тревор Пинч (ред.): Социальное конструирование технологических систем – новые направления в социологии и истории технологии. , Cambridge, Ma: MIT Press, 1987.

 

Оригинальная статья: http://staff.um.edu.mt/jskl1/simula.html