Следующее поколение язык программирования

Статья на тему «О поколениях языков программирования и их особенностях».

Языки программирования по своим возможностям и времени создания принято делить на несколько поколений ( Generation Language , GL ). Каждое следующее поколение качественно отличается от предыдущего по функциональной мощности. На сегодняшний день насчитывают пять поколений языков программирования.

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

Ситуация качественно изменилась в середине 50-х годов, когда был написан первый ассемблер, который позволял задавать названия команд в символическом виде и указывать числа не только в двоичном, но и в десятичном или шестнадцатеричном формате, что существенно облегчило работу программистов.

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

Расцвет второго поколения языков программирования (2 GL ) пришелся на конец 50-х — начало 60-х годов. Был создан символический ассемблер, позволявший писать программы без привязки к конкретным адресам памяти. В него было введено понятие переменной, и он, по сути, стал первым настоящим (хотя и машинно-ориентированным) языком программирования со своим компилятором. Скорость создания и эффективность работы программ резко возросли. Ассемблеры активно применяются и в настоящее время, как правило, для создания программ, максимально использующих возможности аппаратуры: различных драйверов, модулей стыковки с нестандартным оборудованием и других. В некоторых областях, например, в машинной графике, на ассемблере пишут библиотеки, эффективно реализующие стандартные алгоритмы обработки изображений.

Читайте также:  Язык программирования java таблица

Третье поколение языков программирования (3 GL ) принято относить к 60-м годам. В это время родились языки, которые называют универ­сальными языками высокого уровня — с их помощью можно решать задачи из любых областей. Это общеизвестные Фортран, Кобол, Алгол и другие. Такие качества новых языков, как относительная простота, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций позволили резко повысить производительность труда программистов. Кроме того, понятная большинству пользователей процедурная идеология этих языков позволила привлечь к написанию небольших программ (как правило, расчетного или учетного характера) большое количество специалистов из некомпьютерных областей.

Подавляющее большинство языков 3 GL успешно применяется и сегодня. Современные компиляторы с интегрированными средами разработки предоставляют очень удобные средства поддержки процесса создания программ, легко осваиваемые студентами первых курсов компьютерных специальностей. Практически все современные коммерческие продукты, рассчитанные на массовый рынок, написаны на языках третьего поколения.

С начала 70-х годов по настоящее время тянется период языков четвертого поколения (4 GL ). После первых восторгов по поводу безгранич­ных способностей ЭВМ возможности существующих языков програм­мирования стали более понятными. Несмотря на рождение новых технологий (объектно-ориентированное программирование, визуальное программирование, CASE -методологии, системный анализ), процесс создания больших программных комплексов оставался очень трудоемкой задачей. Для реализации крупных проектов требовался более цельный подход к решаемым задачам, чем предлагали имевшиеся средства разработки. Языки 4 GL частично снимали эту проблему. Цель их создания — в первую очередь увеличение скорости разработки проектов, снижение числа ошибок и повышение общей надежности работы больших программных комплексов, возможность быстрого и легкого внесения изменений в готовые проекты, упрощение самих языков для конечного пользователя, активное внедрение технологий визуальной разработки и так далее. Все средства разработки четвертого поколения имеют мощные интегрированные оболочки и обладают простым и удобным пользовательским интерфейсом. Они чаще всего используются для проектирования баз данных и работы с ними (встроенные языки СУБД), что объясняется возможностью формализации всех понятий, используемых при построении реляционных баз данных. Языки 4 GL активно применяются в специализированных областях, где высоких результатов можно добиться, используя не универсальные, а проблем­но-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные примитивы, позволяющие одним оператором описать такую функциональность, для реализации которой на языках младших поко­лений требуются тысячи строк кода.

Читайте также:  Программирование 2 часть огэ

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

Рождение языков пятого поколения относится к началу этого века. Главная идея, которая закладывается в системы 5 GL , — возможность компьютерного интерактивного или полностью автоматического преобразования инструкций, вводимых в систему наиболее удобными человеку методами в максимально наглядном виде, в текст на универсальных языках программирования, описывающий готовую программу. Наличие промежуточного этапа (получение не готового исполняемого модуля, а только исходных текстов, требующих дальнейшей обработки) объясняется низкой эффективностью автоматически генерируемого кода приложений, созданных с использованием подобных систем пятого поколения. Это связано с внутренней сложностью последних и жела­нием создавать независимые от платформы продукты.

Исходные тексты обычно генерируются на языках более низкого уровня (как правило — третьего поколения). Благодаря автоматическому процессу генерации текстов программы результирующий код получается хоть и неэффективным, но высоконадежным и не содержащим ошибок. Правда, при этом возникает проблема совместимости с имеющимися на рынке компиляторами. После генерации кода созданного приложения необходимо перевести его в машинное представление. Для этого требуется тесная интеграция с имеющимися коммерческими компиляторами, легкая настройка, ориентированная на пользователя-непрограммиста и соответствие получаемого кода требованиям конкретных средств разработки. В боль­шинстве случаев из-за острой конкурентной борьбы решить проблему совместимости в целом не удается, поэтому системы разработки 5 GL ориентируются обычно на определенные версии компиляторов.

В целях обеспечения возможности создания программ, решающих самые разные задачи, разработчики стараются использовать богатый многолетний опыт программной индустрии. Системы пятого поколе­ния имеют открытую архитектуру и нередко поддерживают большое количество продуктов третьих фирм, предоставляя пользователю возможность интеграции с готовыми решениями для различных областей. Это могут быть всевозможные визуальные редакторы, генераторы отчетов, стандартные библиотеки, удобные Мастера ( Wizards ) быстрого создания типовых приложений, CASE -системы, средства интеграции с базами данных и т. п. Чем больше приложений удается объединить в одном пакете, тем большими возможностями он обладает.

В большинстве подобных систем используются усовершенствованные технологии, воплощенные в средствах более низкого уровня. Например, возможность «мышиного» создания программ без ручного набора текстов, с использованием средства визуального проектирования программного обеспечения, взята из современных систем разработки 4 GL . Другое перспективное направление, заимствованное из 4 GL , — методы программной инженерии. Различные формальные нотации, поддерживаемые CASE -системами, позволяют с помощью мыши быстро создавать заготовки программ и сценарии SQL , описывающие структуру баз данных. Ряд современных языков 5 GL создан на основе успешно реализованных продуктов 4 GL , и граница между этими поколениями сильно размыта.

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

Другая часть экспертов полагает, что языки пятого поколения являются именно языками программирования, требующими от разработчика соответствующей квалификации и умения составлять программы вручную. Сторонники этого мнения под языками 5 GL понимают специализированные языки, оперирующие не абстрактными переменными, а понятиями своей предметной области, например бухгалтерскими счетами или ферзями и пешками. Это, как правило, узкоспециализированные языки, предоставляющие программисту мощные высокоуровневые возможности обработки информации из конкретной области знаний. К языкам пятого поколения относят также интегрированные с базами знаний и экспертными системами программные комплексы с собственными языками программирования. Наиболее актуальными для систем 5 GL станут достижения в следующих областях:

­ логическое программирование (Пролог-подобные языки и машины вывода);

­ исследовательское программирование (проект сложен и неясен, но средства разработки позволяют быстро создать шаблон программы и включать в него работающие фрагменты, постепенно приближаясь к конечному результату);

­ использование естественных языков для создания программ;

­ технологии управления базами знаний;

­ методы обработки и анализа текстовой информации (энциклопедии, Web -страницы, документы) с возможностью смыслового поиска и т.д.

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

Языки 5 GL , ориентированные на конкретные области применения, могут уже в ближайшее время завоевать самую широкую популярность. Наиболее перспективны продукты, позволяющие создавать при­ложения для работы с базами данных. Базы данных — это область информатики, наиболее успешно поддающаяся формализации. Наглядное подтверждение этому — тенденции развития практически всех известных СУБД корпоративного уровня. Вслед за встроенными языками СУБД появляются и другие проблемные языки программирования.

Источник

Оцените статью