~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ D3D1FCF9733A65E8514D34978E0E9971__1712017140 ✰
Заголовок документа оригинал.:
✰ Dartmouth BASIC - Wikipedia ✰
Заголовок документа перевод.:
✰ Дартмутский БЕЙСИК — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Dartmouth_BASIC ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/d3/71/d3d1fcf9733a65e8514d34978e0e9971.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/d3/71/d3d1fcf9733a65e8514d34978e0e9971__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 11:26:38 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 2 April 2024, at 03:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Дартмутский БЕЙСИК — Википедия Jump to content

Дартмут БЕЙСИК

Из Википедии, бесплатной энциклопедии
Дартмут БЕЙСИК
Парадигма императив , массив
Разработано Джон Дж. Кемени , Томас Э. Курц
Впервые появился 1964 год ; 60 лет назад ( 1964 )
ТЫ Дартмутская система разделения времени
Под влиянием
ФОРТРАН , АЛГОЛ
Под влиянием
См. список БАЗОВЫХ диалектов

Dartmouth BASIC — оригинальная версия BASIC языка программирования . Его разработали два профессора колледжа Дартмутского Джон Дж. Кемени и Томас Э. Курц . Благодаря базовой системе разделения времени Дартмута (DTSS) она предлагала интерактивную среду программирования всем студентам, а также более широкому университетскому сообществу.

Несколько версий были созданы в Дартмуте, реализованы студентами бакалавриата и функционировали как система компиляции и запуска . Первая версия была запущена 1 мая 1964 года, а в июне она была открыта для обычных пользователей. Последовали обновления, кульминацией которых стал седьмой и последний выпуск в 1979 году. В 1975 году Дартмут также представил радикально обновленную версию, известную как Structured BASIC (или SBASIC ), в которую были добавлены различные структурированного программирования концепции . SBASIC лег в основу разработки стандарта ANSI Standard BASIC в начале 1980-х годов.

Большинство диалектов BASIC ведут свою историю с Четвертого издания (в котором, например, были добавлены строковые переменные, которые большинство пользователей BASIC воспринимают как нечто само собой разумеющееся, хотя в оригинале можно было печатать строки), но обычно не учитываются более эзотерические функции, такие как матричная математика. В отличие от компиляторов Дартмута, большинство других BASICов были написаны как интерпретаторы . Это решение позволило им работать в ограниченной основной памяти ранних микрокомпьютеров . Microsoft BASIC — один из примеров, рассчитанный на работу всего в 4 КБ памяти. К началу 1980-х годов десятки миллионов домашних компьютеров использовали тот или иной вариант интерпретатора MS. Он стал стандартом де-факто для BASIC, что привело к отказу от разработки ANSI SBASIC. Позже Кемени и Курц сформировали компанию для разработки и продвижения версии SBASIC, известной как True BASIC .

Многие ранние игры для мэйнфреймов ведут свою историю от Dartmouth BASIC и системы DTSS. Некоторые из них были собраны в HP Time-Shared BASIC версиях People's Computer Company « в книге Что делать после того, как вы нажмете Return» . [1] Многие из первоначальных списков исходных текстов в BASIC Computer Games и связанных с ними работах также ведут свою историю от Dartmouth BASIC.

История развития [ править ]

Предыдущая работа [ править ]

Джон Дж. Кемени поступил на математический факультет Дартмутского колледжа в 1953 году и позже стал его заведующим. В 1956 году он получил доступ к IBM 704 благодаря Массачусетского технологического института усилиям Регионального компьютерного центра Новой Англии . В том же году он написал язык DARSIMCO — версию ассемблера , упрощающую программирование математических операций. Ему помогал Томас Э. Курц , который присоединился к отделу в том же году. [2]

О DARSIMCO забыли, когда в 1957 году на машине был установлен первый компилятор FORTRAN . Появление FORTRAN преподнесло важный урок. Курц, которому внушили, что FORTRAN медленный, потратил несколько месяцев на написание программы на ассемблере 704, отладка которой занимала около часа процессорного времени и все еще не запускалась. Сдавшись, он переписал программу на ФОРТРАНЕ и запустил ее за пять минут. Урок заключался в том, что языки высокого уровня могут сэкономить время, независимо от их измеряемой производительности. [2]

В 1959 году школа получила свой первый компьютер — барабанный ЛГП-30 . Один студент написал для машины язык на основе FORTRAN под названием DART. Это привело к попытке создать компилятор АЛГОЛА 58, мы обратились к АЛГОЛУ 60 а когда это определение было окончательно доработано, . Написание компилятора было затруднено из-за очень маленького объема памяти, 32 КБ по современным меркам, и было чрезвычайно медленным, исходя из скорости барабана 3600 об/мин. Тем не менее, они смогли создать функциональную урезанную версию, известную как АЛГОЛ 30 . [3] Дальнейшее развитие привело к появлению SCALP, «Автономного процессора Алгола», однопроходного компилятора, который был готов запустить скомпилированную программу, как только перфолента закончила чтение исходного кода. Сразу же появятся результаты работы программы или любые сообщения об ошибках. Этот стиль работы «компиляция и работа» позже будет использоваться в BASIC. [3] [4]

В 1962 году Кемени и старшеклассник Сидни Маршалл [5] начал экспериментировать с новым языком DOPE (Dartmouth Oversimplified Programming Experiment) . Здесь использовались пронумерованные строки для обозначения инструкций, например, для сложения двух чисел использовалась DOPE:

 5 + АВС
 

Это означало: «В строке 5 выполните сложение значений переменных A и B и поместите результат в C». Несмотря на несколько загадочную компоновку, можно увидеть основу будущего языка BASIC. [6] Помимо основных математических операций, язык включал SQR, EXP, LOG, SIN и простую конструкцию ветвления. [7]

Компьютерные технологии в гуманитарных науках [ править ]

Кемени и Курц согласились с необходимостью повышения грамотности в программировании среди студентов за пределами традиционных областей STEM ; только 25% студентов Дартмута посещали курсы, связанные с STEM, но некоторый уровень математики использовался почти в каждой области. Более того, по мере того, как компьютеры становились все более важными в обществе, они задавались вопросом: «Как могут разумные решения относительно вычислений и их использования приниматься людьми, по существу неосведомленными о них?» [7]

Позже Кемени отметил: «Наше видение заключалось в том, что каждый студент в кампусе должен иметь доступ к компьютеру, а любой преподаватель должен иметь возможность использовать компьютер в классе, когда это необходимо. Это было так просто». [8] Но сделать это было бы практически невозможно, учитывая то, с чем им пришлось работать; время типичного запуска SCALP составляло около 15 минут, а языки были слишком сложны для использования пользователями, не владеющими STEM, для выполнения основных задач. [7]

Проблемой была не просто сложность, а вся концепция пакетной обработки . Студенты готовили свои программы на перфокартах или бумажной ленте, отправляли их операторам компьютеров, а затем в какой-то момент в будущем получали результат. Часто это выявляло ошибку, требующую повторения всего процесса. Как они позже выразились: «Если на одну попытку уйдет порядка 1 дня, ученик либо потеряет интерес, либо забудет, в чем заключались проблемы. В лучшем случае он будет тратить время на ожидание результатов дня. " [9] [а]

В 1959 году, во многом благодаря репутации Кемени как новатора в преподавании математики, факультет получил награду Фонда Альфреда П. Слоана на сумму 500 000 долларов на строительство нового здания факультета. [10]

Разработка концепции [ править ]

Во время визита в Массачусетский технологический институт в 1961 году они познакомились с PDP-1 с разделением времени и его недавно завершенной экспериментальной операционной системой . Джон Маккарти спросил Курца, почему они не использовали разделение времени в своих усилиях по распространению компьютеров в массы. Курц вернулся в Дартмут и сказал Кемени: «Нам следует разделить время», на что Кемени немедленно ответил «ОК». [11]

В эксперименте, направленном на проверку работоспособности этой концепции, студенты были разбиты на группы по пять человек и им давали по очереди включать LGP-30 с помощью SCALP. [4] Компьютерное время было разбито на 15-минутные сеансы, и каждой группе из пяти человек давали один сеанс, а затем передавали его следующей группе. Было обнаружено, что студенты обычно могут завершить свои программы за два или три «перехода» в течение одного занятия. Это ясно предполагало, что интерактивная система позволит сотням пользователей успешно использовать одну машину. [12]

Появление телетайпа Model 33, Teletype использующего недавно введенный ASCII по телефонным линиям, решило проблему доступа; Программистам больше не придется отправлять программы на карточках или бумажной ленте, теперь они будут использовать Модель 33 для ввода непосредственно в компьютер. Все, что было нужно, — это новая машина, достаточно быстрая для размещения системы разделения времени, и простой язык, которым могли бы пользоваться программисты. [13]

Когда тему простого языка стали рассматривать всерьез, Кемени сразу же предложил написать новый. Курца больше интересовала урезанная версия ФОРТРАНа или АЛГОЛА. [14] Но у этих языков было так много особенностей, что Курц согласился с Кемени:

Если бы мы исправили уродливые особенности ФОРТРАНа, у нас бы уже не было ФОРТРАНа. Мне неохотно пришлось согласиться с Джоном, что да, новый язык необходим. [15]

Со временем возникли четыре ключевых элемента; система будет использовать разделение времени, потребуется новый язык, чтобы привлечь пользователей к системе, новые курсы представят программирование как дополнение к другим предметам, и, наконец, терминалы будут открыты для всех пользователей. [16]

Начальная версия [ править ]

Официально проект стартовал в сентябре 1963 года. Целью была разработка языка и операционной системы на готовом компьютере. [17] В начале 1964 года они обратились в Национальный научный фонд (NSF) за финансированием. NSF отправил предложения, одно по системе разделения времени, а другое по языку, на экспертную оценку. В обзорах неизменно говорилось, что они не понимают сложности того, что пытаются сделать. Несмотря на эти негативные комментарии, NSF продолжил выдачу обоих грантов. Образовательные скидки, доступные от General Electric, привели к покупке компьютера GE-225 в эпоху, когда отказ от IBM все еще был чреват опасностью. [18]

GE-225 был соединен с гораздо более простой машиной DATANET-30 (DN-30) и жестким диском , подключенным к обеим машинам для совместного использования программ. [19] В то время у DN-30 не было какой-либо документации по программированию, поскольку он никогда не предназначался для отправки с завода без уже установленной программы. [18] Он включал одну ключевую функцию — прямой доступ к памяти (DMA) к более крупным машинам GE. Это означало, что небольшие сообщения можно было быстро передавать туда и обратно между машинами, позволяя немедленно выполнять команды, введенные пользователем, на 225. [20]

Система будет работать, если DN-30 будет запускать терминалы и сохранять работу пользователя на диск. Когда пользователь ввел RUNDN-30 будет использовать DMA для отправки этой команды на GE-225. 225 прочитает этот файл, скомпилирует его, запустит и передаст результаты обратно в DN-30, который распечатает выходные данные на терминале. [21]

Летом 1963 года, в ожидании покупки компьютера, GE предоставила доступ к одному из своих GE-225. Кемени начал работу над прототипом компилятора. Осенью студенты Майкл Буш и Джон МакГичи начали работать над проектом операционной системы. И язык, и ОС были сильно изменены за этот период, хотя основные цели остались прежними и были опубликованы в черновом виде в ноябре того же года. [19]

Школьная машина прибыла в последнюю неделю февраля 1964 года. [22] был готов к середине марта, [23] и официально передан 1 апреля. К тому моменту конструкция операционной системы уже была хорошо разработана. Большинство студентов-программистов, работавших над операционной системой, занимались этим по 50 часов в неделю в дополнение к своей обычной учебной нагрузке. [22] Язык разрабатывался параллельно в свободное время на другой машине 225. [24] Разработка ОС была завершена в апреле, а вся система, работающая на трех терминалах Model 33, была готова к концу месяца. Джон Кемени и Джон МакГичи запустили первую программу BASIC 1 мая 1964 года в 4 часа утра по восточному времени . [23]

Не совсем ясно, какими были первые программы. Многие источники, включая Дартмут, утверждают, что это была простая программа: [25]

ПЕЧАТЬ 2 + 2
 

Более поздняя история языка гласит, что две программы были напечатаны одновременно: одна Кемени, а другая - другим неназванным программистом. Они набирали свои программы, набирали RUN в то же время и получили правильные результаты. [26] Курц рано вставал, уже ушел домой и «пропустил все веселье». [27]

В течение следующего месяца система тестировалась с помощью тестовых программ класса численного анализа. В течение этого периода машина продолжала нормально работать в среднем пять минут. [28] Проблемы были оперативно решены, и в июне было принято решение увеличить количество терминалов до одиннадцати. Примерно в это же время на смену 225 пришел более быстрый GE-235. К осени использовалось 20 терминалов. [19]

GE стала называть комбинацию GE-235 и DN-30 GE-265. [29] складывая номера моделей вместе. GE построила около 75 дополнительных экземпляров GE-265. [30] многие для своего бизнеса в сфере обслуживания . GE называла их системами разделения времени Mark I. [31]

Новая система [ править ]

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

В 1965 году команда обратилась в GE за поддержкой в ​​дальнейших разработках. В сентябре вице-президент Луи Рейдер предложил новый GE-635 , который работал примерно в 10 раз быстрее и включал два процессора. Кроме того, будет добавлен второй DN-30 для обслуживания большего количества линий, достаточного для одновременной работы 150 пользователей. [32] Для его размещения потребовалось бы помещение большего размера, чем подвал Колледж-Холла, где проходила трасса 265. Питер Кивит, выпуск 22 года, наряду с дополнительной поддержкой со стороны NSF, привел к строительству Вычислительного центра Кивита, который открылся в декабре 1966 года. [32]

В ожидании прибытия этой машины летом и осенью 1966 года GE-635 в Римском центре развития авиации использовался для разработки MOLDS, «многопользовательской системы онлайн-отладки». GE-635 был введен в эксплуатацию в начале 1967 года, а с использованием MOLDS новая операционная система стала полностью функциональной в сентябре, когда GE-265 был распродан. [33]

GE предоставила машину бесплатно в течение трех лет в рамках более широкого соглашения, согласно которому Дартмут будет разрабатывать новые версии BASIC, а GE будет использовать ее для разработки новой версии своей версии операционной системы. [33] Это сотрудничество оказалось успешным; GE начала использовать эти машины в качестве своих систем разделения времени Mark II. [34] и к концу десятилетия они стали одним из крупнейших поставщиков систем разделения времени в мире. [32]

Когда эта система «Фазы I» вступила в эксплуатацию, команда Дартмута начала разработку «Фазы II», идеальной операционной системы. сменила название на Дартмутскую систему разделения времени Она была установлена ​​в марте 1969 года и вскоре после этого . По истечении трехлетнего периода GE подарила машину университету. Хотя две команды оставались в контакте и было предпринято несколько добросовестных попыток продолжить отношения, дальнейшего сотрудничества произошло мало, и партнерство официально закончилось 20 сентября 1972 года. [33]

Расширение базы пользователей [ править ]

Обзор 1968 года показал, что 80% студентов и 70% преподавателей в той или иной степени использовали систему. Сотни терминалов были разбросаны по всему кампусу, от больницы до бизнес-школы. 57% процессорного времени использовалось для курсовой работы, 16% — для исследований, а остальные 27% — для «развлекательного использования»; Дартмут активно поощрял пользователей играть в игры, чтобы получить практические навыки и преодолеть страх перед компьютером. [35]

Начав с еще одного гранта NSF, в 1967 году Дартмут также начал размещать терминалы за пределами кампуса, включая средние школы в этом районе. Что касается количества пользователей, на этих терминалах обслуживалось 69% от общего числа пользователей, хотя они использовали меньшее количество компьютерного времени. [35] К 1971 году существовало 79 удаленных терминалов, вплоть до Нью-Джерси и Бангора, штат Мэн . Они поддерживались мультиплексорными системами, которые позволяли поддерживать до 12 терминалов по одной телефонной линии голосового качества. Кроме того, некоторые из этих линий были доступны для коммутируемого доступа через модем . [36]

Влияние [ править ]

Разделение времени было основной областью исследований в 1960-х годах, и многие представители компьютерной индустрии предсказывали, что вычислительная мощность станет недорогой и широко распространенной. Наиболее известное заявление об этом высказал Джон Маккарти, который сказал, что «вычисления когда-нибудь могут быть организованы как общественная услуга, точно так же, как телефонная система является общественной услугой». [37]

Хотя с 1972 года в DTSS были доступны и другие языки. 98% его программ были написаны на Бейсике. [38] Благодаря BASIC компьютерные услуги стали гораздо более доступными для конечных пользователей, чьи задачи требовали слишком много времени для написания кода, чтобы их можно было решить на компьютере. Это привело к тому, что ряд производителей представили компьютеры, специально разработанные для этого рынка пользователей, которые хотели решать задачи малого или среднего масштаба и не особо беспокоились о максимальной производительности. В частности, две машины, нацеленные непосредственно на этот рынок, стали «наиболее широко используемыми из когда-либо разработанных небольших систем разделения времени». [34]

HP 2000 работал под управлением HP Time-Shared BASIC , комбинации BASIC и операционной системы с разделением времени, почти идентичной настройке DTSS. Система поддерживала до 32 одновременных пользователей, используя процессор HP 2100 младшего класса для запуска терминалов таким же образом, как Datanet-30 исходной установки GE-265, в то время как программы работали на более дорогой модели одна и та же машина, обычно отличающаяся тем, что у нее было больше основной памяти . BASIC от HP использовал полукомпилированный токенизированный формат для хранения программ, что сокращало время загрузки и означало, что «компиляция» была нулевой. [39]

Digital Equipment Corporation применила другой подход, используя предложение одной машины на основе существующей линейки PDP-11 с новой операционной системой RSTS/E и BASIC-PLUS . BASIC-PLUS более внимательно следил за пятым изданием, включая MATкоманд, но был реализован как чистый интерпретатор, в отличие от компилятора Dartmouth или токенизированного формата HP. Он также включал ряд структур управления, соответствующих модели JOSS , таких как PRINT I IF I > 10. [40] Tymshare SUPER BASIC также поддерживал структуры в стиле JOSS и матричную математику, но сохранил исходную операцию компиляции и запуска.

Практически каждый поставщик той эпохи предлагал какое-то решение этой проблемы, хотя они, возможно, и не были так сильно похожи на оригинал. Когда Курц начал рассматривать возможность создания стандарта ANSI для BASIC в 1973 году, он обнаружил, что количество доступных бюро обслуживания с разделением времени с BASIC было больше, чем с любым другим языком. К сожалению, этот успех также был проблемой; к тому моменту существовало так много вариаций, что стандарт казался невозможным. [34]

Игры на BASIC [ править ]

Кемени активно поощрял игры на платформе DTSS и считал это одной из основных причин успеха системы DTSS. [38] Вероятно, он был автором одной из первых игр для мэйнфреймов . Хотя Кемени не приписал это себе, позже он сослался на ФТБОЛ , заявив, что оно «было написано в воскресенье после определенной игры Дартмут - Принстон в 1965 году, когда Дартмут выиграл трофей Ламберта . Это своего рода памятная программа». Игра разочаровала «Принстон», пользующийся большим успехом. [41] [б]

По мере расширения системы, особенно после добавления обработки строк в BASIC, система DTSS стала основной платформой для разработки многих текстовых игр . В начале 1970-х годов People's Computer Company начала публиковать их в своем журнале, обычно преобразованном в более широко доступный HP BASIC. Многие из этих списков были собраны в их книге 1975 года « Что делать после того, как вы нажмете кнопку возврата» . Хотя они опубликованы в формате HP BASIC, большинство из них ведут свою историю либо от DTSS, либо от Зала науки Лоуренса в Калифорнии, где была установлена ​​аналогичная машина, известная как DECISION. [43]

Более известный сборник - BASIC Computer Games 1978 года, где около половины программ в книге были написаны либо в Дартмуте, в том числе еще одна - Кемени, Батнуме, либо, что чаще, в одной из многих средних школ, которые были связаны с ним после 1968 года. Особенно плодовитой средней школой была средняя школа Лексингтона в Массачусетсе , но появляются и многие другие школы. В ряде программ не указано их исходное местоположение, но они исходят от авторов, которые, вероятно, были связаны с системой через школу или общественные проекты, такие как Project SOLO. [44]

Многопользовательские видеоигры стали возможны на BASIC, когда Стивен Гарланд и Джон Макгичи разработали интерфейс нескольких онлайн-терминалов MOTIF для DTSS. Чтобы запустить игру, пользователь набирал LINK, а затем имя сеанса вместо RUN, тем самым позволяя другим пользователям подключиться к игре, набрав JOIN и имя сеанса. Затем MOTIF мультиплексировал ввод и вывод для программы BASIC, добавляя строковый идентификатор в начало каждой строки ввода и вывода. Первыми программами, разработанными с этим интерфейсом, были версия FTBALL для двух человек и игра в покер для пяти человек. Более серьезной была управленческая игра, которая позволила десяти студентам Школы делового администрирования Амоса Така соревноваться в производстве и маркетинге одного продукта. [45]

Версии [ править ]

Первое издание [ править ]

Исходная версия, позже известная как первая, поддерживала команды LET, PRINT, END, FOR...NEXT, GOTO, GOSUB...RETURN, IF...THEN, DEF, READ, DATA, DIM, и REM. Он включал базовые математические инструкции, +, -, * и /, а также стрелка вверх для показателей степени «...поскольку на телетайпной машинке невозможно печатать верхние индексы». [46] В современных разновидностях стрелка вверх обычно заменяется символом «шляпки». ^. Экспоненты принимают абсолютное значение числа перед расчетом, поэтому для расчета -X^3, нужно было использовать X*X*X. Была еще одна проблема с экспоненциальной функцией, которая обрабатывала -X^2 как (-X)^2 в отличие от правильного порядка операций -(X^2), что не было исправлено до третьего выпуска. [46] INT() функция всегда усекается до нуля. [47]

Язык имел ряд собственных особенностей. В отличие от более поздних версий, LET команда требовалась для всех операторов, в которых не было другой команды, поэтому 10 A=5*5 недействительно в этой версии. [47] PRINTоператор использовал запятую при печати нескольких переменных, переходя к следующей из пяти «зон». Запятая не требовалась в случае, когда печаталось приглашение и одно значение, поэтому PRINT "value of A is "Aбыл действительным. Несколько скрытой особенностью было то, что все переменные могли представлять массивы (векторы) до десяти элементов (индексы от 1 до 10, измененные на 0–9 во втором издании) без объявления таким образом с помощью DIM. DIM был необходим только в том случае, если требовался другой размер вектора. [48] [с]

Имена переменных были ограничены одной буквой или буквой, за которой следовала цифра (286 возможных имен переменных). Пользовательские функции могут иметь только одну букву, поэтому FNA через FNZ. Все операции выполнялись с плавающей запятой . На GE-225 и GE-235 это обеспечивало точность около 30 бит (примерно десять цифр) с диапазоном показателя степени по основанию 2 от -256 до +255. [49]

Кроме того, поскольку размер слова GE-235 составлял 20 бит и использовался шестибитный код символов , в языке было закреплено использование трехбуквенных имен функций, поскольку это позволяло хранить три шестибитных символа в 20-битном коде. слово (с использованием 18 бит). Вот почему функции BASIC состоят из трех букв, например INT или SQR, то, что сохранялось во многих вариантах языка еще долгое время после того, как они покинули GE-235. [47]

Второе издание, CARDBASIC [ править ]

Второе издание BASIC (хотя в то время оно так и не называлось) внесло лишь минимальные изменения. Выпущенный в октябре 1964 года, он мог начинать массивы с индекса 0 вместо 1 (полезно для представления полиномов ) и добавлял точку с запятой, ;, к PRINT заявление. [50] В отличие от более поздних реализаций, в которых между элементами оставалось пространство, точка с запятой продвигала печать до следующего кратного трем символам, что было полезно для «упаковки» большего количества чисел в строку вывода, чем существующий разделитель-запятая. [51] Трехсимвольный размер был побочным эффектом 20-битного размера слова GE-235 , в котором хранились три шестибитных символа. Переход к следующему трехсимвольному столбцу осуществлялся просто переходом к следующему слову в памяти. [52]

Октябрьская версия также включала отдельное определение CARDBASIC, который представлял собой просто версию BASIC для использования в рабочих процессах на основе карточек. CARDBASIC был почти идентичен интерактивной версии, за исключением того, что он не включал массивы с нулевым отсчетом. Что еще более важно для будущего языка, CARDBASIC добавил MATкоманды, работающие с числовыми матрицами. CARDBASIC не получил дальнейшего развития, поскольку вся идея BASIC заключалась в том, чтобы быть интерактивным. [50]

Третье издание [ править ]

Третье издание, выпущенное в 1966 году и первое, в котором использовалось название «издание», было первым, разработанным специально для работы на новом компьютере GE-635, который должен был появиться в ближайшее время. Эта версия включает в себя MAT функции из CARDBASIC, и теперь они могут использовать 0 в качестве нижнего индекса. [53]

Новый SGN функция дала знак своего аргумента (положительный?0 и отрицательный?1), а RESTORE добавлено для «перемотки» позиции READ/DATA. Проблема возведения в степень была решена, поэтому -X^2 будет интерпретироваться как -(X^2). [53] Кроме того, INT функция была изменена на истинное значение нижнего предела, в отличие от функции обрезки к нулю, которая позволяла реализовать округление с помощью INT(X+0.5). [47]

Главным изменением в этой версии стал новый INPUTоператор, анализирующий числовые значения, что впервые делает язык по-настоящему интерактивным во время выполнения; раньше единственным элементом управления во время выполнения было ввод STOPв мониторе. Кроме того, система теперь позволяла и поощряла отступы в циклах - функция, которой не было в большинстве других версий BASIC. [54]

Четвертое издание [ править ]

Третье издание использовалось на протяжении всего срока службы GE-235 до осени 1967 года. Однако, поскольку планировалось получить GE-635, весной 1967 года на модели 635 была создана экспериментальная версия. Эта версия была партнерской. между GE и Дартмутом, при этом GE представила новую операционную систему, а также ряд функций BASIC в результате своих собственных усилий по созданию Mark 1 BASIC. [54]

В эту версию, первоначально опубликованную как дополнение к Третьему изданию, добавлены RANDOMIZE команда «засеять» RND функция, и ON...GOTO«вычисляемый переход», который очень похож на аналогичную функцию в FORTRAN. Эта версия также позволяла ON...THEN, утверждая, что IF...THEN не требовал GOTOтогда это не требовалось бы здесь. Новый TAB функция переместила печать в заданный столбец от 0 до 74. [54] Еще одним внутренним изменением было еще раз изменить MATбыть основанным на 1; можно использовать 0-й индекс, но обычно он игнорируется различными командами. [55]

Основным дополнением этой версии стали строковые переменные, а также изменения в READ/DATA операторы, которые могут хранить в себе строки, и INPUTзаявление, чтобы прочитать их в интерактивном режиме. Одной из особенностей строковой системы было то, что при сравнении намеренно игнорировались конечные пробелы, поэтому «ДА» и «ДА» считались равными. [56] Позже выяснилось, что это была серьезная ошибка. [55] Строковые переменные обозначались знаком доллара, например A$, просто потому, что у них закончились символы, которые можно было найти на большинстве клавиатур. Кто-то заметил, что $ выглядит как S в слове «Строка», вот и все. [57]

Манипулирование строками осуществлялось с помощью нового CHANGEкоманда. Это преобразует строковое значение переменной в эквивалентный набор значений ASCII. Затем числовой массив можно было манипулировать и преобразовать обратно в строку. Например, этот код выводит на консоли «is»:

100   LET   S$   =  "Сейчас самое время" 
 110   ИЗМЕНИТЬ   S$   НА   S 
 120   LET   T  (  1  )   =   S  (  5  ) 
 130   LET   T  (  2  )   =   S  (  6  ) 
 140   LET   T  (  0  )   =   2 
 150   ИЗМЕНИТЬ   T   ДО   Т$ 
 160   РАСПЕЧАТАТЬ   Т$ 

В строке 140 длина строки устанавливается равной 2, которой должен управлять пользователь. Первый символ находится в T(1). Хотя эта система является гибкой, ее ни в коем случае нельзя было использовать. В более поздних версиях эта проблема будет решена с помощью новых функций. [58]

Незначительные изменения в этой версии изменили точку с запятой в PRINT операторы для «плотной упаковки» вывода без пробелов, [52] [59] и использование апострофа как краткой формы REM. [60] [д]

Официальное четвертое издание появилось только в 1968 году, когда к предыдущим дополнениям было добавлено несколько новых функций. Это включало возможность определять многострочные функции с помощью DEF командование и могущественный CHANGE оператор, который рассматривал строки как массивы ASCII -подобных кодов, поэтому с отдельными символами можно было работать без цикла по всей строке. [55] Это также была единственная функция манипулирования строками; чтобы извлечь один символ или подстроку, нужно было использовать CHANGEчтобы преобразовать его в массив чисел, манипулировать этим массивом, а затем преобразовать его обратно. Это была причина, по которой MAT снова стал базироваться на 1; длина строки помещалась в нулевое положение, и ее обычно нужно было игнорировать. [61]

Пятое издание [ править ]

Пятое издание, вышедшее в конце 1970 года, снова началось как два дополнения к четвертому изданию, вышедшему в феврале и апреле 1969 года. [55]

Основным изменением стало введение обработки файлов. Раньше любые заранее определенные данные, которые нужно было использовать в программе, нужно было помещать в строки DATA , а затем считывайте их по одной с помощью Команда ЧИТАТЬ . Эту функцию можно использовать для чтения файлов аналогичным образом. Команда INPUT теперь могла читать один элемент из файла и PRINT мог бы написать один. [62]

Файлы открывались через новый FILESКлючевое слово, за которым следовал список строковых констант, описывающих имена файлов. Поскольку это были константы, изменение имени файла требовало изменения кода, чтобы он соответствовал. Именам были присвоены номера, первое имя стало файлом №1 и так далее. Поддерживались два формата файлов: произвольный и линейный. С линейным файлом обращались так же, как с текстовым файлом сегодня, можно было LINPUT #1: A$ прочитать строку текста в строковую переменную, а затем PRINT A$ для вывода его на терминал. [62] В более поздних версиях добавлено FILE $1,name$ разрешить указывать файлы в виде строк, хотя какое-то время для этого требовалось FILES * в верхней части программы, чтобы указать, что вы использовали этот формат. [63]

Для файлов произвольного доступа имя должно было указывать тип данных внутри; % указал, что содержит двоичные данные, в то время как $num указано, что его следует читать как строки с максимальной длиной num. [62] Читать и WRITE может располагаться в любом месте файла с произвольным доступом с помощью RESET , в то время как текущее местоположение было возвращено командой LOC , а длина файла на ЛОФ . Во время последовательного чтения можно также проверить, находится ли он в конце файла, используя IF END THEN.... [64]

Еще одним важным изменением стала возможность одной программы BASIC вызывать другую с помощью команду CHAIN ​​и передавайте в нее переменные с помощью команды ОБЩИЙ список. Позже выяснилось, что эта базовая концепция имела ряд проблем, но тем не менее ее использовали для написания некоторых больших программ. [64]

Обработка строк получила серьезное обновление. Новый SEG$команда вернула новую строку, вырезанную из другой. В приведенном выше примере строка «is» извлекается из более крупной строки. Используя новую команду, это можно свести к LET T$ = SEG$(S$,5,6), который работает аналогично MID$ функция, встречающаяся в большинстве диалектов ( MID$(S$,5,2)). SEG$ использует первый и последний индексы; MID$ использует первый индекс и длину. LEN возвращала длину строки, которая в противном случае теперь обрабатывалась внутри и в большинстве случаев не требовала вычислений, и POS возвращал позицию одной строки внутри другой, что в большинстве диалектов обрабатывалось с помощью SUBSTR. Амперсанд, &, был введен для конкатенации строк . [58]

Также было добавлено множество более мелких изменений. Среди них были двумерные строковые массивы, в отличие от одномерных в предыдущей версии, а также возможность использовать DEF для определения как строковых, так и математических функций. Включены новые системно-ориентированные функции. CLK$ , DAT$ для работы со временем и датами, TIM , который возвращал прошедшее время, и USR$, который вернул номер пользователя, каким сегодня будет имя пользователя. Включены новые строковые функции. STR $ , ВАЛ , ASC , которые распространены в современных диалектах BASIC. ' как краткая форма для REM также появился в этой версии. [64]

Шестое издание [ править ]

Работа над шестым изданием началась осенью 1969 года, еще до того, как было завершено пятое издание. Для новой версии заранее была написана полная спецификация. Это контрастирует с предыдущими версиями, где документы спецификации были основаны на изменениях в компиляторе. Над этой версией работали Кемени и Курц, а также несколько бывших студентов, вернувшихся в качестве преподавателей: Стивен Гарланд, Джон МакГичи и Роберт Харгрейвс. Ему было дано значительное время на доработку: бета-версия работала в течение трех месяцев летом 1971 года, прежде чем она была наконец выпущена 21 сентября 1971 года. самая стабильная система программного обеспечения, которую Дартмут когда-либо создавал». [65]

Одним из самых больших изменений стала замена прежнего. CHAIN концепция с гораздо более четко определенным CALL который действовал аналогично GOSUB, но оно относилось к имени функции, а не к номеру строки. Функции были определены с использованием SUB...SUBENDи принимал при вызове произвольные параметры вместо использования глобальных переменных через COMMONдекларации. Еще одним важным изменением было использование дескрипторов файлов (числа), созданных с помощью FILE команда, похожая на OPEN который присутствует в большинстве современных BASICов. PRINT USING предоставлял форматированный вывод, похожий на FORTRAN, [66] пока LINPUT принимал ввод без интерпретации, позволяя вводить запятые, точки с запятой и даже код BASIC. [67]

Шестое издание было, по сути, последней версией исходной концепции BASIC. Оно оставалось неизменным на протяжении многих лет. Более поздние версии были существенно на разных языках. [65]

SBASIC [ править ]

В 1976 году Стивен Гарланд собрал ряд дополнений к структурированному программированию и создал Dartmouth Structured BASIC, или SBASIC. [68] Основная цель заключалась в замене структур управления, основанных на IF...THEN и GOTOс различными блочно-ориентированными структурами. Он сделал это с помощью прекомпилятора, который взял исходный код SBASIC, преобразовал его в BASIC 6-й редакции, а затем скомпилировал и запустил его как обычно. SBASIC также добавил ряд графических функций, основанных на PLOT команда, добавленная другими программистами. [69]

Блочные структуры завершались соответствующими операторами, как это было в Алголе 68 , в отличие от общих блочных структур, встречающихся в таких языках, Паскаль или C. как Например, DO WHILE... занимал несколько строк, пока не закончился LOOP. [70] DO цикл также можно выйти снизу, удалив WHILE или UNTIL и поместив условное выражение внизу LOOP. Бесконечные циклы поддерживались с помощью DO FOREVER или LOOP FOREVER. [71]

«Оригинальный» Dartmouth BASIC не допускал высказываний после THEN, только номер строки для перехода. SBASIC допускал любые операторы, например IF X < 5 THEN X=X+1. [72] Это базовое расширение до IF...THEN, впервые внедрившая BASIC-PLUS в 1972 году , [73] К этому моменту уже широко поддерживался большинством разновидностей BASIC, включая версии для микрокомпьютеров , которые выпускались в то время. Помимо этого, в SBASIC добавлена ​​блочно-ориентированная IF путем размещения THEN на отдельной строке, а затем заканчивая блок словами CONTINUE. [74] Кроме того, SBASIC добавил SELECT CASE механизм, который сохранился и по сей день в Visual Basic .NET . [75]

В SBASIC также добавлен ряд графических команд, предназначенных для использования с плоттерами . Это потребовало PLOTTER "plottername" для направления последующих команд выбранному устройству, а WINDOW...для настройки его параметров. С тех пор, PLOT X,Y будет создавать точки на выбранном плоттере, добавляя точку с запятой в конце оператора, как это используется в PRINT, оставил бы ручку на бумаге и провел бы линию, например PLOT 10,10;20,20. [76] [77]

SBASIC в конечном итоге лег в основу стандарта ANSI X3.113-1987 для Full Basic 1987 года , который расширил более ранний стандарт ANSI X3.60-1978 ANSI X3.60-1978 для Minimal Basic 1978 года. Длительная задержка в разработке этого стандарта, а также отсутствие внимания среди ученых-компьютерщиков к неструктурированному Бейсику, привели к тому, что комитет Совета колледжей, разрабатывающий Курс продвинутого уровня по информатике , который возглавлял Гарланд, решил потребовать использования Паскаля и не допускать использования Бейсика в качестве базового языка. язык для курса. [78] [79]

Гарланд использовал SBASIC для преподавания вводного курса информатики в Дартмуте. [80] [81] но переписал свой учебник для курса на Паскале [82] чтобы его можно было использовать для преподавания курса AP.

Седьмое издание [ править ]

SBASIC Гарланда представлял собой прекомпилятор, написанный на самом исходном коде SBASIC. Система читала исходный код SBASIC, записывала соответствующий код 6-го издания, а затем компилировала этот вывод. Седьмое издание, выпущенное в 1980 году, представляло собой версию SBASIC, которая представляла собой отдельный автономный компилятор. Он добавил ряд собственных дополнений. Большинство изменений представляли собой дальнейшую разработку системы вызова внешних программ и «наложений», которые можно было использовать для разбиения программы на части. В этой версии SUBСовместное использование одного файла эффективно разделяет данные между ними. Это обеспечивало некоторое сокрытие данных внутри группы процедур. Сегодня это разделение будет известно как модуль. [83]

Кроме того, в этом выпуске добавлена ​​структурированная обработка ошибок и произвольная матричная математика. LET заявления, чтобы можно было LET A = M*4 где M было матричной переменной, и оператор выводил в A еще одну матрицу со всеми элементами M, масштабированными на 4. Наконец, еще одним важным обновлением было использование записей активации для подпрограмм, что сделало возможной рекурсию . [83]

ANSI BASIC, восьмое издание [ править ]

К началу 1970-х годов количество реализаций BASIC выросло до десятков, каждая из которых имела свои собственные изменения базовой концепции, представленные в исходной версии. Большинство из них были основаны на пятом издании, хотя им часто не хватало инструкций MAT и возможности делать отступы в коде. GE была одной из этих компаний; они выпустили свои системы Mark II вместе с 5-м изданием, вместо того, чтобы ждать появления 6-го издания несколько месяцев спустя. [84] BASIC-PLUS на платформе DEC был, пожалуй, самой близкой реализацией, включая, например, команды MAT, но затем в него был добавлен ряд изменений, которые не были обратно совместимы. [40]

После выпуска 6-го издания Курц занялся определением стандарта BASIC. Рабочая группа Американского национального института стандартов (ANSI) X3J2 была сформирована в январе 1974 года, а в сентябре того же года — соответствующая группа Европейской ассоциации производителей компьютеров (ECMA) TC21. Целью в то время было создание двух связанных стандартов. Минимальный BASIC будет похож на второе издание, но с добавлением строк - стандарта, которому уже может соответствовать практически каждый BASIC. Стандартный BASIC добавит больше функциональности, чтобы создать что-то большее, соответствующее реальным разновидностям BASIC, представленным на рынке. [84]

Процесс был медленным, и первый проект Minimal BASIC не был опубликован до января 1976 года, что привело к его официальному принятию в декабре 1977 года ECMA и ANSI в 1979 году как X3.60-1978. Минимальный BASIC был похож на третье издание, включая строковые переменные, но не имел MAT и других расширенных функций. [85] Напротив, в Standard BASIC было много новых функций, которых не было в других BASIC, и многие из них были плохо рассмотрены и стали предметом некоторой критики. Например, стандарт включал символ продолжения строки, но выбрал амперсанд, &, который также использовался для объединения строк. Использование их в одной строке может привести к очень запутанному коду. [86]

К этому времени выпуск первых микрокомпьютерных систем в 1975 году быстро привел к появлению Altair BASIC , первой версии того, что вскоре стало известно как Microsoft BASIC . MS BASIC был создан по образцу BASIC-PLUS и, в конечном итоге, пятого издания, но в нем не было отступов, MAT и других функций. Он также добавил LEFT$ и RIGHT$функции, нарушая трехбуквенное соглашение. По мере того, как в конце 1970-х годов число микрокомпьютеров росло и в конце 1970-х годов они превратились в рынок домашних компьютеров , MS BASIC стал стандартом де-факто . [84]

Из-за этих быстрых изменений на рынке усилия по созданию Standard BASIC еще больше замедлились и не были официально ратифицированы до 1987 года как X3.113-1987. К этому времени у стандартов не было реальной цели; Мало того, что MS BASIC был повсюду, но к середине 1980-х годов использование BASIC сокращалось, поскольку программное обеспечение для термоусадочной упаковки заменило программы ввода. Оба стандарта в конечном итоге были отменены. [84]

Несмотря на окончательный провал усилий ANSI, проект стандарта BASIC был реализован в Дартмуте как восьмое издание в 1982 году. [83]

Интерфейс DTSS [ править ]

DTSS реализовал раннюю интегрированную среду разработки (IDE): интерактивный интерфейс командной строки . Это обеспечило ряд команд пользователя и управления заданиями. Например, незанятый терминал можно подключить к учетной записи пользователя, набрав HELLOи снова вышел из системы с помощью BYE. [Это]

Любая строка, введенная пользователем и начинающаяся с номера строки, добавлялась в программу, заменяя любую ранее сохраненную строку тем же номером; все остальное считалось командой DTSS и немедленно выполнялось. Строки, состоящие исключительно из номера строки, не сохранялись, но удалялись все ранее сохраненные строки с тем же номером. Этот метод монтажа был необходим в связи с использованием телетайпов в качестве оконечных устройств.

Каждая учетная запись пользователя может содержать любое количество программ BASIC, хранящихся в автономном режиме, а учетные записи администратора также могут оставлять программы в постоянном хранилище. Любой из них был активен в определенный момент времени для данной учетной записи пользователя, и если ни одна программа не была загружена, предполагалась новая программа. Доступ к хранимым программам осуществлялся с помощью команд, которые сегодня более известны как части самого языка BASIC; например, LIST Команда дала указание DTSS распечатать текущую активную программу.

Список команд [ править ]

HELLO
войти в ДТСС
BYE
выйти из ДТСС
BASIC
запустить базовый режим
NEW
назвать и начать писать программу
OLD
извлечь ранее названную программу из постоянного хранилища
LIST
отобразить текущую программу
RUN
выполнить текущую программу
STOP
прервать текущую программу
TEST
используйте программу, предоставленную инструктором, для тестирования текущей программы
LINK
выполнить текущую программу в многотерминальном режиме
JOIN
присоединиться к программе, выполняющейся в многотерминальном режиме
SAVE
сохранить текущую программу в постоянном хранилище
UNSAVE
очистить текущую программу из постоянной памяти
REPLACE
сохранить текущую программу, используя имя, которое уже используется для другого файла
CATALOG
отображать названия программ в постоянном хранилище
SCRATCH
стереть текущую программу, не очищая ее имя
RENAME
изменить название текущей программы, не стирая его
FRI
включить режим Friden для телетайпов с механическим переводом строки
NFR
отключить мирный режим
EXP
объяснение (помощь) EXP EXP для списка команд, которые может объяснить система

Пользователи часто считали эти команды частью языка BASIC, но на самом деле они были частью системы разделения времени, а также использовались при подготовке программ ALGOL или FORTRAN через терминалы DTSS.

ОБУЧЕНИЕ/Тестовая система [ править ]

Около 80% всех студентов Дартмута в конце 1960-х годов прошли два курса математики и на втором курсе изучили базовый курс либо по математическому анализу, либо по конечной математике. В начале этих курсов они прочитали две одночасовые лекции по Бейсику, а затем им пришлось написать четыре программы на Бейсике, начиная от программ для аппроксимации π или поиска корня многочлена пятой степени до программ для решения дифференциального уравнения или поиска (путем моделирование) предельная вероятность в цепи Маркова. Система TEACH/Test помогла учащимся выполнить эти задания. Когда они считали, что у них есть работающая программа, они вводили команду TEST, и программа, написанная инструктором, либо одобряла то, что они написали, либо давала подсказку о том, где они могли ошибиться. Студенты должны были сдать список каждой программы, образец RUN и одобрение системы TEACH/Test. Система не оценивала задания и не записывала, сколько раз учащийся набирал TEST; он просто помогал студентам и их преподавателям. [87] [88]

язык БЕЙСИК [ править ]

В первом выпуске были реализованы следующие типы операторов, взяв некоторые операторы и ключевые слова из FORTRAN II , а некоторые из ALGOL 60 . В целом язык более точно соответствует модели FORTRAN. [46] в том, что он обычно имеет один оператор на строку кода, не имеет «блоков» АЛГОЛа для группировки кода (эти конструкции структурированного программирования были основной причиной разработки АЛГОЛа) и использования GOTO для управления потоком программы.

Из АЛГОЛА понадобилось FOR...TO...STEP циклы стилей, пришедшие на смену громоздким формам FORTRAN. DO...CONTINUE заявления. [47] BASIC также упростил IF...THEN конструкция, позволяющая проводить простые сравнения, например IF X>5 THEN GOTO 20, в отличие от FORTRAN IF (X-5) 20,20,30. [47] Стиль FORTRAN «вычисляемый ЕСЛИ» был вновь представлен с появлением ON...GOTO команда в более поздних версиях.

Имена переменных были ограничены от A до Z, от A0 до A9, от B0 до B9, ..., от Z0 до Z9, что давало максимум 286 возможных различных переменных. Странная система FORTRAN для настройки переменных от I до N как целых чисел, а остальных как с плавающей запятой, была удалена, и предполагалось, что все переменные имеют плавающую запятую и содержат до 10 элементов. DIM Команда требовалась только в том случае, если массив содержал более десяти элементов. [47] Имена массивов были ограничены только буквами от A до Z.

Список операторов BASIC [ править ]

DEF
определить однострочные функции
DIM
(сокращение от «размерность» ) определяет размер массивов
END
определить конец программы
STOP
остановить программу до текстового конца
FOR / TO / STEP
определить циклы
NEXT
отметить конец петель
GOSUB
передать управление простым подпрограммам
RETURN
возврат управления из простых подпрограмм
GOTO
передать управление другому оператору
IF / THEN
принятие решений
LET / =
присвоить результаты формулы переменной
PRINT
выходные результаты
DATA
хранить статические данные внутри программы
READ
входные данные, хранящиеся в операторах DATA
REM
комментарий ("REMark")

Он также реализовал числовые переменные с плавающей запятой и арифметику.

Список операторов [ править ]

Арифметические операторы Реляционные/логические операторы
- Отрицание (унарное соч.) = Равно
+ Добавление <> Не равно
- Вычитание (двоичная операция) < Меньше, чем
* Умножение <= Меньше или равно
/ Разделение > Больше чем
? Возведение в степень => Больше или равно
Группирующий оператор
( ) Группировка

Список функций [ править ]

ABS
Абсолютная величина
ATN
Значение арктангенса (результат в радианах )
COS
Значение косинуса (аргумент в радианах )
EXP
Экспоненциальное значение
INT
Целое значение
LOG
Натуральное логарифмическое значение
RND
Случайное значение
SIN
Значение синуса (аргумент в радианах )
SQR
Значение квадратного корня
TAN
Значение тангенса (аргумент в радианах )

Примеры [ править ]

Ранние версии BASIC не имели возможности читать и записывать внешние файлы. Для представления списков данных, которые обычно читаются из файла, в BASIC включена функция DATAКлючевое слово, за которым может следовать сколь угодно длинный список элементов, заканчивающийся только на пределе длины строки. DATA был неисполняемым и при обнаружении пропускался. READ команды будут потреблять данные один за другим, отслеживая их местоположение в полной коллекции DATAэлементы во внутреннем указателе. В версии 3, RESTORE добавлена ​​команда для сброса указателя на первый DATA команда в программе.

В этом примере «первые три значения данных считываются в X, Y и Z соответственно. Значение -1 считывается в N. Следующие 11 значений, от .1 до .3, считываются в 11 элементов массива B. ." [89]

15   ЧТЕНИЕ   X  ,   Y  ,   Z 
 20   ЧТЕНИЕ   N 
 24   FOR   I  =  от 0   до   10 
 25   ЧТЕНИЕ   B  (  I  ) 
 26   СЛЕДУЮЩИЙ   I 
 40   ДАННЫЕ   4.2  ,   7.5  ,   25.1  ,   -1  ,   .1  ,   .01  ,   .001  ,   .0001 
 45   ДАННЫЕ   .2  ,   .02  ,   .002  ,   .0002  ,   .015  ,   .025  ,   .3  ,   .03  ,   .003 

В отличие от большинства последующих BASICов, Dartmouth BASIC, начиная с третьего издания, имел матричное ключевое слово: MAT, который может префикс ряда других команд для работы с целыми массивами данных с помощью одной команды. В этом примере из руководства 1968 года: [90] MAT INPUT Vиспользуется для ввода ряда переменных. Когда пользователь ничего не вводит в строку, этот процесс завершается и общее количество элементов становится доступным в NUM псевдопеременная. [ф] Затем код складывает все отдельные элементы матрицы и вычисляет среднее значение. В Третьем издании также добавлены отступы, которые используются здесь для пояснения структуры цикла.

5   LET   S   =   0  
 10   MAT   INPUT   V  
 20   LET   N   =   NUM  
 ​​30   IF   N   =   0   THEN   99  
 40   FOR   I   = от   1   до   N  
 45     LET   S   =   S   +   V  (  I  )  
 50   СЛЕДУЮЩИЙ   I  
 60   ПЕЧАТЬ   S  /  N  
 70   ПЕРЕХОД   К   5  
 99   КОНЕЦ 

Примечания [ править ]

  1. Обратите внимание на использование термина «его», что в данном случае было единственной возможностью, поскольку Дартмут принимал женщин только некоторое время спустя.
  2. Дэвид Аль заявил, что Кемени написал это, описывая игру в BASIC Computer Games. [42]
  3. ^ Эта функция была обнаружена в большинстве BASIC, основанных на Dartmouth, но редко встречалась в тех, которые были созданы независимо.
  4. ^ Неясно, использовался ли апостроф в предыдущих версиях, руководство по версии 4 является первым, в котором об этом упоминается явно.
  5. ^ Выходить из системы не требовалось, если пользователи не отвечали, они выходили из системы после небольшой задержки.
  6. ^ Почему NUM не был реализован как функция, например LEN(), это загадка.

Ссылки [ править ]

Цитаты [ править ]

  1. ^ Что делать после того, как вы нажмете Return . Народная компьютерная компания. 1975.
  2. ^ Перейти обратно: а б Курц 1981 , с. 516.
  3. ^ Перейти обратно: а б Курц 1981 , стр. 516–516.
  4. ^ Перейти обратно: а б Кемени и Курц 1985 , с. 7.
  5. ^ Кемени и Курц 1985 , с. 8.
  6. ^ Курц 1981 , с. 517.
  7. ^ Перейти обратно: а б с Курц 1981 , с. 518.
  8. ^ Время 2014 года .
  9. ^ Кемени и Курц 1968 , с. 3.
  10. ^ «Высшая математика в Ганновере» . Время . 23 февраля 1959 года.
  11. ^ Кемени и Курц 1985 , с. 3.
  12. ^ Кемени и Курц 1985 , с. 4.
  13. ^ Курц 1981 , с. 519.
  14. ^ Кемени и Курц 1985 , с. 6.
  15. ^ Кемени и Курц 1985 , с. 9.
  16. ^ Курц 1981 , стр. 519–520.
  17. ^ Киевит 1971 , с. 9.
  18. ^ Перейти обратно: а б Кемени и Курц 1985 , с. 5.
  19. ^ Перейти обратно: а б с Курц 1981 , с. 520.
  20. ^ General Electric Computers (1965). Справочное руководство по программированию DATANET-30 (PDF) .
  21. ^ Дартмутская система разделения времени (DTSS). Март 1995 года . Проверено 27 мая 2016 г.
  22. ^ Перейти обратно: а б Кемени и Курц 1968 , с. 224.
  23. ^ Перейти обратно: а б Киевит 1971 , с. 10.
  24. ^ Кемени и Курц 1968 , с. 225.
  25. ^ «1960-е годы» . Дартмутский ИТС .
  26. ^ Кемени и Курц 1985 , стр. 16, 22.
  27. ^ Кемени и Курц 1985 , с. 16.
  28. ^ Кемени и Курц 1968 , с. 226.
  29. ^ Кемени и Курц 1985 , с. 21.
  30. ^ Кемени и Курц 1985 , с. 22.
  31. ^ Курц 1981 , стр. 532, 534.
  32. ^ Перейти обратно: а б с д Киевит 1971 , с. 11.
  33. ^ Перейти обратно: а б с Курц 1981 , с. 533.
  34. ^ Перейти обратно: а б с Курц 1981 , с. 534.
  35. ^ Перейти обратно: а б Киевит 1971 , с. 17.
  36. ^ Киевит 1971 , с. 18.
  37. ^ Гарфинкель, Симсон (1999). Абельсон, Хэл (ред.). Архитекторы информационного общества, тридцать пять лет Лаборатории компьютерных наук Массачусетского технологического института . Кембридж: MIT Press. п. 1. ISBN  978-0-262-07196-3 .
  38. ^ Перейти обратно: а б Кемени, Джон Г. (1972). Человек и компьютер . Нью-Йорк: Сыновья Чарльза Скрибнера. стр. 32–37, 41–42. ISBN  9780684130095 . LCCN   72-1176 .
  39. ^ Руководство по BASIC с разделением по времени (PDF) . Hewlett Packard. Август 1969 года.
  40. ^ Перейти обратно: а б Руководство BASIC-PLUS (PDF) . ДЕКАБРЬ. 1972.
  41. ^ «Джон Кемени и дедушка Tecmo BASIC FTBALL» . 17 октября 2017 года. Архивировано из оригинала 25 июля 2018 года . Проверено 25 июля 2018 г.
  42. ^ Ахль 1978 , стр. 64.
  43. ^ Что делать после того, как вы нажмете return . Народная компьютерная компания. 1975.
  44. ^ Ахль 1978 .
  45. ^ Джон С. Макгичи, «Несколько терминалов под управлением пользовательской программы в среде с разделением времени», Communications of the ACM 16:10, октябрь 1973 г., страницы 587 и –590.
  46. ^ Перейти обратно: а б с Курц 1981 , с. 523.
  47. ^ Перейти обратно: а б с д Это ж г Курц 1981 , с. 524.
  48. ^ Курц 1981 , с. 525.
  49. ^ Курц, Томас. «БАЗОВЫЕ команды: оригинальная версия» .
  50. ^ Перейти обратно: а б Курц 1981 , с. 526.
  51. ^ Человек4 .
  52. ^ Перейти обратно: а б Кемени и Курц 1985 , с. 24.
  53. ^ Перейти обратно: а б Курц 1981 , с. 527.
  54. ^ Перейти обратно: а б с Курц 1981 , с. 528.
  55. ^ Перейти обратно: а б с д Курц 1981 , с. 529.
  56. ^ Man4 , с. 66.
  57. ^ Кемени и Курц 1985 , с. 28.
  58. ^ Перейти обратно: а б Кемени и Курц 1985 , с. 29.
  59. ^ Man4 , с. 64.
  60. ^ Man4 , с. 52.
  61. ^ Man4 , с. 67.
  62. ^ Перейти обратно: а б с Кемени и Курц 1985 , с. 31.
  63. ^ Кемени и Курц 1985 , с. 32.
  64. ^ Перейти обратно: а б с Курц 1981 , с. 530.
  65. ^ Перейти обратно: а б Курц 1981 , с. 531.
  66. ^ Эллиотт 1988 , с. 134.
  67. ^ Кемени и Курц 1985 , с. 26.
  68. ^ Гарланд 1976 .
  69. ^ Гарланд 1976 , с. 1.
  70. ^ Гарланд 1976 , с. 4.
  71. ^ Гарланд 1976 , с. 5.
  72. ^ Гарланд 1976 , с. 6.
  73. ^ Руководство по языку BASIC-PLUS (PDF). Мейнард, Массачусетс: Корпорация цифрового оборудования. 1972. стр. 3–13.
  74. ^ Гарланд 1976 , с. 7.
  75. ^ Гарланд 1976 , с. 10.
  76. ^ Гарланд 1976 , с. 21.
  77. ^ Стивен Дж. Гарланд и Артур В. Люрманн, «Графика на языке BASIC», Компьютерная графика (ежеквартальный отчет SIGGRAPH-ACM) 8:3, страницы 1–8, 1974.
  78. ^ Мейс, Скотт (6 сентября 1982 г.). «Совет колледжа разрабатывает курс AP на основе Паскаля» . Инфомир . п. 29.
  79. ^ Стивен Дж. Гарланд, «Информатика для продвинутых специалистов», Компьютеры в математическом образовании , Вигго П. Хансен и Мэрилин Дж. Цвенг (редакторы), страницы 194–201. Ежегодник Национального совета учителей математики, 1984 г.
  80. ^ Стивен Дж. Гарланд, Введение в вычислительную технику и базовое программирование , программа по компьютерным и информационным наукам, Дартмутский колледж, 1982.
  81. ^ Стивен Дж. Гарланд, «Языки для первых курсов информатики: базовый», Abacus 1:4, страницы 39–49, лето 1984 г.
  82. ^ Стивен Дж. Гарланд, Введение в информатику с приложениями на Паскале , Аддисон-Уэсли, Ридинг, Массачусетс, 1986.
  83. ^ Перейти обратно: а б с Эллиотт 1988 , с. 135.
  84. ^ Перейти обратно: а б с д Маркони .
  85. ^ Минимальный БЕЙСИК (PDF) . ЭКМА. Январь 1978 года.
  86. ^ Гюнтерот, Курт (июль 1983 г.). «Новый стандарт ANSI BASIC». Уведомления ACM SIGPLAN . 18 (7): 50–59. дои : 10.1145/988216.988221 . S2CID   31236801 .
  87. ^ Джон Г. Кемени и Томас Э. Курц, «Дартмутское разделение времени», Science 162, 11 октября 1968 г., страницы 223–228.
  88. ^ Джон Г. Кемени и Томас Э. Курц, Дартмутская вычислительная система с разделением времени, итоговый отчет по гранту Национального научного фонда NSF-GE-3864, июнь 1967 г., страницы 9–10 и Приложение III.
  89. ^ Справочное руководство по языку BASIC . Интерданные. Январь 1975 г., стр. 3–24.
  90. ^ БЕЙСИК, 4-е издание, 1968 г. , стр. 53.

Библиография [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: D3D1FCF9733A65E8514D34978E0E9971__1712017140
URL1:https://en.wikipedia.org/wiki/Dartmouth_BASIC
Заголовок, (Title) документа по адресу, URL1:
Dartmouth BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)