D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / FlashBASIC / Общие сведения

Общие сведения

Pick/BASIC-FlashBASIC

Язык программирования высокого уровня, который является основным языком программирования, поставляемым с системой Pick. Его назначение - это создание возможностей, не предоставляемых стандартными функциональными средствами D3. Pick/BASIC - это расширенный язык Dartmouth BASIC (Beginner's All-purpose Symbolic Instruction Code).

Исходный код на языке Pick/BASIC может содержать любое количество операторов в любой последовательности, которые хранятся в виде программ или подпрограмм, вызываемых другими программами или кодами обработки. Программы на языке Pick/BASIC создаются любым редактором по выбору и хранятся в виде записей файлов.

Перед выполнением каждая программа должна быть откомпилирована для преобразования исходного кода в объектный. Откомпилированная программа хранится в словаре файла, который содержит исходный код. Откомпилированные программы или подпрограммы могут каталогизироваться как глаголы в пользовательских главных словарях (см. команды "compile", "catalog", "decatalog" и "run" TCL).

В D3 исходный текст Pick/BASIC может быть откомпилирован традиционным путем или оптимизирован (Flashed). При оптимизации исходный текст Pick/BASIC преобразуется в исходный текст на C, а затем компилируется C-компилятором системы хоста с получением ассемблерного объектного кода.

В D3/NT исходный текст Pick/BASIC может быть откомпилирован традиционным путем или оптимизирован (Flashed). В последнем случае исходный текст Pick/BASIC компилируется в оптимизированный размеченный объектный код, который интерпретируется при исполнении. Этот оптимизированный код работает намного быстрее традиционного размеченного кода, но не так быстро, как ассемблерный код C-компилятора.

В связи с широким распространением Flash-компиляции исходных текстов, язык переименован во FlashBASIC, а название Pick/BASIC больше не используется.

Программы и подпрограммы

Программа на языке FlashBASIC состоит из операторов, которые, в свою очередь, состоят из команд FlashBASIC, переменных, констант, выражений и функций. Операторы FlashBASIC могут содежать арифметические, логические выражения и выражения отношения. Эти выражения формируются путем совместного использования определенных операторов с переменными, константами или встроенными функциями языка FlashBASIC. Значение переменной может динамически изменяться в ходе выполнения программы. Константа, что следует из самого термина, сохраняет свое значение в ходе прогона. Встроенная функция выполняет определенную предварительно запрограммированную операцию с представленным параметром или параметрами.

Как правило, в программе на языке FlashBASIC программист помещает на каждой строке только один оператор. Это делается для простоты чтения программы и отслеживания логики. Но на каждой строке программы можно поместить и более одного оператора, раделив их символами точки с запятой (;). Операторы, которые заканчиваются словом "then" или "else" на строке, создают блочную или сногострочную структуру.

Операторам FlashBASIC могут предшествовать метки. Метка оператора может быть цифровой или алфавитно-цифровой. Алфавитно-цифровая метка должна начинаться с буквы и представлять собой любую комбинацию букв, цифр, точек или знаков доллара. Алфавитно-цифовая метка может заканчиваться необязательным символом двоеточия (:). В цифровой метке двоеточие также необязательно. Пробелы и пустые строки могут использоваться в программе для улучшения внешнего вида и облегчения чтения.

Отличия подпрограммы от программы:

  • начинается с оператора sub или subroutine
  • заканчивает выполнение оператором return
  • может иметь входные параметры
  • вызывается из программы или подпрограммы оператором call
Типы данных, используемые во FlashBASIC

Язык FlashBASIC оперирует, в основном, с данными двух типов: цифровыми и символьными.

Цифровые данные состоят из наборов цифр и представляют количество - например, 123.

Символьные (строковые) данные состоят из наборов символов - например, "Jan Smith".

Числовое значение в пределах {+/-}140737488355327*(10(-p)), где "p" - точность в диапазоне от 0 до 9, хранится как цифровые данные. Числа, выходящие за эти пределы, хранятся как строковые данные.

Для поддержания максимальной точности в случае, если операция вызывает переполнение, внутри системы сохраняется точность до 18 разрядов после десятичной точки.

Результаты операций сложения (+), вычитания (-), деления (/), умножения (*) и вычисления остатка (\), выходящие за пределы {+/-}140737488355327*(10(-p)), не имеют ограничений по числовому диапазону значений.

Для таких операторов сравнения, как "меньше чем" (<), "равно" (=), "больше чем" (>), а также для арифметических функций int(x), abs(x), mod(x,y) и rem(x,y) ограничений диапазона нет, поскольку возможны только два варианта результата - "1" или "0".

Функции "ln", "sqrt", "pwr" и "exp" языка FlashBASIC возможны в пределах (+/-)140737488355327x(10(-p)).

Строка в D3 может содержать до 2 гигабайтов символов. Символьные константы представляют собой наборы символов, выделенных апострофами ('), двойными кавычками (") или символами обратной косой черты (\). Если какой-либо из строковых разделителей является частью строки, для выделения строки следует использовать другой разделитель.

Цифровые и символьные данные в программе FlashBASIC могут быть представлены в виде констант или переменных. Константа, как следует из самого термина, сохраняет свое значение в ходе всего выполнения программы. Переменная может содержать данные, не являющиеся ни строкой, ни числом - например, данные типа "root", "active list", "file.variable", но эти формы представления данных используются только в определенных операторах.