WikiDer > CLACL
Эта статья нужны дополнительные цитаты для проверка. (Февраль 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Парадигма | Логическое программирование |
---|---|
Разработано | Мауро Газзеллони |
Разработчик | Мауро Газзеллони |
Впервые появился | Январь 2000 г. |
Стабильный выпуск | 1.04 / апрель 2013 г. |
Язык реализации | C ++ |
Операционные системы | Майкрософт Виндоус |
Лицензия | проприетарное программное обеспечение |
Интернет сайт | Сайт проекта |
Под влиянием | |
Пролог, C |
CLACL, представляющий язык CLAC (где CLAC означает логическая композиция с помощью Компьютеры) является результатом текущих теоретических исследований, целью которых является предоставление формального описания логических вариантов, связанных с определением организационных процессов сочинение.
Логика CLACL основана на «пространственно-реляционной» информации, а не на обработке числовая информация. Он генерирует логическую конфигурацию и с помощью инструмента под названием Plasma формирует созданный домен в физической форме, такой как Музыка или же графика.
CLACL - это вычислительный язык, который интегрируется в производственную среду и предоставляет несколько инструментов для облегчения написания кода и его графического представления.
Первая версия (00.02.00) языка была размещена в Интернете в 2000 году на сайте проекта. Версия 00.06.00 распространялась на 2009 Фестиваль математики в Риме, во время которого проект CLAC был представлен.
Характеристики языка
Целевые пользователи языка - это те, кто работает в творческих областях, включая дизайн и музыку.
Каждый дизайн производит организм, в котором все его части связаны для создания сложного и законченного целого. Для лучшего понимания рассмотрите графическое планирование, то есть проектирование и реализацию графического рисунка. Те, кто имел возможность подготовить Композиция знает, что каждый элемент должен быть в точном соотношении с другими, и только когда все элементы сбалансированы, композиция будет считаться завершенной. Этот процесс можно проверить и проверить.
Поскольку процесс композиции основан на логическом выборе, программа ориентирована на информатику искусственного интеллекта. Именно по этой причине проект упоминается в записи Вычислительное творчество Внешняя ссылка в Википедии, как один из немногих примеров применения информатики в творчестве.
Синтаксис, основанный на логике, несколько сложен для тех, кто не привык работать в области искусственного интеллекта (AI), был дополнен конструкциями, более удобными для использования на практике.
В качестве примера см. Описание цикл (цикл) реализовано в Пролог и CLACL.
В следующем примере в пролог, цикл - это запуск, который печатает индекс цикла:
петля(Икс,Y) :- !,Икс < Y, Распечатать(Икс), X2 является Икс + 1, петля(X2,Y).
В CLACL аналогичный процесс выполняется с использованием следующего кода:
@PRINT ("$ x $ y", NL) FOR ($ x, $ y) IN II [] {@PRINT ($ x, $ y, NL)}
результат:
$ x $ y! a! a! a! b! a! c! b! a! b! b! b! c! c! a! c! b! c! c
Формирование цикла в CLACL осуществляется очень похоже на C-язык.В языке используется комбинация декларативной и процедурной парадигм. Два языка - это Пролог и C-языкДекларативный аспект исходит из Пролога и используется в операторах и при сканировании дерева альтернатив (возвратПроцедурный аспект вытекает из C-язык, и выделяется, в частности, в управляющих структурах процедурного потока.
Структура языка
Команды перечислены в сценарии, который обрабатывается интерпретатором, который генерирует результат. Цель выполнения командного управления - создать логическую конфигурацию объектов, представить их в графической форме и, как результат обработки, создать график. Набор сущностей, составляющих часть графа, называется доменом.
CLACL состоит из трех групп операторов:
- Декларации
- Управление
- Команды
В декларации отражают ситуации в предметной области и максимально похожи на Prolog.
В контроль реализовать конструкции для управления потоком кода с помощью циклов и выражений.
В команды требовать или устанавливать условия для домена.
Как и все языки программирования, CLACL реализует следующие ключевые концепции:
- Переменная
- Инструкция
- Выражение
- Структуры управления
- Подпрограмма
- Информационные структуры
Кроме того, CLACL также будет реализовывать специализированные концепции предметной области и вопросов, направленных на:
- Заявления
- Тесты
- состояния
- Комментарии
Сущности, которые могут быть созданы с помощью интерпретации сценария:
- Пример
- Экземпляр можно рассматривать как геометрическую точку на плоскости, но нас не интересует его положение; наш интерес - это его существование внутри домена и его отношения с другими сущностями.
- Связь
- Отношение описывает отношения между разными экземплярами.
- Модель
- Модель позволяет описывать сложные отношения.
- Форма
- Форма описывает характеристики логическая фигура ".
- Фигура
- А логическая фигура можно рассматривать как геометрическую фигуру.
Примеры
Генерация экземпляра:
экземпляр: a
или же
! а
Генерация отношения:
отношение: rl1 (экземпляр: a, экземпляр: b)
или же:
& rl1 (! a,! b)
Определение модели, представляющей треугольную конфигурацию:
определить модель: tris (! a,! b,! c) {& rr (! a,! b) & rr (! b,! c) & rr (! c,! a)}
Реализация цикла:
FOR ($ a $, b) в SET [] {@PRINT ("Экземпляры", $ a, "-", $ b, NL)}
Выполнение условия:
CASE ($ x == 0) {@PRINT («Значение $ x равно нулю», NL)}
Определение функции:
определить функцию: switch ($ a $, b $, c) {CASE ($ a == 1) {@PRINT ($ b, ”-“, $ c, NL)} CASE ($ a == 2) {@ ПЕЧАТЬ ($ c, ”-“, $ b, NL)}}
Некоторые операции на съемочной площадке:
def INSI1 [4] // определение набора из 4 элементов
ST1 [] = [ST1 [] + ST2 []] // добавить
ST1 [] = [ST1 [] - ST2 []] // вычесть
(ST1 [] == ST2 []) // равно
Пример логического выражения:
((ST1 [] == ST2 []) И ((ST3 [] == ST2 []) ИЛИ (ST4 [] == ST1 [])) И pos (! A ==! B))
Пример пространственного выражения
! a! bmodel: modSquare4 (! a,! b,! c,! d) # f = shape: frmSquare4 (! a,! b,! c,! d) I [] = cloud (! a, UNIFORM, 100 , 1)
@GRFILL (красный) FOR ($ x) IN I [] {CASE (pos (! $ X IN #f)) shape: plate (! $ X, 20)}
Учебники CLAC
Смотрите также
- Искусственная архитектура
- C (язык программирования)
- Композиция (изобразительное искусство)
- Вычислительное творчество
- Логическое программирование
- Пролог
дальнейшее чтение
- М. Газзеллони: Дизайн CLACL, введение в Formale Composizione. (Итальянский)
- М. Газзеллони: Guida alla scrittura in CLACL. (Руководство по программированию) (Итальянский)
внешняя ссылка
Викискладе есть медиафайлы по теме CLACL (язык программирования). |
- Официальный веб-сайт
- Древняя геометрия: и стандарт дизайна
- Фестиваль математики 2009 - презентация проекта CLAC