Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (История развития языков программирования).pdf

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

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

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

Добавлен: 31.03.2023

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

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

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

Введение

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


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

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

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

Цели исследования:

  1. Просмотреть общее сведения и уровни языков программирования.
  2. Просмотреть историю развития языков программирования.
  3. Сделать обзор современных языков программирования.

Задачи исследования:

  1. Ознакомления с языками программирования.
  2. Рассмотрение истории развития языков программирования.
  3. Обзор современных языков программирования.

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

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

  1. Языки программирования

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

Языки программирования являются искусственными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.

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


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

наглядность - использование в языке по возможности уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;

единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;

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

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

однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач [2].

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

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

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

  • машинные;
  • машинно-оpиентиpованные (ассемблеры);
  • машинно-независимые (языки высокого уровня).

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

Различные виды процессоров обладают различными наборами команд.

В случае если язык программирования ориентирован на определенный вид процессора и предусматривает его спецификации, в таком случае он называется языком программирования низкого уровня. В этом случае “низкий уровень” далеко не значит “плохой”. Имеется в виду, то что операторы языка близки к машинному коду и нацелены на конкретные команды процессора. [2]

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

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

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

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


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

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

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

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


Таким образом, можно сформулировать основные преимущества языков высокого уровня перед машинными:

алфавит языка высокого уровня значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;

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

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

требуемые операции задаются с помощью общепринятых математических обозначений;

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

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

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

Основные компоненты алгоритмического языка:

  • алфавит,
  • синтаксис,
  • семантика.

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

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

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

Языки высокого уровня делятся на:

  • процедурные;
  • логические;
  • объектно-ориентированные.

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

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


Разнообразие классов задач привело к тому, то что в настоящий период создано несколько сотен алгоритмических языков. Разумеется, обширное продвижение и интернациональное принятие приобрели лишь 10-15 языков. Из числа в первую очередь необходимо выделить: Fortran и Algol - языки, предназначенные для решения научно-технических задач, Cobol – с целью решения финансовых задач, Basic – с целью решения маленьких вычислительных задач в интерактивном режиме. В принципе любой из этих языков возможно применять с целью решения задач не собственного класса. Однако, как правило, их использование оказывается не удобным.

В то же время в половине ШЕСТЬДЕСЯТ-х лет стали создавать алгоритмические языки обширной ориентации – многоцелевые языки. Как правило они создавались согласно принципу объединения потенциалов ограниченно-направленных языков. Из числа их более популярны PL/1, Pascal, C, C+ , Modula, Ada. Но, равно как каждое универсальное средство, подобные обширно-направленные языки в многочисленных определенных вариантах становятся меньше результативными [2].

Логические языки- (Prolog, Lisp, Mercury, KLO и др.) нацелены никак не на запись алгоритма решения задачи, а в регулярное и формализованное представление проблемы с тем, для того чтобы разрешение надлежало из наложенного описания. В данных языках указывается то что дано и то что необходимо получить. При этом отбор постановления проблемы возлагается напрямую в ЭВМ.

Объектно-направленные языки (Object Pascal, C++, Java, Objective Caml. и др.). Управляющая концепция объектно-направленных языков состоит в устремлении объединить данные с обрабатывающими эти сведения упражнениями в общее единое - предмет.

Объектно-ориентированный подход использует следующие базовые понятия:

  • объект;
  • свойство объекта;
  • метод обработки;
  • событие;
  • класс объектов.

Объект — совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).

Свойство — это характеристика объекта и его параметров. Все объекты наделены определенными свойствами, совокупность которых выделяют (определяют) объект.

Метод — это набор действий над объектом или его свойствами.

Событие — это характеристика изменения состояния объекта.

Класс — это совокупность объектов, характеризующихся общностью применяемых к ним методов обработки или свойств.

Существуют различные объектно-ориентированные технологии, которые обеспечивают выполнение важнейших принципов объектного подхода: