Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Поколения языков программирования

Поколения языков программирования связаны с поколениями ЭВМ, что вполне

естественно, поскольку в той или иной мере отражают быстродействие, эффективность

и возможности, которые предоставляются аппаратной платформой.

Первое поколение языков программирования датируется началом 1950-х гг. Это

низкоуровневые языки – язык машинных команд и язык ассемблера. Основная отличи-

тельная особенность: они ориентированы на конкретный компьютер.

Второе поколение – конец 1950-х–начало 1960-х гг. Разработан символьный ас-

семблер, в котором появилось понятие переменной. Основная отличительная особен-

ность: ориентирование на абстрактный компьютер с такой же системой команд.

Третье поколение – 1960-е гг. по настоящее время. Универсальные языки про-

граммирования высокого уровня. Их характеристики: относительная простота; незави-

симость от конкретного компьютера; возможность использования мощных синтаксиче-

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

которые не являются профессиональными программистами. Основная отличительная

особенность языков третьего поколения: ориентирование на алгоритм (алгоритмиче-

ские языки).

Четвертое поколение – с начала 1970-х г.г. до сегодняшнего времени. Это про-

блемно-ориентированные языки, оперирующие конкретными понятиями узкой области.

Как правило, в них встраивают мощные операторы, позволяющие одной строкой опи-

сывать функции, для реализации которых на универсальных языках потребовались бы

сотни или даже тысячи строк исходного кода. Сюда же относятся языки запросов, язы-

ки описания данных, языки разметки и т.д., которые, строго говоря, языками програм-

мирования как таковыми не являются, но при этом ориентированы на решение специ-

фичных задач. Основная отличительная особенность языка четвертого поколения: при-

ближение к человеческой речи (декларативные языки).

 

80. Компиляторы и интерпретаторы.

С помощью языка программирования создается не готовая программа, а только ее

текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую

программу, надо этот текст перевести в машинный код и использовать отдельно от ис-

ходного текста, либо сразу выполнять команды языка, указанные в тексте программы.

первая задача выполняется компилятором, вторая – интерпретатором.

Интерпретатор моделирует виртуальную вычислительную машину, для которой

базовыми инструкциями служат не элементарные команды процессора, а операторы

языка программирования. В процессе выполнения программы он считывает очередную

команду программы, анализирует ее структуру и сразу исполняет. После того, как те-

кущая команда успешно выполнена, интерпретатор переходит к следующей и т.д. При

этом если одна и та же команда выполняется в программе многократно, интерпретатор

будет выполнять ее так, как будто встретил впервые. Вследствие этого программы, в

которых требуется осуществить большой объём вычислений, выполняются медленно.

Кроме того, для выполнения программы на компьютере должен иметься сам интерпре-

татор.

Компиляторы полностью обрабатывают исходный код программы. Они просмат-

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

анализ, а затем автоматически переводят (транслируют) на машинный язык. Нередко

при этом выполняется оптимизация с помощью набора методов, позволяющих повы-

сить быстродействие программы (например, с помощью инструкций, ориентированных

на конкретный процессор, путём исключения ненужных команд, промежуточных вы-

числений и т.д.). В результате приложение получается законченным и эффективным.

Такая программа работает в сотни раз быстрее программы, выполняемой с помощью

интерпретатора, а также может быть перенесена на другие компьютеры с процессором,

поддерживающим соответствующий машинный код, при этом наличие компилятора

или интерпретатора на них не требуется.

Недостаток компилятора – трудоёмкость трансляции языков программирования,

ориентированных на обработку данных сложных структур, часто заранее неизвестной

или динамически меняющейся во время работы программы. Тогда в машинный код

приходиться вставлять множество дополнительных проверок, анализировать наличие

ресурсов операционной системы, динамически их захватывать и освобождать, форми-

ровать и обрабатывать в памяти компьютера сложные объекты, что на уровне жестко

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

возможно.

С помощью интерпретатора, наоборот, допустимо в любой момент остановить

программу, исследовать содержимое памяти, организовать диалог с пользователем, вы-

полнить сколь угодно сложные преобразования и при этом постоянно контролировать

состояние окружающей программно-аппаратной среды, благодаря чему достигается

высокая надёжность работы. Интерпретатор при выполнении каждого оператора про-

веряет множество характеристик операционной системы и при необходимости макси-

мально подробно информирует разработчика о возникающих проблемах. Кроме того,

интерпретатор очень удобен для использования в качестве инструмента изучения про-

граммирования, так как позволяет понять принципы работы любого отдельного опера-

тора языка.

В реальных системах программирования перемешаны технологии и компиляции,

и интерпретации. В процессе отладки программа может выполняться по шагам, а ре-

зультирующий код не обязательно будет машинным – он даже может быть исходным

кодом, написанном на другом языке программирования (это существенно упрощает

процесс трансляции, но требует компилятора для конкретного языка), или промежу-

точным машинно-независимым кодом абстрактного процессора, который в различных

машинных архитектурах будет выполняться с помощью интерпретатора или компили-

роваться в соответствующий машинный код.

 

81. Технология программирования.

Технология программирования – это система методов, способов и приемов обра-

ботки и выдачи информации. Она позволяет в определенной мере учесть появляющие-

ся при разработке программы трудности и преодолеть их.

Язык программирования формируется на основе определенного алфавита и стро-

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

вы, цифры, математические символы, а также операторы.

Для небольших задач написание программ как правило не является сколько-

нибудь трудной проблемой. Однако в случае, когда разработка программы ведется не-

сколько лет, осуществляется группой программистов, и программа выполняет не одну

примитивную, а множество сложнейших задач, необходимо следовать определенной

технологии программирования.

 

 

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

Процедурное (императивное) программирование напрямую основывается на ар-

хитектуре ЭВМ, предложенной фон Нейманом в 1940-х годах. Программа на проце-

дурном языке программирования состоит из последовательности операторов (инструк-

ций), задающих процедуру решения задачи. Основным является оператор присваива-

ния, он служит для изменения содержимого областей памяти. Содержимое памяти мо-

жет обновляться операторами программы, это является фундаментальным моментом в

императивном программировании.

Выполнение программы сводится к последовательному выполнению операторов с

целью преобразования исходного состояния памяти, то есть значений исходных дан-

ных, в заключительное, то есть в результаты. Таким образом, с точки зрения програм-

миста имеются программа и память, причем первая последовательно обновляет содер-

жимое последней.

Процедурный язык программирования предоставляет возможность программисту

определять каждый шаг в процессе решения задачи. Особенность таких языков про-

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...