Все представленные ниже примеры проверены и являются работающими. Их можно копировать непосредственно с этой страницы в окно кода интерпретатора КОНЦЕПТ и выполнять. Для запуска интерпретатора нажмите здесь.
Программа КОНЦЕПТ состоит из последовательности комад.
Каждая команда начинается с новой строки.
Команда начинается с одного или двух ключевых слов, за которыми следуют параметры (или аргументы) команды.
Ключевые слова и параметры команды отделяются пробелами. Написание ключевых слов не зависит от регистра.
Состав и способ обработки параметров зависит от конкретной команды.
В качестве параметров команды могут быть указаны:
- последовательность символов, не начинающаяся с символов '"[($ и не содержащая внутри пробелов (т.к. пробел - разделитель параметров команды)
- последовательность символов, заключенная в '' (одинарные кавычки) и не содержащая внутри себя одинарных кавычек
- список, элементы которого разделяются ;, а вложенные подсписки выделяются {}
- подстановка значения переменной - имя переменной, заключенное в []
- шаблон строки или списка, заключенный в "" (двойные кавычки) и содержащий внутри себя подстановки в []
- вложенная команда КОНЦЕПТ, помещенная в (), результат отработки вложенной команды передается через встроенную переменную $результат
Строки комментариев начинаются с символов * или //.
* Пример 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 предназначены для моделирования наследования свойств понятий. В КОНЦЕПТ реализовано множественное и многоуровневое наследование свойств понятий. Для этого предназначены команды встроенного класса понятие. Пример использования фактов и наследования свойств понятий можно посмотреть здесь.