Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Определение системы программирования).pdf
Добавлен: 30.03.2023
Просмотров: 1206
Скачиваний: 1
Введение
В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие систем программирования.
К сегодняшнему дню насчитывают несколько поколений систем программирования.
Каждое из последующих поколений по своей функциональной мощности качественно отличается от предыдущего. С появлением персональных компьютеров системы стали составными частями интегрированных сред разработки. Появились системы, применяемые в различных офисных программах. В настоящее время системы программирования применяются в самых различных областях человеческой деятельности, таких как научные вычисления, системное программирование, обработка информации, искусственный интеллект, издательская деятельность, удаленная обработка информации, описание документов.
С течением времени одни системы развивались, приобретали новые черты и остались, востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес.
Цель работы - описать современные системы программирования.
1. Системы программирования как неотъемлемая часть ЭВМ
1.1 Определение системы программирования
Неотъемлемой частью современных компьютеров являются программные системы, которые являются логическим продолжением логических средств компьютеров, расширяя возможности оборудования и сферы его использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение определенных функций в зависимости от профиля специалистов и способов взаимодействия с компьютерами. Основной задачей программного обеспечения является повышение эффективности работы пользователя, а также увеличение скорости передачи компьютеров, сокращение времени и затрат на подготовку и выполнение программ. Компьютерное программное обеспечение можно разделить на общее и специальное программное обеспечение.
Общее программное обеспечение реализует функции, связанные с работой компьютера, и включает в себя системы программирования, операционные системы, ряд программ обслуживания. Специальное программное обеспечение включает в себя проблемно-ориентированные пакеты приложений для решения весьма специфического класса задач.
Система программирования - это набор программ, предназначенных для автоматизации действий по программированию на компьютере. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости писать программы для решения их проблем на неудобном языке машинных команд и дает им возможность использовать специальные языки более высокого уровня. Для каждого из этих языков, называемых вводом или источником, в системе программирования имеется программа, которая автоматически переводит тексты программ с языка ввода на язык машины.
Язык программирования - это набор правил, которые определяют систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций. Языковая реализация - это системная программа, которая преобразует (конвертирует) записи языка высокого уровня в последовательность машинных инструкций.
Система программирования - это набор специализированных программных продуктов, которые являются инструментальными средствами разработчика.
Программные продукты данного класса поддерживают все этапы процесса программирования, отладки и тестирования создаваемых программ.
Заметим, что любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС.
Например, одна из популярных систем программирования на языке С/С++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows.
Система программирования включает следующие программные компоненты:
редактор текста;
транслятор с соответствующего языка;
компоновщик (редактор связей);
отладчик;
библиотеки подпрограмм.
Редактор текста - это программа для ввода и модификации текста.
Трансляторы предназначены для преобразования программ, написанных на языках программирования, в программы на машинном языке. Программа, подготовленная на каком-либо языке программирования, называется исходным модулем. В качестве входной информации трансляторы применяют исходные модули и формируют в результате своей работы объектные модули, являющиеся входной информацией для редактора связей. Объектный модуль содержит текст программы на машинном языке и дополнительную информацию, обеспечивающую настройку модуля по месту его загрузки и объединение этого модуля с другими независимо оттранслированными модулями в единую программу.
Трансляторы делятся на два класса: компиляторы и интерпретаторы. Компиляторы переводят весь исходный модуль на машинный язык. Интерпретатор последовательно переводит на машинный язык и выполнят операторы исходного модуля
(У интерпретаторов два основных недостатка. Первый - низкая скорость работы интерпретируемых программ.)
Преимущество интерпретатора перед компилятором состоит в том, что программа пользователя имеет одно представление - в виде текста. При компиляции одна и та же программа имеет несколько представлений - в виде текста и в виде выполняемого файла.
Компоновщик, или редактор связей - системная обрабатывающая программа, редактирующая и объединяющая объектные (ранее оттраслированные) модули в единые загрузочные, готовые к выполнению программные модули. Загрузочный модуль может быть помещен ОС в основную память и выполнен.
Отладчик позволяет управлять процессом исполнения программы, является инструментом для поиска и исправления ошибок в программе. Базовый набор функций отладчика включает:
пошаговое выполнение программы (режим трассировки) с отображением результатов,
остановка в заранее определенных точках,
возможность остановки в некотором месте программы при выполнении некоторого условия;
изображение и изменение значений переменных.
Загрузчик - системная обрабатывающая программа. Загрузчик помещает объектные и загрузочные модули в оперативную память, объединяет их в единую программу, корректирует перемещаемые адресные константы с учетом фактического адреса загрузки и передает управление в точку входа созданной программы.
1.2 Классификация систем программирования
В соответствии с набором языков ввода системы программирования различаются одноязычными и многоязычными. Отличительной особенностью многоязычных систем является то, что отдельные части программы можно компилировать на разных языках и, используя специальные программы обработки, объединять их в готовую к исполнению компьютерную программу.
По структуре, уровню формализации языка ввода и назначению существуют машинно-ориентированные и машинно-независимые системы программирования.
Системы машинно-ориентированного программирования имеют язык ввода, наборы операторов и визуальные средства которого существенно зависят от характеристик компьютера (внутренний язык, структура памяти). Машинно-ориентированные системы позволяют использовать все возможности машинно-зависимых языков:
- высокое качество создаваемых программ;
- возможность использования конкретных аппаратных ресурсов;
- предсказуемость объектного кода и заказов памяти;
- для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
- трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
- низкая скорость программирования;
- невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Машинно-независимые системы программирования - это способ описания алгоритмов решения проблем и обработки информации. Они удобны в использовании для широкого круга пользователей и не требуют, чтобы они знали организационные характеристики работы компьютеров. В таких системах программы, составленные из языков, называемых языками программирования высокого уровня, представляют собой последовательности инструкций, структурированные в соответствии с правилами языкового экзамена.
Операторы языка описывают действия, которые система должна выполнить после трансляции программы на машинном языке. Таким образом, последовательности команд (процедур, подпрограмм), часто используемые в машинных программах, представлены на языках высокого уровня отдельными операторами. Программист получил возможность не подробно описывать процесс расчета на уровне машинных инструкций, а сосредоточиться на основных характеристиках алгоритма.
1.3 Средства создания программ
В наиболее общем случае для создания программы на выбранном языке программирования необходимо иметь следующие компоненты.
1. Текстовый редактор. Поскольку текст программы написан с использованием ключевых слов, обычно производных от английских слов и набора стандартных символов для записи всех видов операций, вы можете создать этот текст в любом редакторе, который создаст текстовый файл с исходным текстом программы.
Лучше использовать специализированные редакторы, которые ориентированы на определенный язык программирования и позволяют различать ключевые слова и идентификаторы разных цветов и шрифтов при вводе текста. Такие редакторы созданы для всех популярных языков и могут дополнительно автоматически проверять правильный синтаксис программы непосредственно при ее вводе.
2. Исходный текст преобразуется в машинный код с помощью программы компиляции. Исходный код программы обычно состоит из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, который затем должен быть объединен в одно целое. Кроме того, системы программирования обычно содержат библиотеки со стандартными процедурами. Стандартные подпрограммы имеют единую форму вызова, что позволяет автоматически включать такие подпрограммы в вызывающую программу и настраивать их параметры.
3. Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .exe или .com.
4. В современных системах программирования имеется еще один компонент – отладчик, который позволяет анализировать работу программы во время ее исполнения. С его помощью можно последовательно выполнять отдельные операторы исходного текста последовательно, наблюдая при этом, как меняются значения различных переменных.
5. В последние годы в программировании был определен так называемый визуальный подход (в частности, для операционной среды Windows). Этот процесс автоматизирован в среде быстрого проектирования. В этом случае используются готовые визуальные компоненты, свойства, и поведение которых настраиваются с помощью специальных редакторов. Таким образом, происходит переход от языков программирования на системном уровне к языкам сценариев.
В настоящее время бурно развивается направление, связанное с технологией создания программных продуктов. Это обусловлено переходом на промышленную технологию производства программ, стремлением к сокращению сроков, трудовых и материальных затрат на производство и эксплуатацию программ. Это направление часто называют программотехникой. Программотехника - технология разработки, отладки и внедрения программного обеспечения. Инструментарий технологии программирования - программные продукты поддержки (обеспечения) технологии программирования.
В рамках этих направлений сформировались следующие группы программных продуктов: