Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Особенности языка

Читайте также:
  1. E - Ученики, которые не изучают ничего, кроме одного языка программирования
  2. GJ Camp 2013 приглашает в волшебный мир английского языка.
  3. II. Климатические особенности района
  4. III. особенности обследования больного с перитонитом
  5. IV. Особенности философского метода и логики (теоретическое и эмпирическое знание, индукция и дедукция, формальная и диалектическая логика).
  6. V2: Анатомия венозной системы. Кровообращение плода и особенности кровеносного русла плода.
  7. А.С. Пушкин – основоположник совр рус лит языка

Язык UserProgram представляет собой интерпретатор Паскаль- подобного языка. Основные отличия его от стандартного Паскаля следующие:

 

Поддерживается два типа данных - числа (extended) и строки. Специального булевого типа нет, логические операции работают с числами, при этом считается что 0 = FALSE, любое число отличное от нуля значит TRUE.

Все логические операторы в качестве TRUE возвращают 1.

Также нет необходимости в специальном типе для даты и времени, так как в тип TDateTime совместим с extended.

 

Переменные объявлять не надо, они при необходимости создаются динамически при присваивании им значений. Тип определяется по последнему присвоенному значению, типовой контроль при присваивании не выполняется. То есть если существующей числовой переменной присвоить строку, ее тип изменится.

Символам строки можно присваивать числовые значения в диапазоне 0..255 или символы (строки длиной 1).

 

- В выражениях поддерживаются следующие операции:

арифметические: +, -, *, /, ^ (возведение в степень), SHL, SHR

операции с битами: BITOR,BITAND,BITXOR,BITNOT

логические: >, <, >=, <=, =, <>, AND, OR, NOT, константы TRUE и FALSE.

Tакже можно использовать скобки. Порядок выполнения операций стандартный.

 

- В интерпретаторе поддерживаются операторы:

BEGIN... END

IF... THEN... ELSE

CASE

FOR... TO/DOWNTO... DO

WHILE... DO

REPEAT... UNTIL

CONTINUE

BREAK

GOTO

EXIT

USES

INCLUDE

 

Допускаются одинаковые операторы присваивания и равенства. Интерпретатор может сам различать их в зависимости от контекста. Все остальные зарезервированные слова должны отличаться друг от друга.

 

Поддерживаются многомерные массивы, которые хранятся как набор переменных. Имена таких переменных состоят из имени массива и индексов в квадратных скобках. Имя массива должно быть уникальным, не допускается одновременное существование обычной переменной и переменной массива с тем же именем (например, переменная с именем MyArr и элемент массива MyArr[1]). Так как элементы массивов хранятся как обычные переменные, на них распространяются все правила применимые к обычным переменным.

 

Массивы не надо объявлять, элементы одного массива могут хранить как строки так и числа. Для диапазона индексов массивов нет никаких ограничений. Непрерывность элементов массива также не обязательна. Чтобы создать непрерывную последовательность элементов массива им надо просто присвоить (например, в цикле) какие - либо значения. Кроме того, к символам строк можно обращаться как к массиву символов. Так, например, MyArr[1][2] значит обращение ко 2-му символу 1-й строки массива MyArr. Запись MyArr[1] может значить либо первый символ обычной строковой переменной MyArr, либо первый элемент массива. Но так как элемент массива и переменная с таким же именем одновременно существовать не могут, неоднозначность не возникает.

 

Поддерживаются процедуры и функции на языке интерпретатора. В списке параметров процедур и функций необходимо только перечислить имена формальных параметров. Типы параметров и способ передачи указывать не надо, также в объявлении функций не надо указывать тип возвращаемого значения. Для возврата значения функции используется переменная "result". Если в качестве параметра функции или процедуры передается глобальная переменная интерпретатора, этот параметр для данного вызова считается VAR-параметром и его изменение внутри функции изменит значение глобальной переменной. В то же время все глобальные переменные интерпретатора внутри функции или процедуры ведут себя, как локальные переменные, которым присвоены начальные значения совпадающие со значениями одноименных глобальных переменных. Их значения доступны в процедурах и функциях, их можно изменить, но после выхода из процедуры или функции значение глобальной переменной не изменится. Все новые переменные, созданные внутри процедур и функций являются локальными, и после выхода из процедуры/функции исчезнут. Таким образом, в процедурах и функциях можно использовать любые имена для локальных переменных, не опасаясь что они совпадут с именами глобальных переменных.

 

Для реализации библиотек процедур можно использовать операторы USES и INCLUDE.

Их синтаксис: USES 'имя файла';

INCLUDE 'имя файла';

 

Операторы USES и INCLUDE обрабатываются препроцессором, до начала выполнения скрипта. Оператор INCLUDE вставляет в скрипт текст из файла. Оператор USES только загружает реализации процедур и функций, чтобы их можно было использовать при выполнении скрипта.

 


Дата добавления: 2015-10-30; просмотров: 121 | Нарушение авторских прав


Читайте в этой же книге: Создание новой кривой (Ручная кривая) | Перевернуть кривую | Шкала пористости | Расчет статистических характеристик кривой (Статистика) | Увязка кривых ГИС по реперам | Сдвиг по глубине | Привязка кривых ГИС по локатору муфт | Для привязки по локатору муфт | Групповой сдвиг кривых по глубине | Пересчет кривых |
<== предыдущая страница | следующая страница ==>
Вычисления с кривыми| Порядок разделов в программе

mybiblioteka.su - 2015-2024 год. (0.007 сек.)