Файл: «Классификация языков программирования высокого уровня» ..pdf
Добавлен: 16.05.2023
Просмотров: 451
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. История развития языков программирования и их классификация
1.1. История развития языков программирования
1.2. Классификация языков программирования
1.3.Эволюция языков программирования
Глава 2.Обзор и анализ особенностей применения языков программирования высокого уровня
Глава 3. Классификация языков программирования высокого уровня
Введение
Всем прогрессивным людям давно ясно, что информационные технологии являются одной из наиболее быстро развивающихся областей современной жизни. Новые технологии, проекты, названия и аббревиатуры появляются едва ли не каждый день. Представить сейчас современного человека, не умеющего владеть компьютером, нельзя. Это стимулирует и подталкивает развитие и многостороннюю применяемость языков программирования. Основные требования, которые предъявляются к ним, это: наглядность, единство, гибкость, модульность и однозначность.
Языки высокого программирования являются машинно-независимыми.
В настоящее время, во всем мире широко применяются языки высокого программирования, такие как Фортран, Алгол, Си, С++, Java, Паскаль и другие. Один из самых "старых" - Паскаль. Своей популярности среди программистов он обязан, прежде всего, своей простоте, универсальности и удобству работы в нем. Язык программирования Паскаль используется уже более тридцати лет. На сегодняшний день создано семь версий.
Объектом исследования курсовой работы являются языки программирования.
При выполнении курсовой работы были поставлены следующие задачи:
1) Исследовать историю развития языков программирования от простейших к языкам высокого уровня, показав необходимость такого развития с целью решения более сложных задач.
2) Произвести квалификацию языков программирования высокого уровня с учетом их особенностей.
Глава 1. История развития языков программирования и их классификация
1.1. История развития языков программирования
История развития вычислительных машин и языков программирования начинается в 20-х гг. XIX в. Изобретатель первой в мире цифровой вычислительной машины, английский математик Чарльзом Бэббиджем, высказал мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений — программе.
[Язык программирования - это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ. Языки программирования являются искусственными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.][1]
Рассмотрим историю развития вычислительной техники. Вспомним самые первые компьютеры и программы для них. Это была эра программирования непосредственно в машинных кодах, а основным носителем информации были перфокарты и перфоленты. Программисты обязаны были знать архитектуру машины досконально. [Программы были достаточно простыми, что обуславливалось, во-первых, весьма ограниченными возможностями этих машин, и, во-вторых, большой сложностью разработки и, главное, отладки программ непосредственно на машинном языке. Вместе с тем такой способ разработки давал программисту просто невероятную власть над системой.][2] Становилось возможным использование таких хитроумных алгоритмов и способов организации программ, какие и не снились современным разработчикам. Например, применялся самомодифицирующийся код. Знание двоичного представления команд позволяло иногда не хранить некоторые данные отдельно, а встраивать их в код как команды.
[Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной Джоном Моучли, сотрудником Пенсильванского университета.][3] Эта система под названием Short Code являлась примитивным языком программирования высокого уровня.
[Уже в 1951 г. Г.Хоппер создала первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов машинные команды.][4] В 1954 г. группа под руководством Г.Хоппер разработала систему, включавшую в себя язык программирования и компилятор, которая в дальнейшем полу название MATH-MATIC.
Середина 1950-х гг. характеризуется стремительным прогрессом в области программирования. Голь программирования в машинных командах стала уменьшали Начали появляться языки программирования нового типа, выступающие в качестве посредника между машинами и программистами. Первым и одним из наиболее распространенных был Фортран (FORTRAN — от FORmula TRANshlor - переводчик формул), разработанный группой программистов фирмы IBM в 1954 г. (первая версия).
В конце 1950-х гг. плодом международного сотрудничества в области программирования явился Алгол (ALGOL — от ALGOrithmic Language — алгоритмический язык). [Алгол предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленных задач.][5] Специалисты-практики восприняли этот язык далеко неоднозначно, но, тем не менее его влияние на развитие других языков и теорию программирования оказалось весьма значительным.
[В нашей стране в те годы под руководством Сергея Петровича Ершова был (создан транслятор Альфа, который представлял довольно удачную русифицированную версию Алгола.][6]
В середине 1960-х гг. сотрудники математического факультета Дартмутского кол-Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык звали «универсальным символическим кодом для начинающих» (Beginner's All-urpose Symbolic Instruction Code, или сокращенно, BASIC).
В 1960-е гг. были предприняты попытки преодолеть эту «разносорт-иосицу» путем создания универсального языка программирования. Первым детищем этого направления стал PL/I (Programm Language One), созданный в 1967 г. В дальнейшем на эту роль претендовал АЛГОЛ-68 (1968 г.). Бейсик широко употребляется при написании простых программ; Фортран является классическим языком программирования при решении на ЭВМ математических и инженерных задач; язык Кобол был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса. Еще более специализированным является язык Лого (от гр. logos — слово), созданный для обучения программированию школьников профессором математики и педагогики Сеймуром Пейпертом из Массачусетского технологического института.
Большой отпечаток на современное программирование наложил язык Си (первая версия — 1972 г.), являющийся очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам..
В течение многих лет программное обеспечение строилось на основе операциональных и процедурных языков, таких как Фортран, Бейсик, Паскаль, Ада, И И сегодня современные версии этих и им подобных языков (Модула, Форт и дЯ доминируют при разработке прикладных программных средств. Однако по мере эволюции языков программирования получили широкое распространение и другие, принципиально иные, подходы к созданию программ.
1.2. Классификация языков программирования
Можно сформулировать ряд требований к языкам программирования и классифицировать языки по их особенностям.
Основные требования, предъявляемые к языкам программирования:
- наглядность - желательное использование в языке уже существующих символов, хорошо знакомых и понятных как программистам, так и пользователям компьютеров;
- единство - использование однозначных символов для обозначения. Количество этих символов должно быть по возможности минимальным;
- гибкость - применение удобного, несложного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;
- [модульность - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые могут быть составлены отдельно и использованы в различных сложных алгоритмах;
- однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач.][7]
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
[Любой алгоритм, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату.][8] В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
- машинные;
- машинно-оpиентиpованные (ассемблеры);
- машинно-независимые (языки высокого уровня);
- универсальные языки;
- диалоговые языки;
- непроцедурные языки.
[Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы.][9] Эти языки для людей языки более удобны.
Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. В данном случае “низкий уровень” не значит “плохой”. Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.
[При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.][10] Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
[В случае, когда нужно иметь эффективную программу, в полной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).][11]
[Язык ассемблера — это машинно-зависимый язык низкого уровня, в котором короткие мнемонические имена соответствуют отдельным машинным командам.][12] Используется для представления в удобочитаемой форме программ, записанных в машинном коде.
[Язык ассемблера позволяет программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации.][13] Ассемблер позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др.
С помощью языков низкого уровня создаются очень эффективные и компактные программы. Разработчик получает доступ ко всем возможностям процессора. Но при этом требуется очень хорошо понимать устройство компьютера, затрудняется отладка больших приложений, а окончательная программа не может быть перенесена на компьютер с другим типом процессора. Подобные языки обычно применяют для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованием, когда важнейшими требованиями становятся компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам. В некоторых областях, например в машинной графике, на языке ассемблера пишутся библиотеки, эффективно реализующие алгоритмы обработки изображений, требующие интенсивных вычислений.
Таким образом, программы, написанные на языке ассемблера, требуют значительно меньшего объема памяти и времени выполнения. [Знание программистом языка ассемблера и машинного кода дает ему понимание архитектуры машины.][14] Несмотря на то, что большинство специалистов в области программного обеспечения разрабатывают программы на языках высокого уровня, наиболее мощное и эффективное программное обеспечение полностью или частично написано на языке ассемблера.
[Языки высокого уровня - были разработаны для того, чтобы освободить программиста от учета технических особенностей конкретных компьютеров, их архитектуры. Уровень языка характеризуется степенью его близости к естественному, человеческому языку.][15] Машинный язык не похож на человеческий, он крайне беден в своих изобразительных средствах. Средства записи программ на языках высокого уровня более выразительны и привычны для человека. Например, алгоритм вычисления по сложной формуле не разбивается на отдельные операции, а записывается компактно в виде одного выражения с использованием привычной математической символики. Составить свою или понять чужую программу на таком языке гораздо проще.
[Важным преимуществом языков высокого уровня является их универсальность, независимость от ЭВМ.][16] Программа, написанная на таком языке, может выполняться на разных машинах. Составителю программы не нужно знать систему команд ЭВМ, на которой он предполагает проводить вычисления. При переходе на другую ЭВМ программа не требует переделки. Такие языки – не только средство общения человека с машиной, но и людей между собой. Программа, написанная на языке высокого уровня, легко может быть понята любым специалистом, который знает язык и характер задачи.