Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_6_Po_Yap_Dlya_Gr_441.docx
Скачиваний:
6
Добавлен:
15.04.2015
Размер:
130.17 Кб
Скачать

5. Классификация языков программирования

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

На самом низком уровне находится язык машинных командкомпьютера. Чуть выше - языкAssembler(но тоже низкого уровня). Появление языкаAssemblerпозволило перейти к программированию машинных команд с использованием символьных имен команд (вместо машинных двоичных кодов) и использованию имен вместо адресов.

Программирование на Assemblerимеет некоторыенедостатки:

  1. программный коддостаточнодлинный(это кроме неудобства может служить еще и источником ошибок при выполнении программы на машине;

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

Программирование на Assemblerтакже имеет определенныепреимущества(по сравнению с ЯВУ):

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

  2. максимум быстродействияпри работе программ.

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

Все языки программирования высокого уровня с одной стороны(с точки зрения решаемых с их помощью задач - как и алгоритмы) делятся на:

- вычислительные языки (FORTRAN,BASIC, АЛГОЛ, С,PASCALи др.);

- языки символьной (нечисловой) обработки (ПРОЛОГ, СНОБОЛ, ЛИСП и др.).

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

- императивные или процедурные;

- непроцедурные или неимперативные (делятся на функциональные и логические);

- объектно-ориентированные.

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

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

В функциональныхязыках программирования используются функции, значения которых определяются по заданным (входным) параметрам. Традиционные переменные и опе­раторы присваивания при этом уже не нужны (ввод значений переменных или присваивание им значения представляется как вызов функции) или, по крайней мере, не обязатель­ны. Обычно каждая функция представляет из себя композицию более простых функций. Функциональная программа представляет из себянабор определений (деклараций) функций, вызывающих друг друга. В процессе выполнения программы функции получают параметры, вычисляют и возвращают результат на вход других функций, т.е. попутно вычисляя значения других функций. Программист при этом не должен описывать порядок вычислений. Ему достаточно в виде системы взаимосвязанных функций определить (описать), что представляет собой решаемая задача и что нужно сделать для достижения желаемого результата. Примерами функциональных языков являютсяLISP,Haskel,F# (вVisualStudio2010), РЕФАЛ (язык рекурсивных функций - Турчин).

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

Примером логического языка программирования является Prolog.

Объектно-ориентированные языки программирования. В особую категорию в языках высокого уровня относят объектно-ориентированные языки программирования. Объектно-ориентированные языки упрощают программирование с использованием технологии объектно-ориентированного программирования C++,ObjectPascal,Ada-95,Java, С#.

Так же в особую категорию можно вынести:

- скриптовые языки(получили своё развитие за счет развитияInternet(JavaScript,JScript,PHP,Perl,Python,VBScript).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]