2012-06-23 2 views
10

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

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

ответ

6

Есть так много ароматов 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 должен работать.

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

+1

Спасибо за подробный ответ. –

2

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

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

1

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^