Файл: Сравнительный анализ операторов для различных языков программирования.pdf
Добавлен: 28.03.2023
Просмотров: 76
Скачиваний: 2
ВВЕДЕНИЕ
Сегодня программирование является одной из наиболее бурно развивающихся отраслей производства программных продуктов. Еще в конце прошлого столетия общение с компьютерами реализовывалось исключительно с помощью программирования, именно поэтому программирование стали изучать фактически во всех учебных заведениях. Шло время, информационные технологии развивались, общение с компьютерами стало происходить при помощи готовых компьютерных программ. Современные прикладные пакеты программ содержат также дополнительные средства, при помощи которых пользователи могут расширять функциональные возможности имеющегося программного обеспечения. Так, например, практически в любом пакете MicrosoftOfficeимеется среда программирования языка VBA (VisualBasicforApplications). Таким образом, под программированием понимается принципиально новый подход, который является обязательным пунктом в процессе подготовки специалистов информационных технологий [7].
В настоящее время профессиональному программисту для решения поставленных задач приходится оперировать сразу несколькими языками программирования. Поэтому выпускники высших учебных заведений должны владеть программированием на разных языках и в различных инструментальных средах [2].
Современные языки программирования принято относить к языкам программирования высокого уровня. Данный уровень говорит о том, что все эти языки максимально приближены к естественному человеческому языку. Этот факт позволяет облегчить процесс написания программ и предоставляет разработчикам целое множество возможностей.
Известно, что в основе всех языков программирования лежат простейшие конструкции – операторы, при помощи которых и создаются программы. Не смотря на многообразие языков программирования, основные алгоритмические конструкции присутствуют в каждом из них. К числу таких конструкций относятся:
- операторы присваивания;
- операторы ввода и вывода информации;
- операторы перехода;
- операторы выбора;
- операторы циклов.
Пользуясь этими конструкциями, программист может разработать программу любого уровня сложности.
Актуальность выбранной темы очевидна – ежедневно каждый из нас сталкивается с использованием компьютера и различными прикладными программами. Для того чтобы уметь самостоятельно разрабатывать программное обеспечение, требуется знать хотя бы один язык программирования. Однако большинство языков имеют схожий синтаксис в написании базовых конструкций. Именно поэтому важно изучить основные конструкции языков программирования высокого уровня, при помощи которых можно строить программы любой сложности.
Объектом исследования в данной работе являются языки программирования высокого уровня.
Предмет исследования – основные операторы языков программирования высокого уровня.
Цель работы – рассмотреть базовые конструкции языков программирования. Для достижения данной цели предстоит решить ряд задач:
- изучить историю развития языков программирования;
- привести классификацию языков программирования;
- дать определение основным понятиям языков программирования;
- описать основные операторы, использующиеся в языках программирования высокого уровня;
- привести примеры использования операторов.
При написании работы в качестве опорных источников были использованы следующие: М.А. Ревенко – «Практикум по программированию на языке TurboPascal» и Л.И. Долинер – «Основы программирования в среде PascalABC.NET».
язык программирование высокий оператор
1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
1.1 История развития
Ранее говорилось, что основным инструментом общения человека с компьютером является программа. В общем случае под программой понимается некая систематизированная совокупность команд, входящих в список доступных для исполнения на конкретном устройстве. Набор таких команд называется системой команд. Система команд первых компьютеров была очень примитивна, она состояла из набора элементарных арифметических операций и операций пересылки данных.
Первым программистом в истории человечества принято называть Аду Лавлейс, которая составила предписания для аналитической машины Чарльза Бэббиджа. Стоит отметить, что данное вычислительное устройство существовало лишь в проекте. В его основе лежали не электрические сигналы, а механические узлы. Кроме того, машина Бэббиджа должна была быть оснащена паровым двигателем (в 1830-е годы это было вершиной техники). Для ввода программы предполагалось использование перфокарт. Однако данная машина так и не была спроектирована.
Первые реально спроектированные машины программировались при помощи перемычек и тумблеров. Поэтому появилась идея использовать мнемонические обозначения команд, что существенно упростило бы процесс программирования. Так появились языки ассемблера, которые позволили обозначать ячейки памяти компьютера не их адресами, а символическими именами, которые в дальнейшем могли использоваться в программах. Термин ассемблер происходит от английского слова assembler, обозначающего сборку частей в единое целое. Сам процесс сборки называется ассемблированием.
Переход от машинных кодов к ассемблеру позволил увеличить производительность труда программистов и сократить время написания программ. Кроме того, языки ассемблеров позволили увеличить качество и надежность программ за счет меньшего количества возможностей внесения ошибок в программу. Однако было и несколько недостатков. Так, например, программа, написанная на ассемблере, не является понятной компьютеру, и требует переводчика. Также важно отметить, что программы на ассемблере не являлись переносимыми. Это говорит о том, что при смене вычислительной машины программы становились бесполезными, и их приходилось переписывать заново [17].
Следующим этапом стало появление языка Фортран, основным предназначением которого была реализация математических вычислений. Он отличался хорошим качеством получаемых программ, а также развитыми средствами ввода-вывода информации. Кроме того, Фортран содержал собственную библиотеку стандартных программ. Данный язык разрабатывался в 1954-1956 годы крупной группой специалистов компании IBM под руководством Дж. В. Бэкуса. В июне 1956 г. была выпущена вторая версия данного языка – Фортран II, которая отличалась наличием подпрограмм, а также операторов связи между программными единицами [11].
В силу того, что Фортран и языки ассемблера требовали специальной подготовки, появилось новое направление языков, предназначенных непосредственно для обучения программированию. Примерами таких языков являются Pascalи Basic. Важно отметить, что эти языки используются в учебных учреждениях и в настоящее время.
Параллельно с развитием языков программирования велись разработки операционных систем, что послужило появлению системы UNIX. Данная система была написана на языке ассемблера, что служило барьером в ее изучении. Поэтому для упрощения системного программирования Д. Ритчи и Б. Керниган разработали язык С, на котором данная система была переписана. Важно отметить, что UNIX-системы используются и сегодня.
Дальнейшее развитие языков программирования связано с появлением объектно-ориентированной технологии, которая должна была упростить написание крупных программ промышленных масштабов. Примером одного из первых языков объектно-ориентированного программирования является С++, разработанный Б. Страуструпом.
Последнее десятилетие XX века ознаменовалось развитием глобальной сети Internet, что также послужило толчком к созданию новых технологий. В этот период максимальную популярность обрел язык Java, который позволяет в кратчайшие сроки писать крупные приложения без опасений навредить системе. Данный язык характеризуется переносимостью своих программ [18].
1.2 Классификация
Существует несколько признаков классификации языков программирования, рассмотрим лишь основные из них.
По степени абстракции от аппаратуры принято выделять следующие виды языков:
- низкого уровня:
- машинно-зависимые – представляют собой команды, записанные непосредственно на языке конкретного процессора. Эти команды состоят из нулей и единиц. Фактически, команды таких языков представляют собой свод правил кодирования инструкций для определенного типа ЭВМ при помощи чисел;
- машинно-ориентированные – команды, записанные на языке близком к процессору. Основное отличие от машинно-зависимых языков заключается в том, что машинные коды в таких языках заменены буквенными обозначениями;
- высокого уровня – машинно-независимые языки, имитирующие естественный человеческий язык. Данные языки используют некоторые слова разговорного языка, а также общепринятые математические символы. Языки высокого уровня ближе к человеку, а не к компьютеру. Они позволяют записывать команды в текстовом режиме, а также предоставляют возможность определять сложные структуры данных;
- сверхвысокого уровня – еще один вид машинно-независимых языков программирования. Команды таких языков исполняются на абстрактных машинах, при этом доступ к памяти полностью скрыт.
Еще одним признаком классификации является парадигма программирования. С этой точки зрения все языки программирования делятся на:
- процедурные – проблемно-ориентированные языки, облегчающие исполнение процедур. Они бывают нескольких видов:
- структурные – один оператор позволяет записывать целые алгоритмические структуры – циклы, ветвления и т.п.;
- операционные – используют несколько операторов для записи одной алгоритмической конструкции. Неструктурное программирование позволяет использовать в явном виде оператор безусловного перехода;
- параллельные – языки реального времени, поддерживающие параллельные вычисления. Программа, написанная на одном из таких языков, представляет собой совокупность описаний процессов, которые могут исполняться одновременно;
- непроцедурные – описывают саму задачу. Делятся на:
- функциональные – программы на таких языках обычно вычисляют значение некоторой функции, задающейся в виде композиции более простых функций. Одним из ключевых элементов данного языка является наличие рекурсии;
- логические – языки, базирующиеся на классической логике. Основным их применением является логический вывод, например, экспертные системы. С точки зрения логического подхода программа представляет собой совокупность логических высказываний и правил[3];
- объектно-ориентированные – языки, в основе которых лежит понятие объектов и их свойств, а также отношений между этими объектами [4].
1.3 Основные понятия
В основе любой компьютерной программы лежит алгоритм. Алгоритмом принято называть систему четких однозначных указаний, определяющих последовательной действий над некоторыми объектами, за конечно количество итераций приводящих к желаемому результату [6]. Алгоритмы типичным образом решают не только частные задачи, но и большие классы однотипных задач. Принято выделять пять основных свойств алгоритмов:
- конечность – после определенного числа шагов алгоритм должен завершаться;
- определенность – каждый шаг алгоритма должен быть четко и однозначно определен;
- ввод – алгоритм может иметь некоторое количество входных данных, определяемых до начала работы;
- вывод – алгоритм может иметь некоторое количество выходных данных, получаемых в результате исполнения;
- эффективность – все операции, подлежащие реализации в рамках алгоритма, должны быть достаточно простыми, чтобы их в принципе можно было точно выполнить за конечный отрезок времени [9].
Алгоритм не может существовать сам по себе - он предназначен определенному исполнителю действий. Например, алгоритм вычисления производной предназначен тем, кто хотя бы частично знаком с основами высшей математики и математического анализа.
Исполнителем алгоритма называется тот субъект или объект, для управления которым разрабатывается алгоритм. Другими словами, исполнителем алгоритма является некоторая реальная или абстрактная система (биологическая, техническая или биотехническая), которая способна выполнить действия, предписываемые алгоритмом.
Характерные черты исполнителя алгоритма (см. рисунок 1):
Рисунок 1 – Характерные черты исполнителя алгоритма
- среда – «место обитания» исполнителя;
- система команд – конечный набор команд, которые исполнитель может понять (умеет выполнять). Каждая команда обладает своими условиями применимости (условиями среды) и результатами;
- элементарные действия – действия, совершаемые исполнителем после вызова команды;
- отказы – ситуация, возникающая в том случае, когда вызывается команда в недопустимых условиях среды.
Важно отметить, что исполнитель не вникает в смысл выполняемых им действий – его действия формальны, отвлечены от содержания поставленной цели и строго соответствуют алгоритму [8].
В настоящее время существует несколько форм записи алгоритмов (см. рисунок 2):