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

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

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

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

Добавлен: 25.04.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

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

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

ГЛАВА 1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Одной из самых революционных идей по созданию автоматических цифровых вычислительных машин, была высказанная в 20-х годах XIX века Charles Babbage (Чарльз Бэббидж) английского математика, часто называют «отцом компьютера». Мысль заключалась в том, чтобы предварительные записи порядка действия машины, для последующей автоматической записи вычислений, были осуществлены в программе. Использованная запись программы была сделана на перфокартах, придуманная для управления такими станками Joseph Marie Jacquard (Жозе́ф Мари́ Жакка́р – французский изобретатель)[1].

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

Рисунок 1. Станок Жаккарда (вид со стороны перфокарт) и образцы жаккардовой ткани [3]


Augusta Ada King Byron, Countess of Lovelace (Авгу́ста А́да Кинг (урождённая Ба́йрон), графиня Ла́влейс – британский математик) стала известна, прежде всего, созданием описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем, составила первую в мире программу (для этой машины). Она теоретически разработала некоторые приемы управления последовательностью вычислений, которые используются в программировании и сейчас. Ею же была описана и одна из важнейших конструкций практически любого современного языка программирования – цикл и рабочая ячейка[4].

Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов, предложенной John William Mauchly (Джон Уильям Мокли). Система кодирования, предложенная им, вдохновила одну из его сотрудниц Грейс Мюррей Хоппер. При работе на компьютере «Марк-1» ей и ее группе пришлось столкнуться со многими проблемами и все, что ими придумано, было впервые. В частности они придумали подпрограммы. И еще одно фундаментальное понятие техники программирования впервые ввели Хоппер и ее группа - «отладка».

В конце 40-х годов Д.У. Мокли создал систему под названием «Short Code», которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двух литерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Джон Уильям Мокли, считается одним из первых примитивных интерпретаторов.[5]

Уже в 1951 г. Хоппер создала, первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. «Подпрограммы находятся в библиотеке (компьютера), а когда вы подбираете материал из библиотеки - это называется компиляцией» - так она объясняла происхождение введенного ею термина.[6]

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

Языки программирования состоят:

  • Машинно-ориентированные языки (языки программирования низкого уровня): автокоды, ассемблеры – с помощью данных языков можно осуществлять управление вычислительным процессом напрямую, при помощи машинных команд;
  • Языки программирования высокого уровня, см. рисунок 2.

Рисунок 2. Схема языков программирования высокого уровня[7]

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

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

Транслятор (англ. Translator – переводчик) – это программа-переводчик. С помощью транслятора можно преобразовать программу из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы применяются в виде компиляторов или интерпретаторов.[10]

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

Рисунок 3. Схема работы интерпретатора[11]

Компилятор (англ. Compiler – собиратель, составитель) читает всю программу целиком, затем осуществляет ее перевод, создавая законченный вариант программы на машинном языке, который затем выполняется. Откомпилированные программы работают быстрее.[12]

Рисунок 4. Схема работы компилятора[13]

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

  • Первое – машинно-ориентированные;
  • Второе – автокоды;
  • Третье – Basic и Pascal;
  • Четвертое поколение включает усовершенствованные языки для работы с базами данных;
  • Пятое поколения – это наиболее усовершенствованные, визуальные, объектно-ориентированные, такие как: Пролог, Visual и т д.

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

    1. ПРОЦЕДУРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

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

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

Виды операционных языков (привязанные к конкретной архитектуре ЭВМ)[15]:

  • Фортран (начало 50-х г. XX века) – первый компилируемый язык для программирования научно-технических задач;
  • Алгол (середина 60 г. XX века) – многоцелевой расширенный язык, в котором впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;
  • BASIC (середина 60-х г. XX века) – характеризуется простотой освоения и наличием универсальных средств для решения научных, технических экономических и игровых задач.
  • Кобол (конец 60-х г. XX века) – для решения задач обработки больших объемов данных, хранящихся на различных носителях данных;

Виды структурных языков (не привязанные к конкретной архитектуре ЭВМ)[16]:

  • PL-1 (63-66гг. XX века) - хорошо подходит для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения.
  • PASCAL (68-71гг. XX века) - популярный для ПК, в основу которого положен подход от общей задачи к частным (более простым и меньшим по объему).[17]
  • СИ (начало 70-х г. XX века) - первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Особенность языка - это то. что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования.[18]
  • АДА (79 г. XX века) - назван в честь первой программистки Ады Лавлейс, его отличает модульность конструкций.
  • Модула (1980 г. XX века) - для профессиональных системных программистов.[19]
    1. Объектно-ориентированные языки программирования (ооп)

Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты. Объединение данных и свойственных им процедур обработки в одном объекте, называется инкапсуляцией и является одним из важнейших принципов ООП[20].

Объектные языки

  • C++,
  • Java.

Визуальные языки (середина 90-х г.) - интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов[21]:

  • Visual Basic,
  • Delphi,
  • C++ Builder,
  • Visual C++,
  • Object PAL,
  • dBase.

Язык VBA (Visual Basic for Application) - язык приложений Microsoft Office (Excel, Word, Power Point и др), который соблюдает основной синтаксис языка и правила программирования языков Basic-диалектов, что позволяет создавать макросы для автоматизации выполнения некоторых операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.[22]

Языки программирования дли компьютерных сетей, являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы - в исходных текстах. Такие языки называются скрипт — языками.[23]

  • Perl (1987 г.) язык обладает функциями расшифровки для практического извлечения данных и составления отчетов, обрабатывает объемные тексты, с помощью него можно создать скрипт, который открывает один или несколько файлов, обрабатывает информацию и записывает результаты;
  • РНР (1995-1997гг.) обладает средствами доступа к базам данных и используется создателями динамических сайтов во всем мире;
  • Тс1/Тк (конец 80-х г.) состоит из перечня команд, предназначенных для работы с абстрактными не типизированными объектами и позволяет создавать программы с графическим интерфейсом;
  • VRML (1994 г.) создан для организации виртуальных трехмерных интерфейсов в Интернете.
  • XML - с 1996 г. идет работа над созданием универсального языка структуры документа.[24]
  1. Декларативные языки программирования

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

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