Языки программирования высокого уровня
Автор работы: Пользователь скрыл имя, 14 Января 2015 в 08:21, реферат
Краткое описание
Способность машины к выполнению определённого набора инструкций без необходимости физического вмешательства является фундаментальной особенностью компьютеров. Дальнейшее развитие эта особенность получила, когда машины приобрели способность управлять процессами путем следования заранее написанной программы. Это позволило компьютерам самостоятельно изменять порядок выполнения инструкций программы в зависимости от состояния данных.
Вложенные файлы: 1 файл
Введение
Способность машины к выполнению
определённого набора инструкций без
необходимости физического вмешательства
является фундаментальной особенностью
компьютеров. Дальнейшее развитие эта
особенность получила, когда машины приобрели
способность управлять процессами путем
следования заранее написанной программы.
Это позволило компьютерам самостоятельно
изменять порядок выполнения инструкций
программы в зависимости от состояния
данных. В 1946 году в журнале "Nature"
вышла статья Дж.фон Неймана, Г.Голстайна
и А.Беркса "Предварительное рассмотрение
логической конструкции электронного
вычислительного устройства". В этой
статье были изложены принципы устройства
и работы ЭВМ. Главный из них - принцип
хранимой в памяти программы, согласно
которому данные и программа помещаются
в общую память. Этот принцип позволил
писать различные компьютерные программы,
по которым в дальнейшем следовал компьютер.
Принципиальное описание устройства и
работы компьютера принято называть архитектурой
ЭВМ. Идеи, изложенные в упомянутой выше
статье, получили название "архитектура
ЭВМ Дж.фон Неймана". Когда появились
первые ЭВМ (компьютеры), для того чтобы
с ними взаимодействовать необходимо
было умение писать компьютерную программу
на ее родном языке-языке машинных команд
(сокращено ЯМК). В программах на ЯМК данные
обозначаются их адресами в памяти машины,
выполняемые операции – числовыми кодами.
Программист сам должен заботиться о расположении
в памяти ЭВМ команд программы и данных.
Приведем пример команды на ЯМК. Она состоит
из адреса операции, кода операции, адреса
первого операнда, адреса второго операнда
и адреса результата. Адрес операции служит
для определения последовательности выполнения
команд алгоритма, команды выполняются
в порядке возрастания. Код операции определяет,
какую команду необходимо выполнить, это
зависит от системы команд исполнителя
(СКИ). У каждого процессора своя СКИ. Адреса
операндов указывают на их расположение
в оперативной памяти. Адрес результата
соответственно помещается в ячейку, указанную
в адресе результата. Программы на ЯМК
пишутся в двоичном виде. Со временем,
в связи с трудоемкостью ЯМК, были созданы
первые системы программирования, они
позволяли работать на языках более высокого
уровня, чем ЯМК. Первые языки более высокого
уровня, чем ЯМК – автокоды (или как их
позже назвали ассемблеры). Одна команда
на автокоде соответствует одной команде
на ЯМК. При работе с автокодом программист
не распределяет память под программу,
не работает с адресами ячеек, переменные
и числовые константы записываются, как
и в математике, коды операций буквами.
Несмотря на то, что автокод - язык более
высокого уровня, чем ЯМК, он все равно
считается низкоуровневым языком. Позже
появились и языки, более высокоуровневые
чем автокод - это языки ЯПВУ (языки программирования
высокого уровня), например: Паскаль, Бейсик,
Си, Фортран.
язык Фортран (Fortran). Является одним из первых языков
программирования высокого уровня. К его
основным достоинствам относится наличие
огромного числа математических библиотек,
поддержка работы с целыми, вещественными
и комплексными числами высокой точн1ости
, встроенных средств обработки массивов.
К недостаткам можно отнести
отсутствие средств отладки и анализа
поведения программы, сложность понимания
исходного кода. По сути, на данный момент
Фортран является узкоспециализированным
языком, применяемым для научных и инженерных
вычислений.
язык Бейсик (Basic). Был разработан в 1964 г. в качестве
языка для обучения программированию
Основными достоинствами этого
языка являются, простой синтаксис, который
позволяет в кратчайшие сроки освоить
этот язык программирования, простота
реализации графического интерфейса,
возможность использования WinAPI функций,
что значительно расширяет возможности
языка.
Одним из основных недостатков
языка является то, что он поддерживает
только операционные системы семейства
Windows, DOS и Mac OS X, что значительно сужает
сферы его применения. Также к недостаткам
можно отнести низкую скорость работы
и отсутствие механизма наследования
реализации объектов .
язык Си (С) был создан в 1969—1973 годах в
качестве языка системного программирования
и первоначально предназначался для написания
ОС UNIX [4,12]. В 1980-е гг. язык С был дополнен
инструментами объектно-ориентированного
программирования и на основе него был
создан язык C++.
Одним из главных достоинств
является кроссплатформенность, а также
минимальные аппаратные требования для
запуска скомпилированных программ, широкий
набор средств для реализации как прикладных,
так и системных задач.
К недостаткам языка можно отнести
отсутствие четкой стандартизации. В ходе
исторического развития языка его элементы
зачастую заимствовались из других языков,
вне зависимости от наличия других элементов.
Это привело к наличию дублирующих и иногда
противоречащих друг другу элементов.
Данные аспекты привели к тому, что язык
стал чрезвычайно сложным для восприятия.
язык Паскаль (Pascal). Был создан математиком Н. Виртом
специально для обучения программированию.
Однако со временем стал широко применяться
для разработки программных средств в
профессиональном программировании.
Самая первая версия была создана
в 1968 году профессором кафедры вычислительной
техники Швейцарского федерального института
технологии Никласом Виртом . Основной
целью, при создании нового языка, является
его простота, с сохранением всех достоинств
уже имеющихся языков высокого уровня
программирования.
Популярность созданного языка
стала столь высокой, что уже к 1980 году
насчитывалось более восьми десятков
его трансляторов. В начале 80-х годов язык
программирования Паскаль еще более усилил
свои позиции после создания трансляторов
Turbo-Pascal для персональных компьютеров.
С этого момента язык смело вышел за рамки
узкого использования программистами-профессионалами.
Он начал использоваться как рабочий инструмент
пользователей и как средство обучения
языков программирования.
Уровень языка характеризует
удаленность от языка процессора и приближенность
к естественному человеческому языку,
к формальному языку предметной области(чаще
всего- математике).Чем выше уровень языка,
тем дальше он расположен от компьютера
и ближе к человеку. ЯМК считается языком
самого низкого уровня. С повышением уровня
языка, многие операции предусмотрены
самим языком, поэтому программировать
становится легче и быстрей, но теряется
возможность изменять вещи, которые можно
было бы изменить на более низкоуровневом
языке.
Так как процессор понимает
только ЯМК, любая программа в конечном
итоге должна быть переведена именно на
этот язык. Для этого существуют специальные
программы-переводчики - трансляторы.
Существуют два способа трансляции: "компиляция"
и "интерпретация".
Работа компилятора
При компиляции в память компьютера
загружается программа-компилятор. Она
воспринимает тест программы на ЯПВУ как
исходную информацию. Компилятор производит
синтаксический контроль программы и
при обнаружении ошибок выводит диагностические
сообщения. Если ошибок нет, то результатом
компиляции является программа на языке
машинных команд. Затем компилятор удаляется
из оперативной памяти. В памяти остается
только программа на ЯМК, которая в будущем
выполняется для получения результатов
Конечно, компиляция с автокода (ассемблера)
намного проще, чем с ЯПВУ. Для этой процедуры
часто применяют специальный термин-ассемблирование.
А под словом "ассемблер" понимается
не только язык программирования, но и
транслятор с него.
Работа интерпретатора
Интерпретатор в течение всего
времени работы программы находится во
внутренней памяти. В ОЗУ помещается программа
на ЯПВУ. Интерпретатор читает ее первый
оператор, переводит его в машинные команды
и тут же организует выполнение этих команд.
Затем переходит к переводу и выполнению
следующего оператора и так до конца программы.
При этом результаты предыдущих переводов
в памяти не сохраняются. Перед трансляцией
каждого оператора происходит его синтаксический
анализ.
Список источников
информации
- И.Семакин, Л.Залогова, С.Русаков, Л.Шестакова. О языках программирования и трансляторах. -Информатика 9,2005. - 341 с.
- Свободная энциклопедия - «Википедия».
Информация о работе Языки программирования высокого уровня