Какая система ввода используется BASIC?

Я заметил, что нигде я не могу найти окончательного ответа на вопрос выше. Сначала я задавался этим вопросом, когда заметил, что вам никогда не приходилось указывать тип переменной в QBasic при их объявлении, хотя вы могли бы добавить суффикс к имени переменной, чтобы убедиться, что он имеет определенный тип.

Кроме того, поскольку некоторые диалекты BASIC интерпретируются, а другие скомпилированы, влияет ли это на систему ввода?

Ответ 1

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

Некоторые из старых BASIC (строка с номерами BASIC) имеют два типа данных: String или Integer. Исходным BASIC, который поставлялся с компьютерами Apple-II, был "Integer BASIC". Позже BASICs представили плавучую точку, которая часто была одиночной точностью FP. BASIC, поставляемый с TI-99/4a, был примером ранней версии 80 с плавающей точкой BASIC. "Обратный путь назад", вы должны сделать строковый литерал с кавычками и строковую переменную с сиглей $, следуя имени идентификатора. Переменные, у которых не было символа $, обычно будут по умолчанию соответствовать типу числовой переменной, которую поддерживает данный аромат базового элемента (Integer или Floating Point). Например, GWBasic по умолчанию будет плавать, если вы не указали сиг- нал %, что означало "Integer". TI Extended Basic не имел целочисленного типа, но числовой тип с плавающей запятой имел что-то вроде 15 значащих цифр, если я помню (математические ошибки с плавающей запятой не выдерживают).

Эти ранние основы были в основном статически типизированы, хотя различие было гораздо менее полезным, чем на более мощных языках. Вариантов для типов данных было немного: String, Number (иногда Int, иногда FP), а иногда и возможность указать, будет ли число Int или FP. За кулисами некоторые даже свободно конвертируются между ints и плавающей точкой по мере необходимости. Часто такие за кулисами конверсии не были хорошо документированы.

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

Более современные BASIC более мощные и позволяют более жесткий контроль над типами переменных (при необходимости).

Ответ 2

Ранние диалекты BASIC всегда были статически типизированы. Для числовых переменных, строковых переменных и массивов требуется различный синтаксис. Также длина имен часто ограничивалась одним символом. Наиболее часто используемый синтаксис был просто V для числовых, V$ для строки и массивов были объявлены отдельно с помощью DIM.

Поскольку я не программировал в Бейсике 15 лет, я не могу точно сказать, что происходит на современных диалектах.

Ответ 3

Расширенная версия BASIC, используемая в системах MultiValue Database, использует динамическую типизацию. Это означает, что компилятор решает, как обрабатывать вашу переменную на основе логики и контекста операторов.

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

В конечном итоге все сохраняется на уровне базы данных как строка ASCII. Таким образом, разработчик применяет тип на уровне бизнес-логики, в отличие от базы данных, обеспечивающей его соблюдение.