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

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

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

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

Добавлен: 31.03.2023

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

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

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

Введение

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

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

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

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

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

  1. Ознакомление с историей развития языков программирования.
  2. Рассмотрение классификации языков программирования.
  3. Обзор этапов разработки программ.
  4. Определение критериев выбора среды программирования и языка для разработки программы.

Для раскрытия темы, достижения поставленных целей и задач были использованы учебные пособия, научная литература, в том числе публикации в журналах, входящих в базы цитирования Web of Science и Scopus.

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

1.1. История развития языков программирования

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

Язык программирования – формализованный язык для записи алгоритмов. Оформленные с помощью языков программирования алгоритмы называются программами для компьютера.

Язык программирования образуют три его составляющие: алфавит, синтаксис и семантика. [6]

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

Синтаксис – это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.

Семантика определяет смысловое значение предложений языка. [3]


На сегодняшний день в мире существует более сотни языков программирования. У каждого языка своя область применения.

Языки программирования делятся на уровни – чем меньше детализация алгоритма, тем выше уровень языка.

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

- машинные;

- машинно-ориентированные (ассемблеры);

- машинно-независимые (языки высокого уровня). [7]

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

Языки программирования можно разделить на процедурные и непроцедурные.

В начале 50-ых годов 20 века появился процедурный язык низкого уровня (машинно-ориентированный) – язык Ассемблера. Это язык, который представляет каждую команду машинного кода в виде условных символьных обозначений, мнемоник. [6]

В 50-е годы был создан язык Фортран (FORTRAN от FORmula TRANslating system – система трансляции формул). Этот язык программирования относится к процедурным языкам высокого уровня. Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественнонаучных и математичес­ких расчетов. В усовершенствованном виде этот язык сохранился до настоящего времени. Среди современных языков высокого уровня он является одним из наиболее используемых при про­ведении научных исследований. Относится к компилируемым языкам. Компилируемыми принято считать такие языки как C, C++, FORTRAN, Pascal, Ada. Это означает, что программы, написанные на этих языках, транслируются в машинный код данного компьютера перед началом выполнения. [5]

В 1957 году появился язык Алгол (ALGOL от ALGOrithmic Language – алгоритмический язык). Этот язык так же, как и Фортран, предназначался для решения науч­но-технических задач. Данный язык имеет логическую структуру, благодаря которой стал стандартным средством записи алгоритмов в научной литературе и применялся как средство обучения основам программирования. Algol вызвал интерес, но не привлек достаточного количества потребителей, т.к. не имел некоторых важных функций – обработки текстов, форматирования ввода/вывода.

Лисп (LISP от LISt Processing – обработка списков), созданный в 1960 году Джоном Маккарти. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации. [7]

В середине 60-х годов разработан в качестве учебного языка язык Бейсик (Beginner's All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих, или, сокращенно, BASIC). Он был разработан профессорами Дартмутского колледжа (США) Т. Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, благодаря простоте, стал очень популярным. Особенно его популярность повысилась с появлением персональных компьютеров, где он стал одним из основных языков программирования. [6]


PL/I (Programming Language One) создан в 1967 году. По своим возможностям PL/I значительно мощнее многих других языков (Си, Паскаля).

В конце 60-х – начале 70-х гг. появился язык Форт (FORTH – четвертый). Этот язык стал применяться в задачах управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Аризонской обсерватории.

Появившийся в 1971 году язык Pascal был назван так в честь великого французского математика XVII века, изобретателя первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом в области информатики Никлаусом Виртом. Язык Pascal первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программирования в школах и вузах. [7]

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

На основе языка Паскаль в конце 70-х гг. был создан язык АДА, названный в честь одаренного математика Ады Лавлейс.

АДА является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков. [7]

В настоящее время популярным среди программистов является язык C. Данный язык был создан в лаборатории Bell в 1972 году и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (UNIX).

C++ – это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Язык C++ обладает рядом свойств, которые делают его более совершенным языком по сравнению с C, однако наиболее важным является то, что он обеспечивает возможность объективно-ориентированного программирования. [12]


Java – этот язык был создан компанией Sun в начале 90-х годов на основе C++. Он призван упростить разработку приложений на основе C++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). [17]

Язык программирования Python был создан голландским программистом Гвидо ван Россумом в 1991 году, изначально он задумывался как потомок языка ABC. Гвидо ван Россум дал имя языку от названия телесериала. После того, как Россум разработал язык, он выложил его в Интернет, где уже целое сообщество программистов присоединилось к его улучшению. Сейчас часто выходят новые версии этого высокоуровневого многоцелевого языка, которые легко интегрируются с компонентами, написанными на других языках программирования. [5]

C# - это язык программирования, сочетающий в себе концепции: контекстно-ориентированные и объектно-ориентированные, разработанный под руководством Андерса Хейлсберга в 2001 году инженерами компании Microsoft. На данный момент наличие компиляторов кодов С# позволяет запускать приложения без установки дополнительного программного обеспечения на платформе .NET. Разработчики C# учли все проблемные алгоритмы предшествующих языков, что позволило сделать его более стабильным. [19]

1.2 Классификация языков программирования

Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные языки позволяют использовать все возможности и особенности машинно-зависимых языков [16]:

- высокое качество создаваемых программ;

- возможность использования конкретных аппаратных ресурсов;

- предсказуемость объектного кода и заказов памяти;

- для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

- трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

- низкая скорость программирования;

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

У каждого компьютера свой определенный машинный язык, который предписывает компьютеру выполнение операций над операндами, поэтому машинный язык является командным. Но некоторые семейства электронных вычислительных машин (такие как ЕС ЭВМ, IBM/370/ и др.) имеют единый машинный язык для машин разной мощности. Информация о нахождении операндов и типе выполняемой операции сообщается в командах любого из них. [15]


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

Языки символического кодирования являются командными языками, как и машинные. Но стоит заметить, что коды операций и адреса в машинных командах заменены на символы-идентификаторы, и не представляют собой последовательность двоичных или восьмеричных цифр. Такая форма написание помогает запоминанию смысловых содержаний операций и минимизирует число ошибок при написании программ. [8, 1]

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

Существуют языки-автокоды, которые включают в себя все возможности языков символического кодирования. Это достигается благодаря возможности расширенного введения команд.

В некоторых программах можно обнаружить некоторые довольно часто использующиеся командные последовательности, соответствующие определенным процедурам преобразования информации. Для эффективной реализации таких процедур необходимо оформлять их в виде специальных макрокоманд, включая их в язык программирования. Можно перевести макрокоманды в машинные команды. Существует два способа: расстановка и генерирование. Макрокоманда позволяет обеспечить передачу фактических параметров, превращая её в реальную машинную программу. Фактические параметры в процессе трансляции вставляются в остов – серию команд, реализующих требуемую функцию, которая обозначена макрокомандой. [5, 18]

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

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

Развитым автокодам присвоили название Ассемблера. На языках типа Ассемблера составляются сервисные программы и пр. [12]