Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций КИТ 1 курс ГЭФ.doc
Скачиваний:
163
Добавлен:
22.02.2016
Размер:
3.32 Mб
Скачать

Декларативные (описательные) языки программирования

Предназначены для решения задач искусственного интеллекта, к ним относят такие языки, которые способны в зависимости от набора исходных данных модифицировать алгоритм работы, т.е. «на ходу» менять программу.

Функциональные языки. В их основе лежит понятие функции как «черного ящика», имеющего вектор параметров (аргументов)на входе и результатr(скаляр) на выходе:

(7.1)

В функциональных языках программирования отсутствуют операторы: все действия, в том числе и управляющие конструкции, выполняются при помощи вызовов функций. Поскольку каждая функция возвращает значение, ее можно подставить в качестве аргумента другой функции, что позволяет записывать сложные выражения в функциональной форме. Одним из первых функциональных языков стал интерпретируемый язык LISP(Лисп), созданный в конце 50-х гг.

Логические языки. Логическое программирование представляет собой попытку возложить на программиста только постановку задачи, а поиски путей ее решения предоставить транслятору. Язык этой группыProlog(Пролог) был создан в начале 70-х годов Аланом Колмероэ. В его основу положена математическая модель теории исчисления предикатов. Программа на этом языке строится из последовательности фактов и правил, а затем формулируется утверждение, которое Пролог будет пытаться доказать с помощью введенных правил. Человек только описывает структуру задачи, а внутренний «мотор» Пролога сам ищет решение с помощью методов поиска и сопоставления.

Объектно-ориентированные языки программирования

Это направление стало разрабатываться в середине 70-х гг. Керниганом и Риччи. Представляет собой отображение объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структур данных (классов). Начало реализации положили ОО-версии языков Си и Паскаль,.

Object Pascal. Объектно-ориентированное расширение языкаPascal.

C++ (Си++).Объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году.

Java (Джава, Ява). Этот язык был создан компаниейSunв начале 90-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора – виртуальнойJava-MaшиныJVM(JavaVirtualMachine), версии которой созданы для любых платформ. Благодаря наличию множестваJava-машин программы наJavaможно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому язык Ява стал очень популярным. Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технологияJini) и созданию платформно-независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технологияJavaBeans). Пока основной недостаток этого языка – невысокое быстродействие, так как язык Ява интерпретируемый.

Smalltalk(Смолток). Интерпретируемый язык, созданный в корпорации XEROX в 1980 году. Синтаксис языка очень компактен и базируется исключительно на понятии объекта. В этом языке отсутствуют операторы или данные. Все, что входит в Смолток, является объектами, а сами объекты общаются друг с другом исключительно с помощью сообщений (например, появление выражения I+1 вызывает посылку объекту I сообщения «+», то есть «прибавить», с параметром 1, который считается не числом-константой, а тоже объектом). Больше никаких управляющих структур, за исключением «оператора» ветвления (на самом деле функции, принадлежащей стандартному объекту), в языке нет, хотя их можно очень просто смоделировать. Сегодня версия VisualAge for Smalltalk активно развивается компанией IBM.