Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Языки искусственного интеллекта






Интерес к языкам искусственного интеллекта возник в 50-е гг., когда компанией Rand Corporation был разработан язык IPL (Information Processing Language). Версия IPL-V стала довольно широко известна, но ее использование ограничивалось тем, что IPL-V не был языком высокого уровня.

 

Огромным шагом вперед стала разработка Джоном Мак-Карти, сотрудником Массачусетсского технологического института (MIT), языка LISP (LISt Processing) для компьютеров IBM 704. Версия LISP 1.5 стала стандартом для его реализации на многие годы. Развитие LISP продолжается до настоящего времени. LISP разрабатывался как функциональный язык обработки списков. Естественной областью приложения LISP явилась разработка стратегии ведения игры, поскольку обычная программа, написанная на языке LISP, могла создавать дерево возможных направлений движения (как связанный список) и, продвигаясь по этому дереву, искать оптимальную стратегию.

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

В этой области первой разработкой был язык COMIT, созданный Ингве, сотрудником MIT. Каждый оператор программы, написанной на этом языке, был очень похож на контекстно-независимое правило и представлял собой набор замен, которые можно было осуществить, если в исходных данных обнаруживалась конкретная цепочка символов. Поскольку Ингве запатентовал свой код, группа разработчиков из AT& T Bell Telephone Laboratories решила создать свой собственный язык — так появился SNOBOL.

Если LISP создавался как язык обработки списков для универсальных приложений, Prolog стал специализированным языком с основанными на понятиях математической логики структурами управления и стратегией реализации.

 

Одновременно с развитием универсальных языков высокого уровня стали развиваться проблемно-ориентированные языки программирования, которые решали экономические задачи (COBOL), задачи реального времени (Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Analitic) и другие. Эти специализированные языки позволяли более адекватно описывать объекты и явления реального мира, приближая язык программирования к языку специалиста в проблемной области.

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

К непроцедурным языкам относят и языки запросов систем управления базами данных (QBE, SQL).

Классификация языков программирования

Исходя из вышесказанного, языки программирования можно классифицировать по следующим признакам.

1. По степени ориентации на специфические возможности ЭВМ языки программирования делятся на:
· машинно-зависимые;
· машинно-независимые.

К машинно-зависимым языкам программирования относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом языке программирования может выполняться только на ЭВМ данного типа. Программа на машинно-независимом языке программирования после трансляции на машинный язык становится машинно-зависимой. Этот признак языка программирования определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа).

2. По степени детализации алгоритма получения результата языки программирования делятся на:
· языки низкого уровня;
· языки высокого уровня;
· языки сверхвысокого уровня.

3. По степени ориентации на решение определенного класса задач:
· проблемно-ориентированные;
· универсальные.

4. По возможности дополнения новыми типами данных и операциями:
· расширяемые;
· нерасширяемые.

5. По возможности управления реальными объектами и процессами:
· языки систем реального времени;
· языки систем условного времени.

6. По способу получения результата:
· процедурные;
· непроцедурные.

7. По типу решаемых задач:
· языки системного программирования;
· языки прикладного программирования.

8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на:
· реляционные;
· функциональные;
· логические.

 

Рассмотренная схема классификации позволяет каждому языку программирования присвоить один из признаков каждого класса.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.