Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. I. Языки программирования
  2. II Классификация.
  3. II. Классификация инвестиций
  4. II. Классификация Леонгарда
  5. II. Методы и источники изучения истории; понятие и классификация исторического источника.
  6. II. Объекты и субъекты криминалистической идентификации. Идентификационные признаки и их классификация.
  7. III. Классификация проблем абонентов ТД.
  8. Lt;variant>язык программирования высокого уровня
  9. Lt;variant>Языки программирования высокого уровня
  10. Quot;пейоративный выражение\" - это языковое выражение для обозначения определенного предмета, заведомо содержит его негативную оценку

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

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

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

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

Все языки программирования можно классифицировать по следующим основным признакам:

по степени зависимости от машины;

по типам;

по семействам;

по уровню;

по средствам разработки.

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

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

К машинно-ориентированным языкам относятся мнемокоды (ассемблеры) и автокоды.

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

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

Группа машинно-независимых языков включает процедурно- и проблемно-ориентированные языки.

Процедурно-ориентированные языки служат для записи алгоритмов обработки информации, характерных для достаточно широкого класса расчетных и информационных задач. К ним относятся, например, языки ФОРТРАН, АЛГОЛ, ПЛ/1, КОБОЛ и др.

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

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

Императивные языки программирования — языки, оперирующие командами, изменяющими значение элементов данных. Характеризуются наличием операций присвоения и циклами.

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

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

Аппликативные языки — языки, в которых функции применяются к значениям без побочного эффекта.

Функциональные языки — языки, оперирующие с помощью функций высокого порядка, операции в них манипулируют напрямую функциями, а не данными (FP).

Языки потоков данных — языки, которые можно применять в архитектуре потоков данных. Обязательно характеризуются свободой от побочных эффектов.

Языки логики — языки, оперирующие предикатами и отношениями. Программы состоят из набора заключений Хорна

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

Параллельные языки — языки, описывающие программы, которые можно исполнять параллельно. Они могут быть:

многопрограммными — разделяющими один процессор;

мультипроцессорными — отдельные процессоры разделяют одну распределенную память.

Языки запросов — обеспечивают интерфейс к базам данных.

Языки спецификаций — определяют формализм для описания программных или аппаратных конструкций.

Ассемблерные языки — являются символьным представлением машинных языков конкретного компьютера.

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

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

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

Развитие языков программирования (да и всего программирования в целом) характеризуется общей тенденцией повышения уровня языков программирования. Все начиналось с машинного автокода (пример, AUTOCODER от Алика Гленни[Alick E. Glennie], 1952), когда автокод был примитивным символьным представлением машинного кода.

Потом появились первые языки общего назначения (Fortran). В 70-е гг. получили широкое распространение языки т.н. “среднего” уровня – BLISS (один из первых “не ассемблеров”, который использовался при программировании операционной системы), BCPL, C. В то же время уже существовали языки высокого уровня, такие как PL, Algol или Pascal. С введением в последнее время в широкое пользование парадигмы объектно-ориентированного программирование наибольшее распространение получили языки высокого уровня, такие как C++, Object Pascal и т.п., корни которых лежат в наиболее распространенных языках прошлого десятилетия. В языках четвертого поколения (например, 4GL)могут использоваться естественный английский язык или визуальные конструкции. Алгоритмы или структуры данных могут выбираться компилятором.

По средствам разработки. Несмотря на то, что в последние десятилетия появилось огромное количество новых языков программирования, новых средств для конструирования компиляторов появилось не так уж и много. Большинство из существующих компиляторов по-прежнему разрабатывается на старых добрых Lex/Yacc/Bison или их новых потомках Flex++/Bison++. Другие средства, получившие широкое распространение в последнее время: PCCTS, PRECC, Cocktail.

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

Однако создание языков программирования высокого уровня само по себе еще не обеспечивало полностью возможность решения задачи с помощью компьютеров. Для этого необходим был перевод программы с языка высокого уровня на язык машины. Трансляция, как уже говорилось выше, осуществляется с помощью специальных программ — трансляторов. Язык программирования высокого уровня и соответствующий транслятор обеспечивают возможность обработки на компьютере программы, написанной на этом языке. Помимо трансляторов стали разрабатываться и другие программы, облегчающие работу человека на компьютере. В настоящее время все эти программы стали объединять в систему, получившую название системы программирования. Уже машины второго поколения обладали достаточно развитыми системами программирования. Эти системы получили полное развитие на машинах третьего поколения, где их стали включать в состав операционных систем.

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

 




Дата добавления: 2014-12-20; просмотров: 91 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав