- •Введение
- •1. Проектирование прикладных программ на языке высокого уровня
- •1.1. Особенности разработки программного обеспечения на языке высокого уровня
- •1.1.1. Функциональные принципы работы компьютера
- •1.1.2. Понятие о низкоуровневом программировании
- •1.1.3. Основные языки программирования высокого уровня
- •1.1.4. Процедурное и событийное программирование
- •1.1.5. Технология быстрой разработки приложений
- •1.1.6. Классификация программных средств
- •1.2. Основные фазы проектирования программных продуктов
- •1.2.1. Определение проекта и анализ процесса проектирования с позиций теории управления
- •1.2.2. Классификация проектов
- •1.2.3. Основные фазы проектирования
- •2. Жизненный цикл программных продуктов, методология и технология разработки
- •2.1. Процессы жизненного цикла
- •2.1.1. Структура жизненного цикла по стандарту iso/iec 12207
- •2.1.2. Основные процессы
- •2.1.3. Вспомогательные и организационные процессы
- •2.2. Модели жизненного цикла
- •2.2.1. Каскадная модель
- •2.2.2. Спиральная модель
- •2.3. Методология, технология и инструментальные средства разработки прикладного программного обеспечения
- •3. Объектно-ориентированное программирование в рамках языка object pascal
- •3.1. Элементарная грамматика языка Object Pascal
- •3.2. Основные структурные единицы
- •3.2.1. Структуры главного файла программы и модулей
- •3.2.2. Общая характеристика объявляемых элементов
- •3.3. Типы данных и операции над ними
- •3.3.1. Порядковые типы
- •3.3.2. Действительные типы
- •3.3.3. Строки
- •3.3.4. Массивы
- •3.3.5. Множества
- •3.3.6. Записи
- •3.3.7. Файлы
- •3.3.8. Указательные типы
- •3.3.9. Вариантные типы
- •3.3.10. Объекты, классы и интерфейсы
- •3.4. Операторы языка Object Pascal
- •3.4.1. Оператор присваивания
- •3.4.2. Оператор безусловного перехода
- •3.4.3. Оператор if
- •3.4.4. Оператор case
- •3.4.5. Организация цикла с помощью оператора for
- •3.4.6. Цикл repeat … until
- •3.4.7. Цикл while … do
- •3.4.8. Дополнительные операторы организации циклов
- •3.4.9. Оператор with...Do
- •3.5. Обработка исключительных ситуаций
- •3.6. Процедуры и функции
- •4. Интегрированная среда delphi
- •4.1. Общий внешний вид и основные возможности
- •4.2. Главное меню
- •4.2.1. Меню File
- •4 .2.2. Депозитарий – хранилище объектов
- •4.2.3. Меню Edit и команды контекстного меню визуального редактора форм
- •4.2.4. Меню Search
- •4.2.5. Меню View
- •4.2.6. Меню Project
- •4.2.7. Меню Run
- •4.2.8. Меню Component и палитра компонентов
- •4.2.9. Меню Database, Tools, Windows, Help
- •4.3. Инспектор объектов
- •4.4. Редактор кода и его настройка
- •4.5. Общие настройки среды проектирования
- •4.6. Некоторые дополнительные настройки
- •5. Основные элементы построения интерактивного интерфейса прикладных программ
- •5.1. Формы и фреймы – основа визуализации интерфейсных элементов
- •5.2. Наиболее общие свойства, методы и события компонентов
- •5.3. Типы пользовательского интерфейса
- •5.3.3. Форма со вкладками
- •5.4. Основные стандартные компоненты
- •5.4.1. Надписи
- •5.4.2. Текстовое поле ввода
- •5.4.3. Класс tCheckBox
- •5.4.4. Списки
- •5.4.5. Радиокнопки
- •5.4.6. Кнопки
- •5.4.7. Панели
- •5.4.8. Меню
- •5.4.9. Таймер
- •5.4.10. Визуализация больших текстовых фрагментов
- •5.4.11. Визуализация структурированных данных
- •5.4.12. Компоненты построения баз данных
- •5.5. Компоненты организации диалога
- •5.5.1. Окна сообщений
- •5.5.2. OpenDialog, SaveDialog и другие компоненты стандартных диалоговых окон
- •5.6. Средства управления конфигурацией
- •5.7. Работа с графикой
- •Заключение
- •Библиографический список
- •Оглавление
1.1.2. Понятие о низкоуровневом программировании
Из вышеприведенного материала становится ясна технология разработки программ на языках низкого уровня – непосредственно в машинных кодах (как правило, в шестнадцатеричных числах) или на более удобном языке программирования – ассемблере, в котором числовой код команды заменен некоторым буквенным сокращением, мнемокодом (например, команду перехода можно обозначить goto или, от англ. jump – прыжок, – JMP), а числа (или операнды) сохраняют свою шестнадцатеричную форму представления. Очевидны и неудобства такого программирования – общая логика программы абсолютно непрозрачна даже для разработчика, поэтому процесс создания достаточно больших программ очень трудоемок. Но существуют и преимущества – программы, написанные таким образом, отличаются минимальным количеством программного кода и максимальным быстродействием.
Как правило, при разработке серьезного программного обеспечения минимум одну или более подпрограммы (они носят название процедур или функций) приходится писать на низкоуровневом языке программирования. Знание ассемблера также очень желательно при отладке ПО. Но, вообще говоря, для разработки программ на языках высокого уровня знание ассемблера не является обязательным. Отметим только, что это очень интересный материал, которому посвящено большое количество научно-технической литературы, например [7]. Но в данном учебном пособии вопросы низкоуровневого программирования не рассматриваются.
Продолжим исследование предпосылок возникновения программирования на языках высокого уровня. Уже использование мнемокодов потребовало дополнительных программных средств – программы, которая как бы "переводила" команды ассемблера непосредственно в машинные коды. Этот процесс получил название компиляции, а подобная программа соответственно была названа компилятором. Для языков высокого уровня компилятор – очень важная часть общего пакета среды программирования. С его помощью создаются так называемые исполняемые файлы программного обеспечения, которые обычно имеют расширение "exe". Существуют также библиотеки кода или библиотеки подпрограмм, обычно имеющие расширение "dll" (или специфичные для Delphi bpl-файлы). Именно в исполняемых файлах и библиотеках хранится код программы, т.е. алгоритмы тех операций, благодаря которым программные средства реализуют какие-либо действия, требующиеся пользователю.
Алгоритмом называют способ решения какой-либо задачи (не обязательно вычислительной), точно предписывающий, как и в какой последовательности получить результат, однозначно определяемый исходными данными.
Существует и другой вариант работы программного обеспечения. Пусть в памяти машины хранится программа на языке высокого уровня, которая выполняется по отдельным операторам (группам операторов). Такую программу удобно представить в виде листинга, где каждый оператор расположен на отдельной строке, а строки пронумерованы. Тогда можно сказать, что программа выполняется построчно. Вместо компилятора в этом случае необходим интерпретатор, выполняющий те же функции преобразования операторов в машинный код. Вообще операции построчного выполнения программы необходимы для отладки ПО и при выявлении ошибок. Принципиальная разница между компиляцией и интерпретированием в том, что при компилировании создается как минимум один дополнительный исполняемый exe-файл программы. Интерпретируемый программный код выполняется существенно медленнее.