Navigation:  Внутренний язык программирования >

Введение

Previous pageReturn to chapter overviewNext page

Внутренний язык – это средство, предназначенное для программирования внутри среды программного комплекса. Он является неотъемлемой частью программного комплекса, поскольку на нем написаны все настройки.

clip1062

 

Встроенные средства работы с внутренним языком программирования включает в себя компилятор времени выполнения (интерпретатор) и отладчик.

Тексты программ интерпретатора могут находиться во внешних тестовых файлах или базе данных, а также написаны непосредственно на исходном языке программирования проекта (DELPHI).

В процессе выполнения программы, Интерпретатор выполняет компиляцию выражений и выполнение созданного псевдокода.

Так как основные тексты программ Интерпретатора находятся вне выполняемого файла проекта, они легко могут быть изменены без перекомпиляции и сборки проекта.

Поэтому существует возможность изменять процедуры, функции, документы и печатные формы "на лету", не выгоняя пользователей, что значительно упрощает процесс внедрения.

Далее описаны основные конструкции и особенности встроенного языка.

 

ПОЧЕМУ ВНУТРЕННИЙ ЯЗЫК ПОХОЖ НА CLIPPER

По синтаксическим конструкциям и именам функций язык максимально приближен к языку CLIPPER. Этот язык имеет превосходный синтаксис во многом заимствованный из языка Си, а также свои уникальные конструкции, например, блоки кода.

Основное преимущество языка Сlipper перед другими популярными языками программирования, например такими, как Си или Паскаль, состоит в интуитивной понятности его синтаксиса. У Clipper-программиста никогда «не болит голова» из-за несовместимости типов данных. Clipper не требует предварительного объявления типов функций и процедур, переменных и массивов. Для массивов и строк не требуется также указание их размерности. Любая переменная хранит в себе то, что в нее положили, пусть это даже массив, элементами которого являются подмассивы различной длины и содержания. Так же интуитивно просто Clipper организует создание баз данных и управление ими. Хотя сам Clipper создан давно, вряд ли сейчас есть язык понятнее его, предназначенный для управления базами данных.

 

Очень многие встроенные функции интерпретатора повторяют синтаксис аналогичных функций языка «CLIPPER».

 

Некоторые отличия от языка «CLIPPER»:

 

– Комментарии: // или /*        */;

Вложенные /* */ допускаются только в начале и конце строк (вложенные /* */ в одной строке не допускаются);

– Каждая строка программы, исключая управляющие конструкции, представляет собой выражение или набор выражений, разделенных запятыми;

– Передача параметров в подпрограмму через PUBLIC и PRIVATE переменные или с использование ключевого слова PARAMETERS, при этом создаются параметры – локальные переменные, которые могут иметь умалчиваемые значения;

– Оператор &(макро), выполняет вычисление выражения и возврат его результата, &(макро) от пустой строки возвращает пустую строку.

Отличие оператора &(макро) от функции RetSubst:

&(макро) от символьного выражения блока кода выполняет блок кода,

RetSubst от символьного выражения блока кода возвращает блок кода

 

Пример

&('{||a'}) => a

RetSubst('{||a}') => {||a}

 

в &(макро) доступны все классы переменных (видны локальные и временные переменные).

 

– для указания текущей рабочей области неизвестной заранее должны использоваться «расширенные выражения», а не оператор & !!!

 

Пример

Присваивание значения в поле, с использованием расширенного выражения и оператора &

Local kod

aa:='kod'

('R126')->&aa:=7

или

Local kod,w

aa:='kod',w:=GetArea('R126')

(w)->&aa:=7