Файл: Основы алгоритмизации и программирования. Классификация языков программирования высокого уровня..pdf
Добавлен: 25.04.2023
Просмотров: 290
Скачиваний: 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]
-
- ПРОЦЕДУРНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Последовательность команд, определяющих алгоритм решения задачи, это и есть процедурные языки программирования. Основная идея, использование памяти для хранения, командой – присвоения, с помощью которой, определяется и меняется память компьютера. Алгоритм программы производит, преобразование содержимого памяти, изменяя его от исходного состояния.
Процедурные языки программирования состоят из операционных и структурных языков.
Виды операционных языков (привязанные к конкретной архитектуре ЭВМ)[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]
- Объектно-ориентированные языки программирования (ооп)
Объектно-ориентированное программирование (ООП) — это метод программирования, при использовании которого главными элементами программ являются объекты. Объединение данных и свойственных им процедур обработки в одном объекте, называется инкапсуляцией и является одним из важнейших принципов ООП[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]
- Декларативные языки программирования
Декларативные языки программирования – это функциональные и логические языки программирования.
Функциональный язык программирования – это способ составления программ, в которых единственным действием является вызов функции. Программа, написанная на этом языке, представляет собой последовательность описания функций и выражений. Выражение вычисляется сведением от сложного, к простому. Все выражения записываются в виде списков[25].