Файл: Современные языки программирования ( Языки программирования).pdf
Добавлен: 24.04.2023
Просмотров: 794
Скачиваний: 3
ВВЕДЕНИЕ
На современном этапе развития компьютерных технологий невозможно представить какого–либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования. Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Объектом исследования послужили языки программирования и история развития языков программирования. Целью курсовой работы является изучение классификации языков программирования и их развития.
Цели исследования:
- Просмотреть общее сведения и уровни языков программирования.
- Просмотреть историю развития языков программирования.
- Сделать обзор современных языков программирования.
- Задачи исследования:
- Ознакомления с языками программирования.
- Рассмотрение истории развития языков программирования.
- Обзор современных языков программирования.
- В первой главе рассматриваются общие сведения о языках программирования, основные понятия и история развития.
- Во второй главе рассматривается обзор современных языков программирования.
ГЛАВА 1. Языки программирования.
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.
Со времени создания первых программируемых машин человечество придумало более восьми тысяч языков программирования (включая эзотерические, визуальные и игрушечные). Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования.
Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами, и т. п. Язык программирования отличается от естественных языков тем, что предназначен для управления ЭВМ, в то время как естественные языки используются, прежде всего, для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Как правило, язык программирования определяется не только через спецификации стандарта языка, формально определяющие его синтаксис и семантику, но и через воплощения (реализации) стандарта — программные средства, обеспечивающих трансляцию или интерпретацию программ на этом языке; такие программные средства различаются по производителю, марке и варианту (версии), времени выпуска, полноте воплощения стандарта, дополнительным возможностям; могут иметь определённые ошибки или особенности воплощения, влияющие на практику использования языка или даже на его стандарт.
1.1 История развития языков программирования.
Начало развития.
Первые программы заключались в установке ключевых переключателей панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы.
С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, управлять ячейками памяти, полностью используя возможности машины.
Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться.
Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т.п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать.
«Слова» на машинном языке называются инструкции, каждая из которых представляет собой одно элементарное действие для центрального процессора, такое, например, как считывание информации из ячейки памяти.
Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор «А» полностью понимает язык Процессора «Б», то говорится, что Процессор «А» совместим с Процессором «Б». Процессор «Б» будет называться несовместимым с Процессором «А», если «А» имеет команды, нераспознаваемые Процессором «Б».
Язык ассемблера
В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки – ассемблеры. Люди используют мнемонические команды взамен машинных команд.
Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.
Например, для процессора Zilog Z80 машинная команда «00000101» предписывает процессору уменьшить на единицу свой регистр «B». На языке ассемблера это же будет записано как «DEC B».
Структурное программирование.
Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня – Фортран (англ. FORTRAN – FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования, таких как Алгол, Паскаль, Си.
Структурное программирование предпочитает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных.
Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.
Также создавались функциональные (аппликативные) языки (Lisp, 1958) и логические языки (Prolog, 1972).
Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определённой длины. Для того, чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.
ООП.
В итоге в конце 1970-х были разработаны принципы объектно-ориентрованного программирования. ООП сочетвает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.
Примерном объектно-ориентированных языков являются: Object Pascal, C++.
1.2 Основные понятия и классификация.
- Классификация языков программирования
Языки программирования – это формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя.
Языки программирования делятся на два вида: языки низкого уровня и языки высокого уровня. К первым относятся «Машинно-ориентированные» языки (машинные коды, Ассемблер). Ко вторым – «Алгоритмические» языки. Каждый язык программирования предназначен для решения определенного класса задач.
- Системы программирования
Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и их эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.
Система программирования включает:
- Текстовый редактор (текст программы, написанный на конкретном алгоритмическом языке)
- Программа-отладчик (отладка исходного текста программы, поиск и устранение ошибок)
- Транслятор – программа-переводчик с конкретного алгоритмического языка на машинно-ориентированный (программа на машинно-ориентированном языке)
- Компоновщик – редактор связей (объединяют оттранслированные модули в единые загрузочные, готовые к выполнению)
- Синтаксис и семантика.
Каждый язык программирования обладает своими лексическими, синтаксическими и семантическими правилами, которые необходимо соблюдать при составлении компьютерной программы.
Синтаксис – описывает структуру программ как наборов символов.
Семантика – определяет смысловое значение предложений алгоритмического языка.
- Классы языков программирования.
Языки программирования делятся на «Императивные» и «Декларативные».
Императивные языки программирования – Бейсик, Паскаль, Си и прочие (включая ООП).
Императивное программирование наиболее популярное. Характеризуется последовательным, пошаговым изменением состояния вычислителя. При этом управление изменениями полностью определено и полностью контролируемо.
Одна из характерных черт императивного программирования – наличие переменных с операцией «разрушительного присвоения». То есть, была переменная «А», было у нее значение «Х». Алгоритм предписывает на очередном шаге присвоить переменной «А» значение «Y». То значение, которые было у «А», будет «навсегда забыто».
Декларативные языки программирования – Lisp, ISWIM, ML, Miranda/
В языках функционального программирования основным конструктивными элементами являются функции. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения.
Способ решения задачи описывается при помощи зависимости функций друг от друга (в том числе возможны рекурсивные зависимости) без указания последовательности шагов.
Функциональное программирование, как и другие модели «неимперативного» программирования, обычно применяется для решения задач, которые трудно сформулировать в терминах последовательных операций. Практически все задачи, связанные с искусственным интеллектом, попадают в эту категорию. Среди них следует отметить задачи распознавания образов, общение с пользователем на естественном языке, реализацию экспертных систем, автоматизированное доказательство теорем, символьные вычисления. Эти задачи далеки от традиционного прикладного программирования, поэтому им уделяется не так много внимания в учебных программах по информатике.
Логические языки программирования – Prolog
Если в функциональном программировании программы - это выражения, и их исполнение заключается в вычислении их значения, то в логическом программировании программа представляет из себя некоторую теорию (описанную на достаточно ограниченном языке), и утверждение, которое нужно доказать. В доказательстве этого утверждения и будет заключаться исполнение программы.
Логическое программирование и язык Пролог появились в результате исследования группы французских ученых под руководством Колмерье в области анализа естественных языков. В последствии было обнаружено, что логическое программирование столь же эффективно в реализации других задач искусственного интеллекта, для чего оно в настоящий момент, главным образом, и используется.
Но логическое программирование оказывается удобным и для реализации других сложных задач; например, диспетчерская система лондонского аэропорта Хитроу в настоящий момент переписывается на Прологе. Оказывается, логическое программирование является достаточно выразительным средством для описания сложных систем.
Процедурные языки программирования – используют процедуры (подрограммы, методы или функции). Процедуры содержат последовательность шагов для выполнения. В ходе выполнения программы любая процедура может быть вызвана из любой точки.