Эта статья имеет рейтинг Start-class по шкале оценки контента Википедии . Она представляет интерес для следующих WikiProjects : | ||||||||||||||||||||||||
|
Обсуждение слияния см. в разделе Talk:HP_BASIC_for_OpenVMS#BASIC-PLUS .
Кто-то только что добавил категорию "Командные оболочки" в BASIC+. Я не уверен, что согласен.
Хотя верно, что BASIC+ казался оболочкой для наивного пользователя, он обрабатывал только те команды, которые были специфичны для языка BASIC+, поэтому "OLD", "NEW", "RUN", "SAVE", "COMPILE" и т. п. Другие очевидные команды, которые BASIC+ сам не понимал, выбрасывались в системную службу, которая пыталась сопоставить команду пользователя с одной из известных команд CCL (Concise Command Language), которые были определены в этой конкретной системе. (Примечание: я мог перевернуть порядок обработки: CCL мог первым взломать команды.)
Так является ли BASIC+ действительно командной оболочкой? Или он просто действует как интерфейс к коду CCL, который можно было бы считать настоящей командной оболочкой?
Атлант 13:05, 14 августа 2006 (UTC)
через этот BASIC. Так что если это не было командной оболочкой, то вы утверждаете, что более ранние RSTS не *имели* командной оболочки. Что мне кажется чепухой. Подробности того, как это было реализовано, на самом деле не имеют значения.
В то время как DEC взяла на себя разработку BASIC-PLUS, первоначальная разработка была выполнена EG&H (Evans, Griffiths and Hart). Пол Конинг 11:01, 30 июля 2007 (UTC)
Похоже, автор этой статьи не понял, зачем существуют циклы FOR с условными условиями выхода.
Всегда было очевидно, что легко выйти из любого цикла FOR. Вы могли либо изменить переменную цикла на значение, соответствующее условию выхода (да, это работает даже для обычного цикла FOR), либо, что еще более очевидно, просто GOTO из цикла. Смысл FOR ... UNTIL или FOR ... WHILE был не в том, что NEXT не может быть в операторе IF, а в том, что он допускал совершенно произвольные условия выхода из цикла. Они вообще не должны ссылаться на саму переменную цикла. И также, даже в этих циклах, сама переменная цикла по-прежнему управляется так же, как и в любом другом цикле FOR. Нет необходимости явно обновлять переменную цикла. Она автоматически обновляется в операторе NEXT.
Итак, вы можете написать:
ДЛЯ I=0 ШАГ 3 ПОКА X=0...ДАЛЕЕ Я
и это будет повторяться до тех пор, пока X не станет равным нулю. Между тем, I увеличивался на 3 для каждой итерации в цикле.
Пример на странице глупый. FOR I=0 UNTIL I=10 на самом деле идентично FOR I=0 TO 9, и это просто более громоздкий способ записи.
(Конечно, можно также заметить, что, строго говоря, условные выходы также не были нужны, поскольку можно было просто создать оператор IF в цикле и перейти к выходу из цикла при правильных условиях. Однако в сочетании с модификаторами операторов он становится более актуальным и полезным.
Sillbit (обсуждение) 16:41, 13 декабря 2020 (UTC)
В статье упоминаются модификаторы утверждений, но не поясняется, зачем они вообще нужны.
Утверждение заключается в том, что PRINT "Foo" IF A=0 эквивалентно IF A=0 THEN PRINT "Foo"
Они не совсем одинаковы. Сравните следующие две строки:
10 ЕСЛИ A=0 ТО ПЕЧАТЬ "Foo" : ПЕЧАТЬ "Bar"20 ПЕЧАТЬ "Foo" ЕСЛИ A=0 : ПЕЧАТЬ "Bar"
В строке 10 второй оператор печати будет рассматриваться только в том случае, если оператор IF истинен. В строке 20 второй оператор печати не зависит от IF и всегда будет печататься.
Sillbit (обсуждение) 16:41, 13 декабря 2020 (UTC)
В какой-то момент BASIC+ перешел от использования двоеточия (:) в качестве разделителя операторов к использованию обратной косой черты (\). Не уверен, когда именно это произошло, но в какой-то момент двоеточие вообще перестало приниматься.
Sillbit (обсуждение) 16:48, 13 декабря 2020 (UTC)
Статья постоянно ссылается на RSTS/E, но это не верно. В частности, BASIC PLUS *не* был разработан для RSTS/E. RSTS начинался как RSTS-11, и именно на нем изначально работал BASIC PLUS. RSTS/E появился позже.