4) язык Паскаль (Pascal), названный в честь французского ученого Б. Паскаля, был разработан в 1968—1971 гг. Н. Виртом. Изначально Паскаль создавался для обучения программированию, однако в дальнейшем стал широко использоваться для разработки программных средств профессиональными программистами.
11 ПРОБЛЕМНО–ОРИЕНТИРОВАННЫЕ И ОБЪЕКТНО–ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Одной из разновидностей языков программирования высокого уровня являются проблемно–ориентированные языки, которые возникли в связи с постоянным расширением области применения вычислительной техники и возникновением целых классов новых задач, требующих решения. Языки данной группы позволяют программисту четко и коротко сформулировать задачу, а программы, написанные на основе этих языков, составлены соответственно в терминах решаемой задачи. К основным проблемно–ориентированным языкам можно отнести:
1) язык ЛИСП (Lisp – L ist I nformation S ymbol P rocessing), который был изобретен в 1962 г. Дж. Маккарти. Благодаря лИСПу возникла совершенно новая для программистов область деятельности – «искусственный интеллект». В настоящее время лИСП применяется в экспертных системах, системах аналитических вычислений и т.п.;
2) язык Пролог (Prolog – Pro gramming in Log ic), возникший как язык логического программирования для систем искусственного интеллекта. В основе Пролога лежат средства логического вывода, решающие запросы с использованием заданной базы фактов и правил, к которым обращаются как к утверждениям. Концепция объектно–ориентированного программирования основывается на том, что в основе управления процессом реализации программы лежит передача сообщений объектам.
Исходя из этого можно определить следующие характерные свойства объектно–ориентированных языков программирования:
1) свойство абстракции, т.е. наличия формального представления о качествах или свойствах предмета путем мысленного удаления некоторых частностей или материальных объектов;
2) свойство инкапсуляции, т.е. наличия механизма, связывающего вместе код и данные, которыми он манипулирует, и защищающего их от внешних помех и некорректного использования;
3) свойство наследования, т.е. наличия процесса, с помощью которого один объект приобретает свойства другого, т.е. свойство иерархической классификации;
4) свойство полиморфизма, т.е. наличия возможности использовать один и тот же интерфейс для общего класса действий.
По сравнению с процедурно–ориентированными и проблемно–ориентированными языками программирования объектно–ориентированные