Файл: Обзор и анализ характеристик языков программирования (подробно).pdf
Добавлен: 06.04.2023
Просмотров: 88
Скачиваний: 1
СОДЕРЖАНИЕ
1. Процедурные (императивные) языки программирования
1.1 Языки программирования низкого уровня
1.2 Языки программирования высокого уровня
2 Непроцедурные языки программирования
2.1 Объектно-ориентированные, логические, функциональные языки программирования
Введение
Современное человеческое общество все больше и больше зависит от компьютерных систем, управляемых программами. Эти системы настойчиво проникли в жизнь современного человека и продолжают это делать. Они практически окружили человечество, со всех сторон проникая во все сферы деятельности (работа, отдых, дом, дети). Изначально первые компьютеры или электронно-вычислительные машины, создавались для научных целей. Сегодня из них состоит жизнь и взрослых и детей. Миллионы людей, не имеющие специального образования, получили возможности применять компьютеры для решения собственных прикладных задач. Любой пользователь даже самого низкого уровня умеет работать в программе Microsoft office.
Основной инструмент для создания программ - язык программирования. Для решения определенной задачи необходимо выбрать подходящий язык программирования. Самому написать программу в машинном коде весьма сложно, причем эта сложность возрастает с увеличением размера программы и трудоемкости решения заданной задачи. Машинный код приемлем, если размер программы не превышает нескольких десятков байтов, и нет потребности в операциях ручного ввода данных. Поэтому сегодня практически все программы создаются с помощью языков программирования. Языки программирования - искусственные языки.
На современном этапе развития компьютерных технологий невозможно представить какого-либо специалиста, не владеющего информационными технологиями. Деятельность любого служащего в значительной степени зависит от степени владения информации и способности эффективно ее использовать. Современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию с помощью компьютера и других новейших средств связи. Уметь обращаться с языками программирования. Основная задача языка программирования - помочь программисту в совершенствовании его искусства. Сегодня существует несколько сотен реально используемых языков программирования, для каждого из которых есть своя область применения.
Данными вопросами на общетеоретическом уровне занимались: К.Г. Скрипкин, В.А. Сухомлин, А.П. Кулев, С.А. Улезько, А.В. Макарова, Н.В. Малышев, Н.А. Богданова, Б.В. Соболь, А. Б. Галин и другие. Мы же остановимся на некоторых из них.
Актуальность выбранной темы для курсовой работы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Целью курсовой работы является обзор и анализ характеристик языков программирования.
Для достижения вышеуказанной цели необходимо выполнение следующих задач:
1. Рассмотрение общих сведений и уровней языков программирования;
2. Исследование обзора современных языков программирования;
3. Проведение литературного анализа по выбранной теме;
4. Выводы по теме исследования.
1. Процедурные (императивные) языки программирования
1.1 Языки программирования низкого уровня
Первые идеи создания компьютерных технологий появились в 1800 году у Ч. Беббиджа. Человечество еще не знало о микросхемах и мониторах, но именно этот человек точно описал основные принципы работы вычислительных машин. Развила его идею и стала первым программистом Ада Лавлейс. Она доказала, что алгоритмы описанные в коде – путь к эффективному использованию машин. Но до появления первых компьютеров эти данные представляли собой лишь набор машинных инструкций. Сегодня для программиста устройство компьютера вторично, важен только язык программирования. Бурное развитие информационных технологий повлекло за собой создание множества искусственных языков, ориентированных на решение проблемы общения человека с компьютером. Одна из основных задач, стоящих перед программистом - добиться взаимопонимания с компьютером [17, С. 22].
Первые компьютеры (середина XX века) создавались для научных целей, решения различных математических уравнений. Это задачи статистики, численного анализа, решения дифференциальных и интегральных уравнений.
Такие программы обрабатывают простые структуры данных и производят большое количество арифметических вычислений. Языки «научного» программирования разрабатывались именно для удовлетворения этих потребностей. Здесь лидировал Fortran, потому что его синтаксис был очень близок к математическому языку ученых. Для научных вычислений особо важна эффективность, и Fortran оказался лучшим. Язык Algol 60 и его потомки тоже предназначались для подобных целей.[1]
Обработка деловой информации, то есть бизнес - задачи, ориентированы на управление ресурсами, персоналом, начисление зарплаты, учет поступления заказов, деловое планирование, анализ риска и т.д. Языки бизнес - программирования нацелены на генерацию отчетов со сложной структурой, точные способы описания и хранения десятичных чисел и символьных данных, арифметические действия с десятичными числами. С этими задачами успешно справляется язык Cobol. Дополнительным инструментом деловой обработки стали языки четвертого поколения 4GL (Fourth Generation Languages). Это непроцедурные языки, специализированные под конкретные задачи обработки деловой информации. Поддерживающая среда переводит спецификацию результата в машинно-выполнимую программу [12, С. 30].
Все задачи системной области связаны с созданием и развитием операционных систем для компьютеров - системным программным обеспечением (ПО). Применяемые языки программирования должны обеспечивать быстрое выполнение программ и взаимодействие с аппаратными средствами. Сначала системное программирование велось на языке ассемблера, затем применяется язык C и его более новый вариант C++. Язык C не обременяет программиста большим количеством ограничений, обеспечивает эффективное выполнение программ и дает возможность полного доступа к операционной системе и аппаратуре. Язык Ada востребован в системах аэрокосмического и военного назначения. Кроме вышеперечисленного, языки C, Ada и C++ позволяют создавать программы для работы в реальном времени. Это стало необходимым с появлением дешевых микропроцессоров, используемых в светофорах, автомобилях, стиральных машинах, электронных часах [17, С. 61].
Язык программирования – один из способов записи алгоритмов, совокупность набора символов системы, правил образования и истолкования конструкций из символов для задания алгоритмов с использованием символов естественного языка. Все команды и данные процессор компьютера получает в виде электрических сигналов (совокупности нулей и единиц т. е. чисел). Программа, с которой работает процессор, представляет собой последовательность чисел, называемых машинным кодом [2, С. 13]. Написать программу в машинном коде сложно. Машинный код приемлем, если объем программы не превосходит нескольких десятков байтов. Более сложные программы создают с помощью языков программирования. Языки программирования – искусственные языки. Они отличаются от естественных человеческих языков малым количеством слов, значение которых понятно транслятору и жесткими требованиями по форме записи операторов. Трансляция – это перевод.[2]
Различают два вида трансляторов: компиляторы и интерпретаторы. Соответственно с этим можно выделить два класса языков программирования: компилируемые и интерпретируемые. Компиляторы обрабатывают программу в несколько приемов. Сначала они несколько раз просматривают исходный текст (код), находят общие места, выполняют проверку на отсутствие ошибок синтаксиса и внутренних противоречий, и потом переводят текст в машинный код. В результате программа получается компактной и эффективной [4, С. 43].
Интерпретаторы работают как синхронные переводчики. Они берут один оператор из программы, транслируют его в машинный код и исполняют его. Если какой-то оператор многократно используется в программе, интерпретатор всякий раз будет выполнять его перевод как первый.
Перечислим несколько основных требований предъявляемых к языкам программирования.
1. Наглядность. Это использование в языке уже существующих символов, хорошо известных и понятных и программистам и пользователям электронных машин.
2. Гибкость. Это возможность несложного, относительно удобного описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств [4, С. 25].
3. Единство. Это использование одних и тех же символов для обозначения одних и тех же (родственных) понятий в разных частях алгоритма. По возможности количество данных символов должно быть минимальным.
4. Однозначность. Это недвусмысленность записи любого алгоритма. Отсутствие ее может привести к неправильным ответам при решении задач
5. Модульность. Это - возможность описания сложных алгоритмов в виде совокупности простых модулей, которые можно составить отдельно и использовать в различных сложных алгоритмах [7, С. 14].
Язык программирования — это средство общения между человеком (пользователем) и компьютером (исполнителем). В данном процессе, как в любой деятельности присутствует погрешность. Возможные ошибки разделяют на синтаксические, семантические и прагматические. Синтаксические ошибки возможны, когда автор сообщения подразумевает одну структуру сообщения, а получатель - другую (устраняются легко). Семантические ошибки связаны с искажением смысла элементов сообщения. Прагматические ошибки подразумевают искажение цели (назначения) элемента или сообщения. Прагматические ошибки самые трудные. Для исключения ошибок в процессе «общения» необходимо, чтобы пользователь и исполнитель пользовались:
1) одинаковыми правилами разложения сообщения на составляющие (предмет синтаксиса);
2) согласованными правилами, придающими сообщению смысл (предмет семантики);
3) согласованными целевыми установками (предмет прагматики) [13, С. 81].
Языки программирования разделяют на два класса: процедурные и непроцедурные. К процедурным (императивным), относят языки низкого и высокого уровней. К непроцедурным (декларативным) относятся объектно-ориентированные, функциональные и логические языки (Приложение А).
Процедурные (императивные) языки программирования задают вычисления как последовательность команд (операторов). Они ориентированы на компьютеры с архитектурой фон Неймана. Их основные понятия тесно связаны с компонентами компьютера:
1) операторы присваивания (моделируют пересылки данных);
2) повторения действий в форме итерации (моделируют хранение информации в смежных ячейках памяти);
3) переменные различных типов (моделируют ячейки памяти).
Реализация оператора присваивания происходит следующим образом: операнды выражения передаются из памяти в процессор, результат вычисления выражения заносится в ячейку памяти, именуемую левой частью оператора. А поскольку операторы хранятся в соседних ячейках памяти, то итерации на компьютере фон Неймана осуществляются очень быстро.
Все вычисления основываются на понятии состояние компьютера. Состояние компьютера — это множество всех значений ячеек его памяти. Программа состоит из последовательности операторов, выполнение каждого из которых изменяет значения в одной или нескольких ячейках памяти, и переводит компьютер в новое состояние [4, С. 23]. В основном, операторы выполняются в порядке их следования в программе, друг за другом, и приводят к последовательной смене состояний компьютера. Конечное состояние - ожидаемый результат. Императивные программы гармонизированы с принципами работы традиционного компьютера, реализуются быстро и эффективно, что способствует их высокой популярности.
Процедурные языки предназначены для однозначного описания алгоритмов. В языке стремятся максимально полно учесть специфику класса задач, для решения которых его предполагается использовать [19, С. 79]. Разнообразие задач привело к тому, что сегодня разработано несколько сотен алгоритмических языков. Языки, предназначенные для решения научно-технических задач - Fortran и Algol, для решения экономических задач - Cobol, для решения небольших вычислительных задач в диалоговом режиме - Basic [2, С. 98].
Рассмотрим два уровня процедурных языков программирования: языки низкого уровня и языки высокого уровня. Язык программирования низкого уровня (машинно-зависимый) не означает «плохой». Это язык, созданный для использования со специальным типом процессора, учитывающим его особенности. В данном случае «низкий уровень» не значит «худший». Он близок к машинному коду, позволяет непосредственно реализовать некоторые команды процессора [6, С. 50]. Программа, написанная на таком языке, работает быстро, занимая маленький объем, и допускает минимальное количество ошибок.
Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой. Для каждого типа процессоров самым низким уровнем является язык ассемблера. Он представляет машинный код не в виде чисел, а в виде условных обозначений, называемых мнемониками.