Реализация программ средствами языков Visual Prolog и Visual Lisp

Автор работы: Пользователь скрыл имя, 28 Ноября 2012 в 18:50, курсовая работа

Описание работы

Современный этап развития вычислительной техники характеризуется расширением сфер ее применения. На первый план выдвигаются задачи интеллектуализации процессов машинной обработки информации, моделирования рассуждений человека-эксперта при решении прикладных задач из различных областей человеческого знания. Кроме того, актуальным является также полное и непротиворечивое представление самих знаний.

Содержание работы

Введение ……………………………………………………………………………… 4
1 Теоретическая часть ………………………………………………………............... 6
1.1 Краткий обзор языков программирования Visual Prolog и Visual Lisp ……….. 6
1.2 Описание логических возможностей языка Visual Prolog ……………………… 8
1.3 Описание функциональных возможностей языка Visual Lisp ………………...10
2 Практическая часть ……………………………………………………………….. 12
2.1 Постановка задачи логического программирования …………………………. 12
2.2 Описание методов решения и используемых средств языка Visual Prolog …. 12
2.3 Описание листинга программы Visual Prolog …………………………………. 14
2.4 Тестирование программы Visual Prolog…………………………………………16
2.5 Постановка задачи функционального программирования ...…………………. 17
2.6 Описание листинга программы Auto Lisp ...…………………………………. 18
2.7 Тестирование программы Auto Lisp ..………………………………………… 23
Заключение …………………………………………………………………………… 25
Список используемых источников ……………………………………………….... 26

Файлы: 1 файл

КР.doc

— 905.50 Кб (Скачать файл)



Содержание

 

Введение  ……………………………………………………………………………… 4

1 Теоретическая часть ………………………………………………………...............  6

1.1 Краткий обзор языков  программирования Visual Prolog и Visual Lisp ……….. 6

1.2 Описание логических  возможностей языка Visual Prolog ……………………… 8

1.3 Описание функциональных возможностей  языка Visual Lisp ………………...10

2  Практическая часть ……………………………………………………………….. 12

2.1 Постановка задачи логического программирования ………………………….  12

2.2 Описание методов решения  и используемых средств языка Visual Prolog ….  12

2.3 Описание листинга программы Visual Prolog ………………………………….  14

2.4 Тестирование программы Visual Prolog…………………………………………16

2.5 Постановка задачи функционального программирования ...………………….  17

2.6 Описание листинга программы Auto Lisp ...………………………………….  18

2.7 Тестирование программы Auto Lisp ..………………………………………… 23

Заключение …………………………………………………………………………… 25

Список используемых источников ………………………………………………....  26

 

 

Введение

 

Современный  этап развития вычислительной техники характеризуется расширением сфер ее применения. На первый план выдвигаются задачи интеллектуализации процессов машинной обработки информации, моделирования рассуждений человека-эксперта при решении прикладных задач из различных областей человеческого знания. Кроме того, актуальным  является также полное и непротиворечивое представление самих знаний. 

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

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

Common Lisp, имея богатейшие  выразительные возможности, разрешает  программисту описывать наиболее "выразительно" именно то, как  что-либо следует делать. В то  же время Пролог определенным образом направляет программистское мышление, заставляя программиста давать определения ситуаций и формулировать задачи вместо того, чтобы во всех деталях описывать способ решения этих задач.

В данной курсовой работе предполагается решение следующих задач:

  1. изучить логические возможности языка Пролог;
  2. освоить методику создания визуального пользовательского интерфейса на языке Пролог;
  3. написать программу, решающую логическую задачу на соответствие с использованием VPI;
  4. изучить функциональные возможности языка AutoLisp;
  5. изучить принципы создания параметрических изображений;
  6. написать программу построения сетевого графика в среде AutoCad с использованием языка AutoLisp.

 

 

1 Теоретическая часть

1.1  Краткий обзор языков программирования Visual Prolog и Visual Lisp

 

Visual Prolog

Синтаксис Visual Prolog разработан для того, чтобы отображать знания о свойствах и взаимосвязях.

В отличие от других версий Пролога, Visual Prolog — компилятор, контролирующий типы: для каждого предиката объявляются типы объектов, которые он может использовать. Это объявление типов позволяет программам Visual Prolog быть скомпилированными непосредственно в машинные коды, при этом, скорость выполнения сравнима, а в некоторых случаях — и превышает скорости аналогичных программ на языках С и Pascal.

Обычно программа на Visual Prolog состоит  из четырех основных программных  разделов, к которым относятся:

  • раздел clauses (предложений);
  • раздел predicates (предикатов);
  • раздел domains (доменов);
  • раздел goal (целей).

Раздел clauses — это сердце Visual Prolog-программы; именно в этот раздел записываются факты и правила, которыми будет оперировать Visual Prolog, пытаясь разрешить цель программы. Все предложения для каждого конкретного предиката в разделе clauses должны располагаться вместе. Последовательность предложений, описывающих один предикат, называется процедурой.

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

Раздел predicates — это тот, в котором  объявляются предикаты и домены (типы) их аргументов (вам не нужно  объявлять предикаты, встроенные в Visual Prolog). Если в разделе clauses программы на Visual Prolog описан собственный предикат, то его необходимо объявить в разделе predicates (предикатов). В результате объявления предиката сообщается, к каким доменам (типам) принадлежат аргументы этого предиката.

Раздел domains служит для объявления доменов, не являющихся стандартными доменами Visual Prolog. Домены позволяют задавать разные имена различным видам  данных, которые, в противном случае, будут выглядеть абсолютно одинаково. В программах Visual Prolog объекты в отношениях (аргументы предикатов) принадлежат доменам, причем это могут быть как стандартные, так и описанные пользователем специальные домены. Раздел domains служит двум полезным целям. Во-первых, можно задать доменам осмысленные имена, даже если внутренне эти домены аналогичны уже имеющимся стандартным. Во-вторых, объявление специальных доменов используется для описания структур данных, отсутствующих в стандартных доменах.

В раздел goal помещается цель Visual Prolog-программы. Если все подцели в разделе goal истинны, — программа завершается успешно. Если же какая-то подцель из раздела goal ложна, то считается, что программа завершается неуспешно.

 

Visual Lisp

Широкие возможности  системы AutoCAD позволяют использовать ее как инструмент создания автоматизированных рабочих мест для специалистов различных направлений. Система является наиболее распространенной у нас и за рубежом и постоянно развивается. Даже те, кто знаком с системой AutoCAD, не многие осознают, что AutoCAD не является конечным продуктом. Прежде всего, AutoCAD - средство создания прикладных программ. И основным, но далеко не единственным, средством создания прикладных систем в AutoCAD является язык программирования AutoLisp.

Язык AutoLisp был создан в 1962 году профессором Стенфордского университета Дж. Маккарти для решения задач искусственного интеллекта и является родоначальником функциональных языков. В настоящее время существует огромное количество версий языка. AutoLisp - это созданный специально для системы AutoCAD диалект Lisp, полученный в результате изменения языка XLISP. Все вычисления, преобразования и управления программы в функциональных языках осуществляются с помощью элементарных встроенных функций или функций, определенных пользователем при написании программ. Программа в целом является суперпозицией некоторых функций и. в свою очередь, может быть использована как функция другими программами. Язык LISP идеально подошел для системы AutoCAD, т.к. имеет удобные средства работы с глубоко структурированной информацией. При этом AutoLisp прост в изучении и весьма гибок.

 

1.2 Описание  логических возможностей языка Visual Prolog

 

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

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

Логика предикатов была разработана  для наиболее простого преобразования принципов логического мышления в записываемую форму. Пролог использует преимущества синтаксиса логики для разработки программного языка. В логике предикатов, прежде всего, исключаются из предложений все несущественные слова. Затем эти предложения преобразуются, устанавливая в них на первое место отношение, а после него — сгруппированные объекты. В дальнейшем объекты становятся аргументами, между которыми устанавливается это отношение.

Пролог получил практическое применение в целом ряде областей. С его  помощью можно:

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

 

1.3 Описание  функциональных возможностей языка Visual Lisp

 

Visual LISP (VLISP) – это интегрированная  среда разработки программ на  языке программирования AutoLISP в системе  AutoCAD 14 (2000), которая значительно облегчает процесс создания программы, ее изменения, тестирования и отладки. Кроме того, Visual LISP обеспечивает эффективное использование автономных приложений Object ARX, написанных на языке AutoLISP. Visual LISP включает следующие функциональные компоненты:

  •   текстовый редактор, ориентированный на синтаксис языка AutoLISP и использующий язык кодирования цветом (DCL), что значительно упрощает чтение и отладку программ на языке AutoLISP;
  •   консоль, куда выдаются сообщения о результатах загрузки программы, различные диагностические сообщения и т. д.;
  •   форматтер, который преобразует текст программы и придает ему легко читаемый структурированный вид;
  •   эмулятор AutoLISP, обеспечивающий наглядность процесса выполнения программы;
  •   программу проверки синтаксиса, распознавания неправильных конструкций AutoLISP;
  •   компилятор, который уточняет выполнение программы, ускоряет, а также обеспечивает безопасную и эффективную систему выдачи результатов;
  •   встроенную систему контроля, которая обеспечивает удобный доступ к переменным и значениям выражений с целью просмотра структуры данных и их изменений;
  •   отладчик, обеспечивающий высокий уровень отладки программ;
  •   контекстно-зависимые справки для функций AutoLISP;
  •   систему управления проектом, которая упрощает работу с приложениями;
  •   упаковщик компилируемых файлов AutoLISP в ARX-модули.

 

 

2 Практическая часть

2.1 Постановка задачи логического программирования

 

Условие задачи. «За круглым столом».

Однажды на отдыхе за круглым  столом оказались пятеро ребят родом  из Москвы, Санкт-Петербурга, Новгорода, Перми и Томска: Юра, Толя, Алеша, Коля и Витя.

  • Москвич сидел между жителем Томска и Витей,
  • Санкт-петербуржец - между Юрой и Толей, а напротив него сидели пермяк и Алеша.
  • Коля никогда не был в Санкт-Петербурге,
  • Юра не бывал в Москве и Томске,
  • Житель Томска с Толей регулярно переписываются.

Информация о работе Реализация программ средствами языков Visual Prolog и Visual Lisp