
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 1. Языки штучного интеллекта и основы логического программирования Некоторые сведения о языках искусственного интеллекта
- •Введение в логическое программирование Историческая справка
- •Базовые объекты данных
- •Вопросы
- •Переменные
- •Правила
- •Зоны видимости имен
- •Логическая программа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 2. Процедурная семантика интерпретатора Пролога
- •Метод резолюций
- •Унификация и подстановка
- •Композиция подстановок
- •Вычисление резольвенты
- •Алгоритмы Пролога
- •Стратегии доказательств
- •Процедура поиска доказательства в глубину
- •Пример выполнения логической программы с пошаговым анализом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 3. Основы программирования в среде Турбо-Пролога
- •Разделы программы
- •Опции компилятора
- •Имена переменных
- •Раздел описаний доменов
- •Разделы описания предикатов и правил
- •Рекурсивные процедуры
- •Моделирование итеративных процедур
- •Основные сведения об арифметических предикатах
- •Внелогические предикаты
- •Работа с файлами
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 4. Списки и управление выводом в Турбо-Пролог-программах Списки
- •Описания списков
- •Шаблон для работы со списками
- •Примеры программ работы со списками
- •Управление формированием вывода Отсечение
- •«Зеленые» и «Красные» отсечения
- •Предикаты not и fail
- •«Циклы» управляемые отказом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 5. Динамическая база данных в Турбо-Пролог-программах Составные области
- •Операции с динамической базой данных
- •Пример построения проекта с динамической базой данных
- •Ограничения Турбо-Пролога
- •«Циклы» с возвратами
- •Лисп – язык функционального программирования
- •Правильные выражения
- •Базовые предикаты и конструкторы
- •Определяющие выражения функций
- •Условные выражения
- •Выражения для представления циклов
- •Встроенные и определяемые пользователем функции
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 7. Функциональное программирование в среде Лиспа
- •Виды рекурсий Рекурсии по значению и по аргументам
- •Простая рекурсия
- •Параллельная рекурсия
- •Взаимная рекурсия
- •Рекурсии высших порядков
- •Метод накапливающих параметров
- •Функционалы
- •Применяющие функционалы
- •Отображающие функционалы
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 8. Функциональные абстракции и процедурное программирование в Лиспе Представление функции в процессе вычислений Понятие замыкания
- •Создание замыканий
- •Функции с функциональным результатом вычислений и частичные вычисления
- •Функциональные абстракции
- •Формы блоков и связывания переменных
- •Присваивание значений переменным
- •Прочие процедурные формы в Лиспе
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 9. Лисп-методы программирования Программирование, управляемое данными
- •Программирование, управляемое событиями
- •Сопоставление с образцом
- •Списочные образцы
- •Переменные в образцах
- •Образцы с предикатами
- •Продукционное и логическое программирование в Лисп-системах
- •Объектное программирование
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 10. Представление знаний в программах на Лиспе Процедурный подход к представлению знаний
- •Представление знаний на основе продукций
- •Представление продукций
- •Интерпретатор продукций
- •Методы поиска решений
- •Функция для загрузки
- •Разрыв командного цикла и отладка
- •Вычисление s-выражений
- •Функции и формы
- •Типы данных
- •Макросы ввода
- •Lambda-списки
- •Функции ввода/вывода
- •Вычисление форм catch и throw
- •Объектное программирование в Xlisp Создание класса
- •Добавление методов в интерактивном режиме
- •Вопросы для самоконтроля
- •Html-документ Инструментарий создания и редактирования
- •Структура документа
- •Html тэги
- •Информация игнорируемая браузерами
- •Свойства страницы в целом
- •Информация для поисковых систем и стандарты
- •Элементы управления размещением текста и графики
- •Ссылки и протоколы
- •Задание цвета в html
- •Подготовка графики и анимация Графические форматы
- •Подготовка изображений для применения в документе
- •Анимация
- •Вопросы для самоконтроля
- •Управление шрифтами
- •Физические текстовые стили
- •Специальные символы
- •Графика
- •Управление взаимным размещением текста и графики
- •Гипертекстовые и графические ссылки Организация ссылок
- •Графические ссылки
- •Расширенная работа с гиперссылками Типы ссылок в документе
- •Якоря (метки)
- •Атрибут target
- •Изображения-карты
- •Списки и таблицы Виды списков
- •Элементы таблиц
- •Вопросы для самоконтроля
- •Элементы создаваемые тэгом input
- •Простые и графические кнопки
- •Списки выбора
- •Текстовые области
- •Приемы для выравнивания элементов
- •Методы передачи данных к серверу
- •Дизайн web-сайтов Типы сайтов
- •Топология и распределение материала
- •Формат страницы
- •Заглавия и заголовки
- •Навигация
- •Блоки текста
- •Средства позиционирования
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 15. Элементы языка css Язык управления структурой и стилями
- •Размещение css-элементов
- •Адресная модель css
- •Содержимое css-файла или style-контейнера
- •Селекторы
- •Комментарии
- •Применение css в оформлении документов Управление визуализацией
- •Схемы позиционирования
- •Текст и шрифты
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 16. Основы языка Java Script Назначение языка программирования Java Script
- •Тэги для программ на Java Script
- •Основные конструкции языка JavaScript
- •Декларации функций
- •Операторы, операции и выражения
- •Массивы
- •Объектная модель документа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 17. Объекты и скрипты в html-документах Объекты пользователя
- •Создание объектов
- •Добавление новых свойств и методов
- •Проверка наличия свойств и методов
- •Встроенные объекты языка программирования
- •Обработка особых ситуаций в документе
- •Классификация ситуаций
- •Установление реакции на ситуацию
- •Методы объекта String
- •Программирование работы с метками и гиперссылками
- •Динамическое создание меток и гиперссылок
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 18. Различные аспекты применения скриптов Управление окнами
- •Динамическое формирование документа
- •Управление слоями
- •Объект, соответствующий форме
- •Адресация и именование
- •Свойства и методы
- •Динамическое изменение надписей и изображений на кнопках
- •Форматы документов отличающиеся от html
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Форматы документов отличающиеся от html
XML
Естественное разделение аспектов содержания и представления предлагает язык XML (eXtensible Markup Language), представляющий компактное упрощенное подмножество языка SGML, разработанное Консорциумом W3 в расчете на постепенное вытеснение из Интернета языка HTML. Если в HTML все допустимые тэги жестко заданы стандартом, то XML-документ может пользоваться любыми тэгами, пусть даже изобретаемыми на ходу авторами документа. Если в SGML каждый документ должен иметь свое DTD (Document Type Definition), а у HTML есть одно DTD на всех (на которое ссылаются в тэге !doctype), то XML дает компромиссное решение – документ может иметь (или ссылаться на) DTD, а может и обходиться без DTD. В последнем случае предполагается, что потребитель документа имеет в своем распоряжении описание назначения используемых тэгов ил может создать такое описание. Структура любого XML-документа представляет собой иерархию тэгов, что делает этот язык идеальным для описания иерархических баз данных. Например, XML-структура некоторого учебного заведения может быть представлена так:
<Institute name=”Институт”> Государственный университет
<Faculties name=”Факультеты”>
<Faculty name=””> Технический </Faculty>
<Faculty name=””> Гуманитарный </Faculty>
</Faculties>
<Сhairs name=”Кафедры”>
<Chair name=”Кафедра”> Высшей математики </Chair>
<Chair name=”Кафедра”> Физики </Chair>
…………………………….
</Chairs>
</Institute>
Для отображения XML-документов используется язык XSL (Extensible StyleSheet Language) совместно с JavaScript, Java и др. XSL имеет встроенные возможности по извлечению информации из XML-документов, ее сортировке и фильтрации.
Язык XML имеет множество частных реализаций, например:
SMIL – синхроязык мультимедийных средств,
CML – химический язык разметки и др.
Многие реализации настолько специфичны, что могут использоваться в единственной сети интранет.
PHP
PHP (Personal Home Page tools – средства персональных домашних страниц) представляет собой язык обработки сценариев, все шире применяемый для разработки Web-приложений. Современная 4-я версия языка РНР обеспечивает обработку сценариев, встраиваемых в HTML – страницы. В отличие от аналогичных по функциям интерпретаторов, например, сценариев на языке Perl, выполнение каждого запроса РНР не требует повторного запуска интерпретатора.
Использование РНР в определенном смысле составляет выгодную альтернативу технологии ASP несмотря на то, что по функциональным возможностям обе технологии практически равнозначны. Tехнология ASP предназначена для работы только Web - серверами фирмы Microsoft (IIS и PWS), в то время как язык РНР поддерживает взаимодействие со многими распространенными Web - серверами , например IIS , Apache, Netscape.
К достоинствам РНР можно отнести нижеперечисленное.
Широкие возможности по поддержанию баз данных. В настоящее время поддерживаются следующие из них: Oracle, MySQL, Informix, Postgres, Sybase, Unix dbm,Velocis, MSQL, Adabas, InterBase.
Поддержка большого количества протоколов (IMAP, SNMP, NNTP, POP3 и HTTP), возможность работы с сокетами (sockets).
По мнению многих специалистов РНР является хорошим инструментом для разработки относительно небольших Web- приложений, предназначенных для публикации баз данных в Интернете.
Синтаксис языка РНР напоминает смесь синтаксиса языков програмирования С, JAVA и Perl.
Для включения в состав HTML- документов фрагментов кода на языке РНР применяются специальные ограничители (теги), которые должны изменятся в соответствии с топом документа. Возможны следующие варианты ограничителей:
<? текст на языке РНР ?> – служат для выделения текста на языке РНР, если на этапе компиляции пакета РНР указан параметр –enable-short-tegs, или если перед указанными ограничителями в тексте документа помещена команда вызова функции short_tegs( );
<?php текст на языке РНР?> – используется внутри XML – документов;
<script language =php> текст языка РНР </script> - применяется при написании сценариев РНР в составе HTML- документов с помощью программы FrontPege;
< % % > - предполагает использование стиля ASP.
ASP
Технология ASP представляет собой совокупность средств, предназначенных для разработки Web- предложений, позволяющих донамически формировать HTML- страницы.
Документ ASP включает HTML- шаблон, задействует серверные сценарии на языке JScript илиVBScript, запросы к БД на языке SQL и COM - технологии, при помощи объектов которых и создаются HTML- страницы. Документы ASP выполняются на стороне Web- сервера по запросу обозревателя, который инициирует обработку этих документов с помощью форм или ссылок, как и в случае CGI-приложений. При такой организации работы Web-приложения содержимое ASP-документов недоступно для пользователя, который не может скопировать и просмотреть текст ASP-документов. Активные серверные страницы хранятся на сервере, а пользователь посылает на сервер только запросы на их выполнение из загруженного HTML-документа, с которого начинается работа Web-приложения. Т.о., пользователь получает только результат обработки сервером ASP-документа. При этом ASP-документ предписывает серверу, какую информацию и в каком формате поместить в ответный HTML-документ.
Для заполнения HTML-шаблона в ASP-документе применяются команды сценария на языке JScript, которые помещены в ASP-документ внутрь специальных тэгов и выполняются на стороне сервера:
<% “Директивы JScript” %>,
где “Директивы JScript” – любые допустимые операторы на языке JScript.
Пример
<%@ language=JScript %>
<html>
<head> <title> ASP-документ </title></head>
<body>
<% var str=”Пример ASP-документа”;
var i=4; %>
<font size = <% =i %>
<% = str %> <br>
</font>
</body>
</html>
В этом примере специальные тэги используются в 4-х местах. Операторы <% =i %> и <% = str %> обозначают простую замену текста операторов значениями переменных, соответственно, i и str.