Языки программирования понятие классификация эволюция

14.1. Эволюция и классификация языков программирования.

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

Развитие языков программирования идет от середины ХХ века до наших дней. От «конкретного» программирования, когда команды обозначались в виде двоичных или восьмеричных кодов, а операнды – в виде двоичных или восьмеричных адресов, от машинных языков и до современных систем программирования.

14.1.1. Процедурное программирование

Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х гг. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

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

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

Процедурные языки характеризуются:

— отсутствием строгой математической основы;

— необходимостью явного управления памятью, в частности необходимостью описания переменных;

— малой пригодностью для символьных вычислений;

— высокой эффективностью реализации на традиционных ЭВМ.

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

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

Наиболее популярными среди процедурных языков являются такие языки, как Ассемблер, Бейсик, Фортран, Си и Паскаль.

14.1.2. Функциональное программирование

Сущность функционального (аппликативного) программирования определена А.П. Ершовым как «… способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции – оператор суперпозиции функции. Никаких ячеек памяти, операторов присваивания, ни, тем боле, блок-схем, ни передачи управления».

Роль основной конструкции в функциональных языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из Х в Х, где Х – множество выражений.

Аппликативный язык программирования включает следующие элементы:

— классы констант, которыми могут манипулировать функции;

— набор базовых функций, которые программист может использовать без предварительного объявления и описания;

— правила построения новых функций из базовых;

— правила формирования выражений на основе вызовов функций.

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

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

Первым таким языком был LISP(ЛИСП) (LIStProcessing– обработка списков). Созданный в 1959 году. Цель его создания состояла в организации удобства обработки символьной информации. Существенная черта этого языка – унификация программных структур и структур данных: все выражения записываются в виде списков.

Источник

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

Программа – это логически упорядоченная последовательность команд необходимая для управления компьютером.

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

Введение. Развитие вычислительной техники сопровождается созданием новых и совершенствованием существующих средств общения программистов с ЭВМ — языков программирования.

Язык программирования — набор ключевых слов (словарь) и система правил (грамматических и синтаксических) для конструирования операторов, состоящих из групп или строк чисел, букв, знаков препинания и других символов, с помощью которых люди могут сообщать компьютеру набор команд.

Под языком программирования понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде язык программирования является средством создания программных моделей объектов и явлений внешнего мира.

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

Движущие силы эволюции языков программирования

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

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

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

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

В-четвертых, совершенствование самих ЭВМ приводит к необходимости создания языков, максимально реализующих новые аппаратные возможности ЭВМ.

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

Источник

Читайте также:  Разработка приложения системы счисления
Оцените статью