Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ Компьютерный практикум.doc
Скачиваний:
489
Добавлен:
20.03.2016
Размер:
3.35 Mб
Скачать
      1. Редакторы знаний и функции системы kappa

Синтаксис языка приложений КАРРА. Все элементы языка оболочки КАРРА можно разделить на следующие синтаксические группы:

1) атомы - отдельное слово или группа слов в кавычках;

2) пары - имя объекта: имя слота;

3) выражения установки - некоторые выражения, разделенные операторами установки (=, +=, +, -, *, /, ^, <, >, <=, =>, ==, !=, ~=, #, #=, And, Or, Xor, Not);

4) специальные выражения - функции управления типа While, For, ForAll, If, Let;

5) выражения-блоки - выражения в фигурных скобках ({}), разделяемые точкой с запя­той (как в Си). После закрывающей скобки не забудьте поставить точку с запятой ({};);

6) запрос функции - имя функции и аргументы в виде параметров. Общий вид вызова функции: Имя функции (аргумент1,аргумент2,...);

Язык ЭО КАРРА очень чувствителен к синтаксису, нельзя, например, путать маленькие буквы с заглавными! Аргументами функции могут быть перечис­ленные выше первые пять элементов языка.

Редакторы знаний – это окна, которые позволяют создавать, проверять и модифицировать элементы знаний. К таким окнам относятся редакторы объектов, классов, слотов, методов, правил, целей и функций. Каждый редактор содержит необходимые инструменты (меню, кнопки и т.д.). Пункт Edit в каждом из них имеет стандартные возможности (Cut, Paste...).

Редакторы классов, объектов, функций, правил и целей можно открыть из ок­на Инструментов знаний (KTools). В редакторы объектов и классов можно попасть также из окна Иерархии объектов (Object Browser), а редакторы слотов и методов дос­тупны только из редактора объекта или класса, так как первые привязаны к последним.

Одновременно на экране может быть открыто несколько окон-редакторов, но нельзя открыть сразу 2 редактора для одного и того же элемента знаний.

Все функции в системе KAPPA разделены на группы: манипулирования элементами знаний (Knowledge), математические (Math), работы со строками (String), со списками (List), логические (Logical), манипулирования файлами (File), управления или взаимодействия с ОС (Control), работы с окнами КАРРА и с объектами интерфейса (Windows), определенные пользователем функции (User Functions), все функции (All Functions). Получить доступ к имеющимся функциям можно в любом окне системы KAPPA, где возможно использование выражений в KAL-коде. Для этого нажатием правой кнопки мыши в этом окне активизируется всплывающее меню, с помощью которого можно оперативно выбрать из имеющихся необходимую группу функций. С выбором группы функций на экране появляется окно Выбора команды (Select Command), где представлены функции выбранной группы. После щелчка левой кнопкой мыши на любой из них внизу окна появляется формат и список аргументов функции. В описании формата необязательные аргументы указаны в угловых скобках (<...>), а если такой аргумент помещен еще и в квадратные скобки (<[...]>) или стоит на последнем месте среди аргументов функции (не помещен в [ ]), то его можно просто опускать. В противном случае, на этом месте нужно указать необходимое значе­ние параметра или NULL . Если аргумент или список аргументов помещен в скобки сле­дующим образом - [<...>], то даже при отсутствии аргумента (который, кстати, является необязательным (<>)) необходимо указать квадратные скобки ([ ]).

Пример. Формат команды, создающей класс.

MakeClass (@className, @<superName>) .

Аргументами этой команды являются имена создаваемого и родительского классов. Символ @ отмечает аргументы и при записи функции опускается.

Пользователь создает свои функции в редакторе функций, куда можно войти щелчком по пиктограмме Function в окне инструментов Ktools и выбрав Edit или New.

Выполнить любую функцию можно в окне Интерпретатора языка KAL. Приглашение в этом окне имеет вид стрелки =>. Описание исполняемой функции должно оканчиваться точкой с запятой. Выполним два примера. Оба эти примера можно было с таким же успехом выполнить в окне Иерархии объектов.

Пример: Создать подкласс Ground в родительском классе Volost. Это можно сделать с помощью функции MakeClass из группы функций манипулирования знаний. Ее аргументами являются имена создаваемого и родительского классов:

=>MakeClass (Ground, Volost);

Ground

В следующей строке интерпретатор вывел результат исполнения функции (ее значение) – имя созданного класса.

Если среди аргументов функции фигурирует обозначение слота некоторого объекта, то оно имеет две составляющие - имена класса (объекта) и слота - разделенные двоеточием. Например, People:NumberOfP обозначает слот NumberOfP объекта People.

Пример: Определить значение слота People:NumbetOfP;

=>People:NumberOfP;

150

KAL-интерпретатор имеет свое меню: File Edit. В меню Edit, кроме стандартных, имеются еще два пункта: Clear Window (Очистить окно) и Check Syntax...(проверки синтаксиса, можно просто нажатием клавиши F2). Интерпретатор ограничивает содер­жимое окна 10-ю страницами текста и в случае необходимости автоматически удаляет лишнее.