Jump to content

Общие данные, расширенный BASIC

Расширенный БЕЙСИК
Разработчик(и) Общие данные
Первоначальный выпуск 1970 год ; 54 года назад ( 1970 )
Платформа Общие данные Нова
Тип БАЗОВЫЙ
Лицензия Коммерческое проприетарное программное обеспечение

Data General Extended BASIC , также широко известный как Nova Extended BASIC , был языка программирования BASIC интерпретатором для Data General Nova серии миникомпьютеров . Он был основан на оригинальном Dartmouth BASIC , включая строковые переменные пятого издания и мощный MAT команды для манипуляций с матрицей . В отличие от Dartmouth BASIC, который можно было компилировать и использовать , Extended BASIC был интерпретатором .

К этому в Extended BASIC добавлены манипуляции с подстроками с использованием нарезки массива , что было распространено на BASIC той эпохи, встречается в HP Time-Shared BASIC , Sinclair BASIC , Atari BASIC и других. Это контрастирует со стилем Microsoft BASIC , в котором используются строковые функции, такие как LEFT$и, таким образом, несколько затрудняет перенос строкового кода.

Позже Data General приобрела права на значительно расширенный BASIC, который был выпущен как Data General Business Basic . Это добавило мощные функциональные возможности базы данных и в значительной степени заменило Extended BASIC на платформах DG.

Описание

[ редактировать ]

Математика

[ редактировать ]

Во внутреннем формате чисел с плавающей запятой обычно используются два 16-битных слова общей длиной 32 бита, причем первым сохраняется младший бит . Биты 0 представляли собой знак, от 1 до 7 — показатель степени, хранящийся в формате превышения 64 , а от 8 до 31 — мантисса, хранящаяся в виде шестнадцатеричных цифр. [1] В качестве альтернативы числа могут использовать формат двойной точности, который расширяет только мантиссу, добавляя еще 32 бита. Это означало, что формат двойной точности не расширял диапазон чисел, которые можно было хранить, а только увеличивал точность этих чисел. [2] Возможные числа варьировались от 5,4 × 10. −79 до −7,2 × 10 75 . Числа с числом менее шести цифр отображались в виде десятичных дробей, а числа с большим количеством цифр отображались в экспоненциальном формате. [1]

Имена переменных могут состоять из одной буквы или буквы и одной цифры. Двухбуквенные имена не допускались. Массивы могут быть DIMmed в 1 (массив) или 2 (матрица) измерениях, а нижняя граница всегда равна 1. [2] Как это было принято в то время, переменные без DIM по умолчанию используется одномерный массив из 10 элементов. Как ни странно, если переменная была DIMed, это было не то же самое, что переменная с тем же именем, которая не была DIMред; A(1) и A могут быть одинаковыми или разными переменными в зависимости от того, как они были созданы. [3]

Математические операторы были стандартным набором с добавлением унарного плюса. [3] Операторы сравнения для сравнения также были стандартным набором, их не было. # для не-равных, как это встречается в некоторых современных BASICах. [3]

Матричная математика

[ редактировать ]

В расширенный BASIC добавлен набор матричных математических операций из пятого издания Dartmouth BASIC. По сути, это были макросы , выполнявшие операции, которые в противном случае можно было бы выполнить с помощью FOR...NEXT петли. [4]

Система включала в себя ряд предварительно свернутых матриц, таких как ZER для нулевой матрицы, CON для матрицы всех единиц, и IDN для единичной матрицы . Поддерживалось большинство математических операций, например, MAT A=A*2 умножает каждый элемент в A на 2. MAT A=DET A принимает определитель и MAT A=INV(A) инвертирует его. [4]

Строковые литералы (константы) заключались в двойные кавычки. Символы внутри строк можно экранировать, поместив их значение ASCII в угловые скобки, например: "This prints a quote, <34>." Строковые переменные, как и их числовые аналоги, состояли только из одной буквы или одной буквы и одной цифры. [5]

Как и в случае со всеми переменными в Extended BASIC, строковым переменным обычно выделялось десять пробелов, но их можно было расширить максимум до 32 КБ с помощью явного указания. DIM. Поскольку для объявления длины строки использовался синтаксис массива, массивы строк были невозможны. Присвоение строки переменной, которая была слишком маленькой и не могла ее удерживать, приводило к усечению любого лишнего. [6]

Манипулирование строками осуществлялось с использованием синтаксиса срезов массива . A$(10) относится к подстроке от позиции 10 до конца строки, а A$(10,20) относятся к символам с 10 по 20. При объединении использовалась запятая, поэтому A$=A$,B$ добавлен B$ до конца А$ . [7] Это был необычный синтаксис, даже когда он только появился, большинство BASIC, использующих нарезку, использовали его также и для конкатенации, например: A$(LEN(A$))=B$ добавил бы B$ в конце A$ , в то время как те, кто использует строковые функции, такие как Microsoft BASIC , уже широко использовали знак плюса для этой операции.

Это изменение синтаксиса произошло потому, что Extended BASIC позволял применять математические операторы к строкам вплоть до первого нечислового символа. Например, A="1234"+"2345" поместил бы 3579 в A без необходимости явного преобразования их в числа, что обычно обрабатывается с помощью VAL функционируют в большинстве диалектов. Нечисловые значения просто игнорировались. A="1234"+"FRED" поместите 1234 в А. [8]

В расширенном BASIC не было CHANGE команда из Дартмута, которая преобразовывала всю строку в значения ASCII в массиве или обратно, например: CHANGE "HELLOWORLD" TO B в результате B присваивается 10 чисел, каждое из которых представляет собой значение ASCII.

Заявления

[ редактировать ]

В остальном расширенный BASIC похож на Dartmouth и Microsoft BASIC по разнообразию поддерживаемых команд и их синтаксису. Исключения включают CON вместо CONT, DELAY вместо PAUSE (что в любом случае было нечасто). Два дополнения были ON ERR THEN... что позволяло перехватывать ошибки - функция, которая стала распространенной в других BASIC, и ON ESC THEN... что позволило также заблокировать клавишу Break (в данном случае escape). [9] RETRY был похож на CON, но позволял перезапустить одну строку после перерыва вместо продолжения всей программы. [10] TIME установить срок для TINPUT операторы ответа, которые были «синхронизированным вводом», в остальном идентичным INPUT. [11]

В расширенный BASIC добавлено множество операторов редактирования непосредственного режима , которые на самом деле не являются частью языка как такового . В их число вошли ERASE удалить диапазон строк из программы, ENTER считывать содержимое текстового файла в программу и RENUMBER. [12] CARDS был похож на ENTER, но читаем строки с картридера.

Он также добавил ряд операторов для работы с базовой файловой системой, в том числе FILE который перечисляет файлы в каталоге пользователя и LIBRARY который делает то же самое с подстановочными знаками, GDIR который напечатал имя этого каталога, LOAD и SAVE для программного кода, RENAME и DELETE, и DISK, который печатал свободное пространство. PUNCH было типа SAVE, но отправил файл на перфоратор . WHATS напечатал атрибуты данного файла. [13]

другие заявления, относящиеся к операционной системе. Включены WHO чтобы распечатать список вошедших в систему пользователей, MSG беспокоить их, PAGE чтобы установить правое поле (ширину страницы) и SIZE для печати памяти, используемой программой, противоположной тому, что было бы возвращено в MS BASIC с помощью FRE(). [14]

Функции очень похожи на Dartmouth и Microsoft BASIC, с некоторыми дополнениями. CPU() вернул числовое значение, кодирующее положения переключателей на передней панели. [15] EOF(x) вернулся ли файл или нет x достиг конца файла. POS(X$,Y$,Z) вернул позицию B$ в пределах A$ , где угодно после необязательной позиции Z , аналогично стандарту MS INSTR. [16] Обратите внимание, что это переопределяет POS найденный в MS, который возвращает текущую позицию столбца курсора.

Библиография

[ редактировать ]
  • Расширенное руководство пользователя BASIC . Общие данные. Январь 1978 года.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dab23367bcc0fc710819b9a989c828af__1694716920
URL1:https://arc.ask3.ru/arc/aa/da/af/dab23367bcc0fc710819b9a989c828af.html
Заголовок, (Title) документа по адресу, URL1:
Data General Extended BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)