Файл: Обзор языков программирования высокого уровня.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 65

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

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

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

В нынешнее время актуальной проблемой является создания программных продуктов с оконным интерфейсом, чем и обеспечивается удобность использования интерфейса «пользователь-система».

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

Исходя из цели работы необходимо решить такие основные задачи:

– рассмотреть понятия и классификацию языков программирования;

  • описать основы языка программирования высокого уровня С++;
  • раскрыть методы написания программы, комментарии в С++;
  • рассмотреть интерфейс среды разработки C++ Builder;
  • создать графическое приложение для демонстрации методов разработки графических программ.

Объектом исследования является программное обеспечение персонального компьютера.

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

В связи с развитием вычислительной техники возникали различные методики создания программ: структурный, объектно-ориентированный, функциональный подходы. Развитием теоретических и практических основ языков программирования занимались отечественные и зарубежные программисты: П.Голдинг, Королюк В.С., С.Прата, Б. Стауструп и многие другие.


1. Языки программирования и их классификация

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

Теоретическую основу языков программирования составляют алгоритмические языки. Обычно при разработке языка программирования высокого уровня сначала создается алгоритмический язык с тем же названием. Алгоритмический язык, предназначенный для описания алгоритмов решения задач на ЭВМ, называется языком программирования.

Языки программирования условно классифицируются следующим образом: машинные, ассемблеров, машинно-ориентированные и автокоды, процедурно-ориентированные и проблемно-ориентированные, объектно-ориентированные, визуальные. С момента появления ЭВМ языка программирования прошли большой путь развития, возможно представить в виде иерархии уровней.

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

Первый уровень - программирование на языках символического кодирования (мнемокодах). Язык символического кодирования - язык программирования, ориентированная на конкретную ЭВМ и состоит в символьном кодировании машинных операций с помощью определенного набора мнемонических символов. Язык образуется в результате простой замены в кодах машинных операций той или иной ЭВМ двоичных кодов операций более привычными для человека буквенными или буквенно-цифровыми кодами с десятичными цифрами. Двоичные коды адресов в командах заменяются десятичными кодами. Трансляция с такого языка называется мнемоникой и сводится к простой перекодировке. Использование такого простого входного языка намного упрощает программирование и уменьшает количество ошибок. Мнемокоды являются базой для создания более совершенных систем автоматизации программирования, а также они имеют самостоятельное значение как системы программирования для малых ЭВМ, для которых нельзя создать трансляторы с языков высокого уровня вследствии ограниченных возможностей машины.


Дальнейшая автоматизация программирования на уровне машинно-ориентированных систем состоит в использовании автокодов (макроязыков). Основой автокодового языка являются макрокоманды, указывающие на выполняемую функцию или процедуру с помощью одной записи. Макрокоманды интерпретируются в машинные команды специальными программами. Структура команд автокодов определяется структурой команд и данными машинного языка, но автокод допускает в отличие от машинного применением буквенных обозначений для операций.

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

– наличие совершенных методов обнаружения ошибок на этапе трансляции;

– различных макрокоманд ввода-вывода;

– уменьшение трудовых затрат на составление программ.

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

Языки первого и второго уровней относятся к машинно-ориентированным языкам. Машинно-ориентированный язык - язык программирования, который отображает структуру данной ЭВМ или данного класса ЭВМ.

Начиная с четвертого уровня расположены машинно-независимые языки.

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

Проблемно-ориентированный язык - язык программирования, предназначенный для решения определенного класса задач. Язык по возможности использует символику и систему понятий соответствующей проблемной области. К этому типу языков относятся Лисп [Lisp], РПГ [RPG от Report Program Generator], Симула. Эти языки используются для записи задач в терминологии потребителя. Алфавит этих языков – символы и понятия тех отраслей науки и техники, для которых составляется программа. Эти языки не требуют записи алгоритма в виде связанной логической последовательности действий. Достаточно иметь входные данные, указать действия, которые должны проводиться над ними, и какие результаты нужно получить на выходе. Все остальные функции возлагаются на транслятор, который определяет, какая логическая схема нужна для решения задачи.

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


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

Выделяют три больших класса задач: научные, инженерные и экономические. Специфика каждого класса нашла свое отражение в многообразии языков программирования. Для решения задач каждого из указанных классов создавались свои языки. Например, язык Алгол предназначен для решения научных задач, Фортран - для инженерных, Кобол - экономических, Снобол - задач обработки символьных данных.

В этих языках вычислительный процесс записывается как подробная последовательность определенных процедур. Использование процедурно-ориентированных языков позволило:

–упростить написание программ;

– сократить время их настройки;

– выполнять программу, составленную для одной машины, на другой.

Параллельно со специализацией как в разрезе классов задач существуют универсальные языки, которые можно использовать для программирования задач нескольких классов. К таким языкам относятся языки ПЛ/1, Паскаль, С.

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

Декларативные языки подразделяются на логические и функциональные. Язык логического программирования – это язык программирования, основанный на принципе задания совокупности правил без явного указания последовательности их применения. Примером языка данного типа является Пролог.

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


Язык функционального программирования - декларативный язык программирования, основанный на понятии функции. Функции в языке задают зависимость, но не определяют порядок вычислений.

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

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

Объектно-ориентированный язык - язык программирования, который поддерживает объектно-ориентированное программирование. К данной группе языков принадлежат C ++, Smalltalk.

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

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

Описание необходимых типов данных, используя классы, позволяет многократно использовать написанную и отлаженную программу. Если вам нужен почти такой же объект, как разработан, но который имеет свои собственные определенные характеристики, то механизм наследования дает возможность более легкого многократного использования объекта, после небольшого корректировки. Наследование - это процесс, посредством которого один объект может приобретать (наследовать) основные свойства другого объекта и добавлять к ним черты, характерные только для него.

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