Файл: Современные языки программирования (Теоретические основы языков программирования).pdf

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

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

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

Добавлен: 28.03.2023

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

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

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

Введение

Данная работа посвящена современным языкам программирования.

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

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

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

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

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

Все это обуславливает актуальность данной работы.

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

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

  1. рассмотрение и анализ истории ЯП;
  2. описание современного состояния ЯП;
  3. рассмотрением и сравнение программ, написанных на различных ЯП;
  4. охарактеризовать тенденции в развитии ЯП.

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

Глава 1. Теоретические основы языков программирования

1.1 Способы записи алгоритмов

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


Алгоритм – это последовательность действий, которые необходимо выполнить для достижения поставленной цели или решения некоторой задачи [2]. С алгоритмами мы постоянно встречаемся в нашей обыденной жизни, порой даже не задумываясь об этом. Например, программа проведения конференции является таким алгоритмом. Также, примером алгоритма может быть правила перехода по пешеходному переходу. Сначала пешеходу необходимо посмотреть налево, чтобы убедиться, что проезжающие машины заметили его и готовы остановиться, чтобы пропустить его. Тогда можно идти до второй половины проезжей части. На второй половине также необходимо становиться и посмотреть направо, пропускают ли вас машины, едущие по данной полосе. После этого можно завершить переход. Инструкция по эксплуатации бытовой техники, например, телевизора, также содержит множество алгоритмов. Алгоритмы включения различных функций и режимов, алгоритмы действий при неисправностях.

Современное определение понятия «алгоритм» появилось в середине XX век на основании работ Тьюринга, Маркова, Винера и некоторых других.

Слово «алгоритм» происходит от имени среднеазиатского учёного Абу Абдуллаха Мухаммеда ибн Муса аль-Хорезми. Около 825 годаон написал сочинение, в котором впервые дал описание придуманной в Индии позиционной десятичной системы счисления [4].

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

В вычислительной технике наибольшее применение получили вычислительные алгоритмы. Такие алгоритмы применяются для обработки данных. Результатом выполнения таких алгоритмов является получение новых данных или выполнение определенных команд устройствами компьютера. Новые данные получаются в результате выполнения арифметических и логических операций над данными.

Можно привести пример алгоритма вычисления значения некоторой вещественной функции вещественной переменой в заданной точке. Например, пусть функция задана уравнением:

и необходимо вычислить значение данной функции в точке x=2.

Алгоритм выполнения таких вычислений может быть таким.

  1. Вычислить значение функции в точке x=2. Для этого мы должны трижды умножить число 2 на само себя. Получаем значение 8.
  2. Далее к полученному в пункте 1) значению мы должны прибавить число 3.
    8+3=11;
  3. В качестве ответа приводим полученное в предыдущем пункте значение. Записываем ответ y(3)=11.

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

  1. Ввод значения для записи в переменную x в память компьютера.
  2. Выполнение операции возведения числа x в куб (для этого число x трижды умножается на само себя) и прибавление к результату числа 3.
  3. Вывод на экран результата вычислений в пункте 2.

Этот алгоритм обладает свойством массовости (он позволяет вычислять значение функции y(x) в любой точке из множества вещественных значений). Для решения конкретной, более узкой задачи по вычислению значения данной функции в точке x=2 необходимо в пункте 1) алгоритма ввести в память компьютера число 2.

Для решения конкретной, более узкой задачи по вычислению значения данной функции в точке x=2 необходимо в пункте 1) алгоритма ввести в память компьютера число 2. Далее обсудим свойства алгоритмов.

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

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

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

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

Дискретность означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы.

Конечность – алгоритм в целом и любая его часть должны выполняться за конечное число шагов.

Рассмотрим с этих позиций алгоритм решения задачи из предыдущего раздела (алгоритм для вычислительной машины). Алгоритм обладает всеми указанными выше свойствами.

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


Алгоритм обладает свойством результативности, так как для любого действительно числа x можно получить соответствующее значение функции. Замечание: в программах для компьютера, написанных с помощью языков программирования высокого уровня, для переменных используются конкретные типы данных. Использование определенных типов данных накладывает ограничения на те значения, которые можно ввести в программу и те значения, которые можно получить в качестве результата работа программы. Стоит отметить, что в современных языках программирования можно использовать значения из очень широкого интервала, достаточного для решения большинства вычислительных задач.

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

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

Любая часть приведенного алгоритма может быть выполнена за конечное число шагов, так как за конечное число шагов может быть выполнены соответствующие команды [2].

Алгоритмы могут быть записаны самыми разными способами. Мы будем рассматривать способы записи алгоритмов для вычислительных машин, то есть вычислительных алгоритмов.

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

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

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


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

Например, конструкции псевдокода, используемые в статьях, как минимум могут зависеть от того языка (естественного) на котором они написаны. Обычно, в псевдокоде, для стандартных команд (начало алгоритма, конец алгоритма, условные операторы) используют слова естественного языка, на котором написана статья вообще. Хотя это является совсем необязательным. Одним из частых применений псевдокода является разработка алгоритма программы до кодирования (записи программы на конкретном языке программирования)[2].

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

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