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

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

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

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

Добавлен: 04.04.2023

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

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

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

Введение

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

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

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

Задачи курсовой работы:

  • Ознакомиться с понятием языки программирования.
  • Рассмотреть классификацию языков программирования.
  • Описать историю развития языков программирования.
  • Полный обзор языков программирования.

Глава 1: Теоретическая часть

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

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

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

Языки программирования также, как и естественные языки имеют алфавит, синтаксис и семантику.

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

Синтаксис языка программирования [3]— это набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой или её фрагментом. 


Семантика в программировании [4]— это система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений алгоритмического языка.

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

Классификация языков программирования[5]:

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

  • Компилируемые языки. К этой группе относят язык программирования, исходный код которых преобразуется специальной программой-компилятором в объектные модули, которые затем собираются при помощи программы сборки в единый загружаемый модуль. Это представляет собой выполняемую программу. Компилируемыми являются языки C, C++, Object Pascal.
  • Интерпретируемые языки.[6] К этой группе относят язык программирования, исходный код которых считывается и выполняется специальной программой-интерпретатором инструкция за инструкцией. Интерпретируемыми являются большинство версий языков Basic и Forth.
  • Языки, компилируемые на основе псевдокода. В этих языках исходный код программы компилируется и выполняется как последовательность вызовов подпрограмм из существующих библиотек. Таковыми являются некоторые версии Basic.
  • Совмещенные языки[7]. В совмещенных языках исходный код проходит две стадии обработки. На первой стадии происходит компиляция исходного кода до уровня промежуточного языка. На второй стадии происходит интерпретация промежуточного кода.

По факту созданию процесса языки программирования делятся на создающие процесс и сценарные.

  • Языки, создающие процесс. После запуска программы создается отдельный процесс выполнения этой программы. Так происходит в языках C, C++, Object Pascal.
  • Сценарные языки. Сценарий, или скрипт — это программа, которую выполняет другая программа. В качестве примеров можно привести скрипты оболочки в UNIX, программы на языках PHP, Python, Ruby.

По степени автономности[8] языки программирования делятся на автономные и встроенные.

  • Автономные языки программирования (C, C++, Java) являются автономным инструментом для создания программ.
  • Встроенные языки программирования[9] являются частью какой-то системы и позволяют создавать программы, предназначенные для работы только в этой системе. Пример наиболее известного встроенного языка – VBA (Visual Basic for Application), который используется только внутри приложений Microsoft Office для автоматизации и расширения их функциональности. Встроенными являются также язык программирования системы 1C и язык JavaScript, который выполняется только внутри интернет-приложений.

По уровню отдаленности[10] языка программирования от естественных языков их делят на низкоуровневые и высокоуровневые.

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

По парадигмам[11] языки программирования делятся на императивные (процедурные), функциональные, логические и объектно-ориентированные.

  • Императивные (процедурные)[12] языки описывают решение задачи как последовательность процедур. К императивным относится большинство современных языков программирования.
  • Функциональные языки описывают требуемый результат в виде набора вложенных друг в друга функций (Haskell).
  • Логические языки описывают требуемый результат в виде суммы логических операций (Prolog).
  • Объектно-ориентированные языки способны определять абстрактные типы данных и реализовывать основные парадигмы объектно-ориентированного программирования (ООП): инкапсуляцию, наследование и полиморфизм (C++, Java, Object Pascal, и др.).

1.2 Компиляторы и интерпретаторы

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


Интерпретатор[14] функционирует следующим образом: берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет. После успешного выполнения текущей команды интерпретатор переходит к анализу и исполнению следующей. Если один и тот же оператор в программе выполняется несколько раз, интерпретатор всякий раз воспринимает его так, будто встретил впервые. Поэтому программы, в которых требуется произвести большой объем повторяющихся вычислений, будут работать медленно. Для выполнения программы на другом компьютере также необходимо установить интерпретатор, так как без него программа представляет собой набор слов и работать не может.

Компиляторы[15]полностью обрабатывают весь текст программы (его называют исходным кодом или source code). Они осуществляют поиск синтаксических ошибок, выполняют семантический анализ и только затем, если текст программы в точности соответствует правилам языка, его автоматически переводят на машинный язык. Текст программы преобразуется в готовый к исполнению ЕХЕ-файл, его можно сохранить в памяти компьютера или на диске. Этот файл имеет самостоятельное значение и может работать под управлением операционной системы. Его можно перенести на другие компьютеры с процессором, поддерживающим соответствующий машинный код.

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

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


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

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

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

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

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

2.1 Машинно-зависимые языки

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

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

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