Файл: Обзор языков программирования высокого уровня (Понятие языка программирования).pdf
Добавлен: 03.07.2023
Просмотров: 313
Скачиваний: 3
ВВЕДЕНИЕ
Актуальность темы исследования. Язык программирования - система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы.
Компьютерные программы часто описываются как "наборы инструкций", и компьютерные языки воспринимаются многими только как словарный и синтаксический способ обеспечения этих инструкций.
С этой точки зрения, различные языки программирования могут иметь различную грамматику или различные словари. Каждый язык может рассматривать точку с запятой по-своему или требовать заглавных букв в написании, но по большому счету в основе всех языков один и тот же принцип.
Большинство действительно "глобальных" идей в компьютерном программировании были разработаны еще в 1950-х и 60-х годах. С тех пор появилось много новых языков, но ни один из них не реализует действительно нового подхода к логике и вычислениям.
Языки программирования высокого уровня являются машинно-независимыми и требуют использования соответствующих программ-переводчиков (трансляторов) для представления программы на языке машины, на которой она будет исполняться.
Технология программирования имеет активную динамику развития в связи с тем, что появляются все новые и новые потребности в области информационных технологий.
Цель исследования – дать обзор языков программирования высокого уровня.
В соответствии с поставленными целями решались следующие основные задачи:
- дать понятие языка программирования;
-изучить классификацию языков программирования;
- рассмотреть язык программирования Фортра́н (Fortran);
- изучить особенности языка COBOL (Кобол);
- рассмотреть историю и возможности Pascal;
- дать характеристика языка Ada (Ада);
- рассмотреть особенности языка BASIC (Бейсик);
- дать характеристику языкам программирования Си и C++ (Си++);Методы исследования:
-обработка, анализ научных источников;
-анализ научной литературы, учебников и пособий по исследуемой проблеме.
Объект исследования – языки программирования высокого уровня
Предмет исследования – характеристика и обзор языков программирования высокого уровня
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ И ВИДЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1 Понятие языка программирования
Язык программирования – формальная знаковая система, которая предназначена для написания кодов компьютерных программ. Языком программирования определяется набор лексических, синтаксических и семантических правил, которые описывают внешний вид программы и действия, которые выполняет компьютер под её управлением.
За все временя существования программирования было разработано более 8 000 языков программирования различных типов.
С каждым годом количество возрастает. Некоторые языки доступны только небольшому числу их разработчиков, другие стали известны огромному количеству пользователей. Профессиональные программисты могут программировать на десятках различных языков программирования. Язык программирования используется для написания компьютерных программ, представляющих собой набор правил, которые позволяют компьютеру выполнить какой-либо вычислительный процесс, организовать управление различными объектами и т. п. Отличие языка программирования от естественного языка в том, что он предназначен для взаимодействия человека с ЭВМ, а естественный язык – для общения людей между собой. У большинства языков программирования для определения и манипулирования структурами данных и управления процессом вычислений используются специальные конструкции[1].
Чаще всего язык программирования существует в нескольких видах, которые существенно отличаются между собой:
Стандарт языка – набор спецификаций, которые определяют его синтаксис и семантику; стандарт языка может исторически развиваться.
Воплощения (реализации) стандарта – сами программные средства, которые обеспечивают работу соответственно определенному варианту стандарта языка. Они отличаются производителем, маркой и вариантом (версией), временем выпуска, полнотой воплощения стандарта, дополнительными возможностями; зачастую имеют определённые ошибки или особенности воплощения, которые влияют на практику использования языка или даже на его стандарт.
Стандартизация языков программирования. Для большинства широко распространённых языков программирования разработаны международные стандарты.
Специальными организациями проводится регулярное обновление и публикация спецификаций и формальных определений для соответствующего языка. Подобные комитеты продолжают разработку и модернизацию языков программирования и решают вопросы о расширении или поддержке уже существующих или новых языковых конструкций.
Способы реализации языков Языки программирования могут быть реализованы в виде компилируемых, интерпретируемых и встраиваемых. Компилируемый язык. Программа при помощи особой программы, которая называется компилятором, преобразуется (компилируется) в машинный код (набор инструкций) для данного типа процессора и образует исполнимый модуль, который можно запустить на выполнение как отдельную программу. Таким образом, компилятор преобразует исходный текст программы с языка программирования высокого уровня в двоичный код инструкций процессора.
Преимуществом скомпилированных программ является меньшее время их выполнения и ненужность для их выполнения дополнительных программ, т. к. они уже переведены на машинный язык. В то же время, при каждом изменении текста программы необходима ее перекомпиляция, что влияет на скорость процесса разработки. Также, скомпилированная программа может быть выполнена только на том типе компьютеров и, как правило, под управлением той операционной системы, на которую был рассчитан компилятор. Для создания исполняемого файла для машины другого типа необходима новая компиляция. Интерпретируемый язык. Интерпретатором непосредственно выполняется (интерпретируется) исходный текст без предварительного перевода. При этом программа запоминается на исходном языке и не может быть запущена без интерпретатора. С этой позиции процессор компьютера можно назвать интерпретатором машинного кода[2].
Разделение на компилируемые и интерпретируемые языки довольно условно. Так, например, для языка Pascal, который традиционно считается компилируемым языком, можно написать интерпретатор. Кроме того, большинством современных «чистых» интерпретаторов не исполняются конструкции языка непосредственно, а компилируются в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).
Для любого интерпретируемого языка можно создать компилятор. Например, язык Lisp, являющийся изначально интерпретируемым, может компилироваться без любых ограничений. Код, который создается во время исполнения программы, может так же динамически компилироваться при выполнении.
Программы, разработанные на интерпретируемых языках, можно запускать сразу же после изменения, что приводит к облегчению процесса разработки. Зачастую программы на интерпретируемых языкахе могут быть запущены на разных компьютерах и операционных системах без дополнительных трудностей. Вместе с тем, интерпретируемые программы выполняются гораздо медленнее, чем компилируемые, к тому же, они не могут быть выполнены без программы-интерпретатора.
1.2 Классификация языков программирования
Классификация языков программирования по категориям связана с методами, которые используются при написании программ.
Рис. 1. Классификация языков программирования.
Процедурные языки.
Процедурные языки являются языками высокого уровня, в которых используется метод разбиения программ на отдельные связанные между собой модули – подпрограммы (процедуры и функции). Компоненты языка состоят из последовательности операторов, которые используют библиотечные процедуры и функции. Первым процедурным языком был Fortran, затем появился Cobol, Algol, Pascal, C, Ada[3].
Языки программирования низкого уровня.
Языки низкого уровня ориентировались на определенный тип процессора и учитывали его особенности, поэтому для того, чтобы перенести программу, написанную на ассемблере, на другую аппаратную платформу её нужно было почти полностью переписать. Различия присутствовали также и в синтаксисе программ под разные компиляторы. Языками низкого уровня пользуются преимущественно для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирования специализированных микропроцессоров, когда немаловажным является компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
К языкам низкого уровня относится: программирование в машинных кодах; ассемблер; макроассемблер.
Языки программирования высокого уровня.
В языках высокого уровня особенности конкретных компьютерных архитектур не учитываются, поэтому написанные программы легко могут быть перенесены на другой компьютер. Зачастую достаточным является компиляция программы под определенную архитектурную и операционную систему. Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами.
Недостаток некоторых языков высокого уровня состоит в большом размере программ по сравнению с программами на языках низкого уровня. В то же время текст программ на языке высокого уровня гораздо меньше, но в байтах код, написанный на ассемблере, будет более компактным. Поэтому языки высокого уровня преимущественно используют для создания программного обеспечения для компьютеров и вычислительных устройств с большим объемом памяти. Языки же низкого уровня используются для написания программ к устройств, для которых критичным является размер программы[4].
Языки высокого уровня делятся на универсальные и проблемно-ориентированные. Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений. Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol, C и др. Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.
Независимо от того, считается ли язык высокоуровневым или низкоуровневым (или где-то посередине), речь идет об абстракции. Машинный код не имеет абстракции - он содержит отдельные инструкции, передаваемые на компьютер. И поскольку машины имеют дело только с числами, они представлены в двоичном виде (хотя они иногда записываются в десятичной или шестнадцатеричной нотации).
В машинном коде операции должны быть указаны точно. Например, если часть информации должна быть извлечена из памяти, машинный код должен будет сообщить компьютеру, где в памяти его найти. Писать непосредственно в машинный код возможно, но очень сложно. Низкоуровневые языки программирования добавляют немного абстракции к машинным кодам. Эта абстракция скрывает конкретные инструкции машинного кода за декларациями, которые более читабельны для человека. Языки ассемблера являются языками самого низкого уровня рядом с машинным кодом. В машинный код пользователь может написать что-то вроде «10110000 01100001», но язык ассемблера может упростить это как «MOV AL, 61h».
Как и языки более низкого уровня, более высокие уровни охватывают широкий спектр абстракций. Некоторые языки, такие как Java (многие относят его к языкам программирования среднего уровня), все же дают большой контроль над тем, как компьютер управляет памятью и данными.
Объектно-ориентированные языки Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основной концепцией которых есть совокупность программных объектов. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. К ним относятся из первых языков Simula и SmallTalk, далее C++, Java.