Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ. ( Процедурные языки программирования ).pdf
Добавлен: 31.03.2023
Просмотров: 98
Скачиваний: 2
СОДЕРЖАНИЕ
1. Классификация языков программирования
2. Процедурные языки программирования
3. Машинно-зависимые языки программирования
4. Машинно-независимые языки программирования
5. Непроцедурные языки программирования
6. Объектно-ориентированные языки программирования
7. Декларативные языки программирования
8. Переменные и типы данных в языках программирования
9. Статическая типизация. Язык С#
10. Динамическая типизация в языках программирования и структуры данных
11. Области видимости переменных
12. Критерии выбора языка и среды разработки программного обеспечения
Введение
В настоящее время программирование является инструментом для решения огромного количества задач. Для решения прикладных задач составляются программы на языках высокого уровня, для обмена данными между устройствами – программы на языках низкого уровня, для верстки веб-страниц используются языки разметки и стилей.
Программирование берет свое начало в ХХ-ом веке, с появлением первых ЭВМ появилась необходимость каким-то образом взаимодействовать с машиной. Привычные многим языки программирования тогда ещё не были возможны к реализации, поэтому для «общения» инженера и вычислительной техники применяли простейшие методы – перфокарты и двоичные управляющие сигналы.
Языки программирования значительно выросли с момента своего зарождения и претерпели огромное количество изменений в процессе своего существования, разделившись на обширные группы и классы, которым свойственны определенные характеристики и возможности.
Целью работы является классификация языков программирования, а как частную задачу можно выделить рассмотрение типов переменных и данных в различных популярных языках программирования. Помимо этого стоит задача определения критериев выбора среды разработки и языка программирования для решения различных задач.
Данная тема является актуальной ввиду того, что в настоящее время существует большое количество языков программирования, появляются новые версии языков и в корне новые языки, а для того чтобы разрабатывать программное обеспечение определенного назначения следует учитывать особенности различных языков.
1. Классификация языков программирования
Все языки программирования можно разделить на несколько обширных категорий, в которые включатся определенные языки программирования на основе того, характерны или им те или иные свойства[1].
Рассмотрим одиин из вариантов классификации языков программирования – рисунок 1.
Рисунок 1 – классификация языков программирования.
В соответствии с рисунком в первую очередь языки программирования можно разделить на процедурные и непроцедурные.
2. Процедурные языки программирования
Процедурное программирование – программирование на языке, при котором происходит последовательное исполнение операторов, собранных в своеобразные коллекции – подпрограммы [2]. Оно отражает принципы архитектуры первых вычислительных устройств – архитектуры Фон Неймана.
В теории, примером процедурного программирования может служить вычислительная система, также известная под названием «Машина Тьюринга».
Процедурный язык программирования предоставляет возможность программисту определять каждый шаг в процессе решения задачи. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.
3. Машинно-зависимые языки программирования
Машинно-зависимые языки – это языки, наборы операторов и средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т. д.). Эти языки называются языками программирования низкого уровня. Они ориентированы на конкретный тип процессора и учитывают его особенности. Операторы такого языка близки к машинному коду и ориентированы на конкретные команды процессора, то есть данный язык является машинно зависимым[3].
В качестве примера машинно-зависисмого языка можно привести язык Ассемблер. Это машинно-ориентированный язык программирования низкого уровня. Его команды прямо соответствуют отдельным командам машины или их последовательностям, также он может предоставлять дополнительные возможности облегчения программирования, такие как макрокоманды, выражения, средства обеспечения модульности программ.
Использование ассемблера позволяет максимально адаптировать программный код под конкретную платформу и обеспечить наибольшую производительность вычислений.
Ассемблер не имеет никаких альтернатив при создании драйверов устройств и ядер операционных систем, программ, которые будут храниться в постоянной памяти (BIOS, чипсеты и т.п.), платформо-зависимых компонентов и интерпритаторов языков программирования более высокого уровня, системных библиотек.
На самом деле, данный язык достаточно сложный и ввиду машинной ориентации программу на Ассемблере очень трудно прочитать. При программировании на данном языке усложняется процесс разработки, его стоимость, возникает повышенная вероятность возникновения ошибок. На рисунке 2 приведен пример кода на яызке Ассемблер.
Рисунок 2 – код программы на яызыке Ассемблер.
4. Машинно-независимые языки программирования
К машинно-независимым языкам программирования относятся те языки, операторы и языковые средства которых не зависят от конкретной платформы в физическом плане [4].
Среди машинно-независимых процедурных языков программирования стоит выделить несколько основных: BASIC, FORTRAN, Pascal. Рассмотрим Фортран – первый язык высокого уровня, который развивался достаточно долго.
Фортран— первый язык программирования высокого уровня, получивший практическое применение, имеющий транслятор и испытавший дальнейшее развитие. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator. Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана — большое количество написанных на нём программ и библиотек подпрограмм.
Fortran (Formula Translator) – исторически первый язык программирования, классифицируемый как язык программирования высокого уровня. Данный язык нашйл свою сферу применения и наплохо развивался в течение определенного времени. Фортран имеет транслятор и создавался небольшим коллективом разработчиков IBM с 1954 по 1957. Язык применяется в научных и инженерных вычислениях, на нём было написано большое количество подпрограмм и библиотек. На рисунке 3 приведена программа на языке Фортран.
Рисунок 3 – программа на яызке Фортран.
5. Непроцедурные языки программирования
Непроцедурный язык – это мощное средство разработки сложных программных систем, позволяющее сконцентрировать внимание разработчика на описании целей и правил, а не на последовательности действий по их реализации (т.е. описывается “что делать” вместо “как делать”). Непроцедурный язык ориентирован на конкретную предметную область (например, на автоматизацию технологических процессов на производстве). Различают два классических уровня реализации непроцедурного языка:
- формализованное описание предметной области и логики функционирования системы без генерации исполнительного кода. Такой непроцедурный язык называется языком спецификаций. Он используется как средство формализации задачи и её постановки программистам.
- полноценная управляющая система, построенная на непроцедурном языке. Сложности процедурной реализации перекладываются при этом на исполнительную систему, что обеспечивает ускорение разработки и значительное повышение надёжности создаваемых систем.
В свою очередь, непроцедурные языки подразделяются на объекто-ориентированные и декларативные [5].
6. Объектно-ориентированные языки программирования
Объектно-ориентированный язык программирования — язык, построенный на принципах объектно-ориентированного программирования.
В основе концепции объектно-ориентированного программирования лежит понятие объекта — некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
Основные принципы структурирования в случае ООП связаны с различными аспектами базового понимания предметной задачи, которое требуется для оптимального управления соответствующей моделью:
- абстрагирование для выделения в моделируемом предмете важного для решения конкретной задачи по предмету, в конечном счёте — контекстное понимание предмета, формализуемое в виде класса;
- инкапсуляция для быстрой и безопасной организации собственно иерархической управляемости: чтобы было достаточно простой команды «что делать», без одновременного уточнения как именно делать, так как это уже другой уровень управления;
- наследование для быстрой и безопасной организации родственных понятий: чтобы было достаточно на каждом иерархическом шаге учитывать только изменения, не дублируя всё остальное, учтённое на предыдущих шагах;
- полиморфизм для определения точки, в которой единое управление лучше распараллелить или наоборот — собрать воедино.
К объекто-ориентированным языкам относится большинство современных популярных языков программирования:
- C#;
- Java;
- C++;
- Visual Basic;
- Delphi;
и многие другие языки.
В целом, объектный подход зарекомендовал себя как эффективное средство при разработке сложных программ и программных комплексов. Упрощение процесса разарботки достигается засчёт использования единожды написанных структур данных и методов, которые могут видоизменяться без повторного объявления, расширяться и обрабатывать различные данные.
Далее, при рассмотрении переменных и типов данных в языках программирования, будет сделан акцент именно на объектно-ориентированных языках, в частности C-подобных: C, C++, C#.
7. Декларативные языки программирования
Декларативное программирование — это парадигма программирования, в которой задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат.
К подвидам декларативного программирования также зачастую относят функциональное и логическое программирование — несмотря на то, что программы на таких языках нередко содержат алгоритмические составляющие, архитектура в императивном понимании (как нечто отдельное от кодирования) в них также отсутствует: схема программы является непосредственно частью исполняемого кода.
В качестве примера можно привести язык SQL. Это декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
- создание в базе данных новой таблицы;
- добавление в таблицу новых записей;
- изменение записей;
- удаление записей;
- выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
- изменение структур таблиц.
Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.
При всех своих изменениях SQL остаётся самым распространённым лингвистическим средством для взаимодействия прикладного программного обеспечения с базами данных. В то же время современные СУБД, а также информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов. На рисунке 4 представлен пример кода на языке SQL.
Рисунок 4 – пример кода на языке SQL.