Языки, ориентированные на данные.
Практически все вышерассмотренные языки относились к вычислительным. Если же говорить о языках обработки символьной информации, то следует упомянуть о Lisp(List Processing Language), Prolog(Programming in Logic), РЕФАЛ (Алгоритмический язык рекурсивных функций). Язык ЛИСП разработан Дж. Маккарти в США. Он стал основой ряда программных реализаций интеллектуальных систем и дал толчок к разработке множества специализированных языков искусственного интеллекта и языков представлений знаний. В отличие от Lisp, Prolog – европейский язык. Он разработан А. Калмерауэром в Марсельском университете и базируется на логическом исчислении. Специфика языка состоит в том, что здесь имеется встроенная процедура поиска решений на графах. Наконец, третьим языком символьной обработки, с появлением которого в эту область были внесены интересные идеи, стал язык РЕФАЛ, созданный В. Турчиным. РЕФАЛ базируется на нормальных алгоритмах Маркова. Подобно Lisp, этот язык активно использует мощные средства преобразования списков на основе концепции распознавания по образцу.
Языки символьной обработки сыграли важную роль в программировании. С одной стороны, они позволили осуществить разработку и реализацию ряда практически важных систем аналитических преобразований, интеллектуальных программ и т. д., а с другой стороны, именно эти языки породили целый спектр исследований, результатом которых стала разработка и реализация языков представления знаний. Такие языки – важнейшее средство спецификации проблем и, следовательно, могут с успехом претендовать на роль языков сверхвысокого уровня.
А в 80-х гг. развитие языковых средств программирования стало все больше связываться с языками спецификации, обеспечивающими, с одной стороны, формулировку требований к разрабатываемой системе, а с другой – поддерживающими промышленные технологии разработки сложных программных комплексов. Одним из первых языков этого класса можно считать язык программирования Ada, названный так в честь первой женщины программиста Ады Лавлейс, дочери английского поэта Дж. Байрона. Это современный алгоритмический язык с традиционной структурой управления, возможностями определения типов и подпрограмм. Удовлетворяет язык и требованиям модульности. В дополнение к классическим свойствам язык обеспечивает программирование задач реального времени, возможности моделирования параллельного решения задач и обработку прерываний.
Языки объектно-ориенторованного программирования.
Существенным изменением в принципах построения языков программирования явился переход на объектно-ориенторованное программирование(ООП). Языки ООП (Си++, Object Pascal) отличаются тем, что в их структуре появились новые типы данных – классы. Класс как правило отражает свойство и поведение определенного объекта и содержит как обычные данные, так и методы (программы) их обработки.
Языки компонентно-ориенторованного программирования.
В современных языках типа С# наряду с классом(объектом) используется понятие компонента. Компоненты это такие объекты, которые наряду с простыми данными и методами имеют интерфейсы, свойства и события. Часто компоненты представляются в виде взаимодействующих объектов или объектов с одинаковым(общим) поведением. Это общее поведение представляется в виде интерфейса. Причем концепция интерфейса в компонентном программировании формулируется без использования понятия наследования.
Свойства компонентов предоставляют основополагающую логику управления состоянием объекта через атрибуты. Свойство делает компонент более пригодным для широкого использования в целом ряде других объектов, требующих его услуг.
Кроме того компоненты обладают способностью порождать события, основанные на наступлении каких–либо условий или инициируемые какими–либо действиями. События должны быть обработаны. Способ обработки события зависит от решаемой задачи.
Языки программирования, способные оперировать компонентами, принято называть языками компонентного программирования. К таким языкам с определенной степенью можно отнести язык C#.