Главная страница

Как выглядят программы КОНЦЕПТ

Все представленные ниже примеры проверены и являются работающими. Их можно копировать непосредственно с этой страницы в окно кода интерпретатора КОНЦЕПТ и выполнять. Для запуска интерпретатора нажмите здесь.

Команды

Программа КОНЦЕПТ состоит из последовательности комад. Каждая команда начинается с новой строки.
Команда начинается с одного или двух ключевых слов, за которыми следуют параметры (или аргументы) команды. Ключевые слова и параметры команды отделяются пробелами. Написание ключевых слов не зависит от регистра. Состав и способ обработки параметров зависит от конкретной команды.

В качестве параметров команды могут быть указаны:
- последовательность символов, не начинающаяся с символов '"[($ и не содержащая внутри пробелов (т.к. пробел - разделитель параметров команды)
- последовательность символов, заключенная в '' (одинарные кавычки) и не содержащая внутри себя одинарных кавычек
- список, элементы которого разделяются ;, а вложенные подсписки выделяются {}
- подстановка значения переменной - имя переменной, заключенное в []
- шаблон строки или списка, заключенный в "" (двойные кавычки) и содержащий внутри себя подстановки в []
- вложенная команда КОНЦЕПТ, помещенная в (), результат отработки вложенной команды передается через встроенную переменную $результат

Строки комментариев начинаются с символов * или //.

* Пример 1. Сложение чисел. Результат сложения будет сохранен в переменной 'Сумма'. 
вычислить + Сумма 1 2 3  
память печать

Полный перечень команд КОНЦЕПТ приведен здесь.

Переменные и подстановки

В качестве параметра команды или внутри строки может быть указано значение переменной или, согласно принятой в КОНЦЕПТ терминологии, подстановка. Подстановка обрамляется символами []. Имя переменной может быть любой длины (но не пустая строка) и содержать произвольные символы.

* Пример 2. Сложение чисел с использованием подстановок. 
присвоить Слагаемое1 10  
присвоить Слагаемое2 20  
присвоить Слагаемое3 30  
вычислить + Сумма [Слагаемое1] [Слагаемое2] [Слагаемое3]  
печать Результат: [Сумма]

В качестве параметров команд могут указываться строки, заключенные в одинарные или двойные кавычки.
Если строка заключена в одинарные кавычки, то значением параметра являются символы строки внутри кавычек без каких-либо изменений. При этом, обрамляющие строку кавычки отбрасываются.
Если строка заключена в двойные кавычки, то значением параметра является строка, в которой выполнены все имеющиеся в ней подстановки. Обрамляющие строку кавычки также отбрасываются.
Если в момент вычисления значение переменной(подстановки) не определено, то оно будет запрошено в диалоговом режиме у пользователя.

* Пример 3. Подстановки в строках. 
* Обратите внимание на использование переменных, внутри которых содержатся пробелы, 
* и автоматический запрос значений переменных. 
строка сцепить 'формируемая строка' "Здравствуйте, [Ваше имя]! Вы живете в [Ваше место жительства]."  
печать [формируемая строка]

Генерация текстов по шаблону

Если строка начинается c символа >, интерпретатор воспринимает ее как команду вывода(печати) строки в окно результата. При этом, если в строке указаны подстановки, они выполняются.
Это позволяет очень просто параметризовать, т.е. превратить в шаблон, любой текст. Достаточно в начале каждой строки исходного текста указать символ >, а изменяемые участки поместить в [].

* Пример 4. Предыдущий пример, записанный в более компактном виде. 
>Здравствуйте, [Ваше имя]
>Вы живете в [Ваше место жительства]."

Ветвления и циклы

* Пример 5. Рисование линий. 
множество и 'число линий (1-10)' [число линий (1-10)] 1;2;3;4;5;6;7;8;9;10  
если [число линий (1-10)]  
  присвоить х1 0 у1 0 х2 200 толщина 1 $ЦветЛинии 14  
  для (список сгенерить $результат 1 [число линий (1-10)] )  
    присвоить $ТолщинаЛинии [толщина]  
    рисовать линия [х1] [у1] [х2] [у1]  
    увеличить толщина  
    увеличить у1 50  
  следующий  
иначе  
  показать сообщение 'Недопустимое число линий. Программа остановлена.'  
конец

Базы фактов (БФ)

Наборы фактов в КОНЦЕПТ хранятся в обычных текстовых файлах. Каждый факт записывается в отдельной строке. Формат записи факта совпадает с форматом записи списка, принятого в КОНЦЕПТ. Первый символ факта указывает на его тип. Если первым символом строки в БФ является *, то строка воспринимается как комментарий. Пустые строки в БФ игнорируются. Номером факта является номер строки в файле БФ, в которой записан данный факт. Нумерация начинается с 1.

В КОНЦЕПТ существуют следующие типы фактов:
-i - наследование (от inherit). Формат факта: i;<понятие1>;<понятие2>. Обозначает, что <понятие1> является экземпляром или подклассом <понятие2>.
-p - свойство (от property). Формат факта: p;<понятие>;<имя_свойства>;<значение_свойства>.
-r - отношение (от relation). Формат факта: r;<имя_отношения>;<аргумент_1>;...;<аргумент_N>.
-s - схема отношения (от scheeme). Формат факта: s;<имя_отношения>;<имя_аргумена_1>;...;<имя_аргумента_N>.
-d - данные (от data). Формат факта: d;<имя_элемента_данных>;<значение_элемента_данных>.

Факты типов i и p предназначены для моделирования наследования свойств понятий. В КОНЦЕПТ реализовано множественное и многоуровневое наследование свойств понятий. Для этого предназначены команды встроенного класса понятие. Пример использования фактов и наследования свойств понятий можно посмотреть здесь.