1 Современные системы программирования Системное и прикладное программное обеспечение Малышенко Владислав Викторович.

Презентация:



Advertisements
Похожие презентации
П рограммное обеспечение (англ. software) – это совокупность программ, обеспечивающих функционирование компьютеров и решение с их помощью задач предметных.
Advertisements

Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Системы программирования Средства создания программ Интегрированные системы программированияИнтегрированные системы программирования Среды быстрого проектирования.
Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Введение в теорию компиляции Основные принципы построения трансляторов.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА Ключевые слова программа программное обеспечение (ПО) системное ПО прикладное ПО система программирования.
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
Архитектура операционных систем Семестр 2, Лекция 1.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА КОМПЬЮТЕР КАК УНИВЕСАЛЬНОЕ УСТРОЙСТВО ДЛЯ РАБОТЫ С ИНФОРМАЦИЕЙ Информатика и ИКТ.
Домашнее задание (от ) § 2.2 1, 5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА КОМПЬЮТЕР КАК УНИВЕСАЛЬНОЕ УСТРОЙСТВО ДЛЯ РАБОТЫ С ИНФОРМАЦИЕЙ Информатика.
Лекция 5 Способы конструирования программ. Основы доказательства правильности.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКА ТАДЖИКИСТАН ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ТАДЖИКИСТАНА ФАКУЛЬТЕТ: «С Т Р Ф» МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Школьная форма Презентация для родительского собрания.
Лекция 3 Раздел 3,1 Windows Phone Темы раздела 3.
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
АЛГОРИТМ (интуитивное понятие алгоритма) - строгая и четкая конечная система правил, которая определяет последовательность действий над некоторыми объектами.
- система взаимосвязанных технических устройств, выполняющих ввод, хранение, обработку и вывод информации.
Транксрипт:

1 Современные системы программирования Системное и прикладное программное обеспечение Малышенко Владислав Викторович

2 Понятия о системе программирования Любой компилятор не существует сам по себе, а решает задачи в рамках всего системного программного обеспечения. Основная цель компиляторов: обеспечить разработку новых прикладных и системных программ с помощью языков высокого уровня. Компиляторы – это средства, служащие для создания программного обеспечения на этапах кодирования, тестирования и отладки.

3 Основные технические средства, используемые в комплексе с компилятором Текстовые редакторы, служащие для создания текстов исходных программ; Компоновщики, позволяющие объединять несколько объектных модулей в единой целое; Библиотеки прикладных программ; Загрузчики; Отладчики; Другие программные средства. Комплекс программно-технических средств называется системой программирования.

4 Возникновение систем программирования Первоначально компиляторы разрабатывались и поставлялись вне связи с другими техническими средствами. Первоначально совместно с компилятором поставлялись только библиотеки стандартных функций.

5 Задачи разработчика 1. Подготовить тексты исходной программы; 2. Подать данные в виде текста исходной программы на вход компилятора; 3. Получить от компилятора набор объектных файлов; 4. Подать набор объектных файлов на вход компоновщику; 5. Получить от компоновщика единый файл программы; 6. Поставить программу на выполнение.

6 Возникновение систем программирования 1. Возникновение командных файлов; 2. Поставка компиляторов в наборе со всеми необходимыми техническими средствами; 3. Стандартизация формата объектного файла; 4. Разработка специального командного языка выполняемого программой make. 5. Последовательность действий описывается в файле Makefile.

7 Появление интегрированных сред разработки Интегрированная среда разработки преимущества: единый интерфейс для написания, редактирования и отладки программ; Пример: Turbo Pascal; Создание развитых средств интерфейса пользователя Снижение требований к профессиональным навыкам разработчиков Распространение развитых средств графического интерфейса пользователя GUI Поддержка функций API Дизайн интерфейса

8 Структура современной системы программирования Системой программирования будем называть весь комплекс программных средств, предназначенных для кодирования, тестирования и отладки программного обеспечения.

9 Общая структура и этапы развития систем программирования 1 этап Объектная программа Компоновщик (редактор связей) Библиотеки … … Исполняемый файл Загрузчик 2 этап Текстовый редактор Исходная программа Компилятор 3 этап Редактор языка 4GL Исходный код ресурсов Редактор ресурсов Компилятор ресурсов Ресурсы интерфейса

10 Общая структура систем программирования Текстовый редактор позволяет готовить и вносить изменения в тексты исходных программ Редактор ресурсов позволяет готовить ресурсы пользовательского интерфейса для результирующей программы Компилятор переводить исходные программы в двоичный код. Система программирования может содержать несколько компиляторов Библиотеки программ: библиотека функций исходного языка и библиотека функций целевой ОС

11 Общая структура систем программирования Компоновщик обеспечивает объединение всех исходных моделей в единый файл Загрузчик обеспечивает подготовку результирующей программы к выполнению. Отладчик способствует поиску и локализации ошибок в программе.

12 Модификация структуры систем программирования В настоящее время развитие систем программирования идет в направлении повышения дружественности и сервисных возможностей. Основное направление развития систем программирования: снижение трудозатрат; Поддержка всего жизненного цикла ПО.

13 Современные системы программирования Средства разработки на основе так называемых «языков четвертого поколения» - 4GL (Fourth Generation Languages) Системы «быстрой разработки программного обеспечения» - RAD.

14 Языки 4GL Языки четвертого поколения – 4GL – представляют собой широкий набор средств, ориентированных на проектирование и разработку ПО. Они строятся на основе оперирования графическими образами. При таком уровне проектировать и разрабатывать прикладное ПО может пользователь, не являющийся квалифицированных программистом, но имеющий представление о предметной области.

15 Языки 4GL Описание программы на языке 4GL транслируется затем в исходный текст и файл описания ресурсов на языке высокого уровня. Языки 4GL реализованы в системах типа RAD и CASE-системах.

16 Принципы функционирования систем программирования

17 Текстовый редактор Интеграция текстового редактора в систему программирования Результат интеграции – пошаговая отладка Лексический анализ «на лету» Системы гиперссылок подсказок и справок Пояснение и вариант кода

18 Компилятор Запуск модуля компиляции скрыт от пользователя Автоматическая или интерфейсная настойка параметров компиляции Системы программирования могут содержать в своем составе целый набор других компиляторов и трансляторов Технические характеристики компилятора влияют на эффективность создаваемого ПО

19 Компоновщик. Назначение и функции компоновщика Назначение: связывание между собой объектных файлов, порождаемых компилятором, а также фалов библиотек, входящих в состав системы программирования. Объектный файл не может быть исполнен до тех пор, пока все модули и секции не будут в нем увязаны между собой. Результатом работы компоновщика является файл на языке машинных кодов.

20 Компоновщик. Задача компоновщика Обход всего кода программы, от точки входа до точки выхода Найти все вызовы внешних процедур и функций, связать их процедурами, функциями и переменными Разрешение всех адресных пространств вызовов и процедур – редактор связей.

21 Компоновщик. Ход работы компоновщика 1. Выбор из первого объектного модуля программной секции и присвоение ей начального адреса; 2. Выравнивание всех остальных объектных модулей относительно данного адреса; 3. Создание секции данных, таблицы идентификаторов и внешних имен; 4. Разрешение межсекционных ссылок; 5. Определение ошибок на связывание объектов и переменных.

22 Загрузчик. Функции загрузчика Загрузчик выполняет трансляцию адресов в момент запуска программы Динамические загрузчики позволяют использовать динамические библиотеки и ресурсы пользовательского интерфейса

23 Отладчик. Функции отладчика Отладчик – это программный модуль, который позволяет выполнить основные задачи, связанные с мониторингом процесса выполнения результирующей прикладной программы. Функции: Последовательное пошаговое выполнение; Выполнение программы до достижения ею одной из точек останова; Выполнение программы до наступления некоторых условий; Просмотр содержимого областей данных.

24 Отладчик. Функции отладчика Развитие отладчиков: Отладка программ в терминах исходного языка программирования; Интеграция со средами программирования; Появление возможностей аппаратной поддержки средств отладки во многих вычислительных системах.

25 Библиотеки подпрограмм Библиотеки подпрограмм составляют существенную часть систем программирования. Состав библиотеки: Объектный файл; Описание вызовов на входном языке; Описание на естественном языке.

26 Статические библиотеки подпрограмм Статические библиотеки подпрограмм и функций представляют собой часть объектного кода, которая подключается к результирующей программе на этапе ее разработки. Недостатки использования: При наличии ошибок в библиотеке они будет проявляться во всех программах, которые используют эту библиотеку; Объектный код статических библиотек встраивается в исполняемый файл.

27 Динамические библиотеки подпрограмм Динамические библиотеки подключаются к результирующей программе в момент ее выполнения. Два основных варианта загрузки динамических библиотек при выполнении: Загрузка библиотеки сразу же после запуска на выполнение программы; Загрузка только в момент обращения к подпрограмм библиотеки. Соответственно, два варианта освобождения памяти.

28 Формат файлов динамических библиотек Формат близок к исполняемых файлам; Описание функций на входном языке; Отсутствует код программы обращения к функциям; Вызов осуществляется с помощью функций ОС.

29 Преимущества динамические библиотеки Не требуется включение в результирующую программу объектного кода часто используемых функций; Существенно сокращается объем кода.

30 Недостатки динамические библиотеки Программа связана с объектным кодом, не входящим в ее состав; Наличие всех используемых библиотек; Зависимость от кода библиотеки; Реализация библиотеки и программы

31 Ресурсы пользовательского интерфейса. Ресурсами пользовательского интерфейса называется множество данных, обеспечивающих внешний вид интерфейса пользователя результирующей программы, не связанных напрямую с логикой ее выполнения. Размещение (хранение) ресурсов: в программе; в динамической библиотеке; в отдельном файле.

32 Ресурсы пользовательского интерфейса. Работа с ресурсами. С помощью функций ОС: Загрузка ресурса; Освобождение памяти; Отображение на экране; Специальный набор наиболее часто используемых ресурсов интерфейса называют системными.

33 Ресурсы пользовательского интерфейса. Язык описания ресурсов. Язык описания ресурсов – это, как правило, простой язык, построенный на основе регулярной грамматики. Но строить описание ресурса в таком виде неэффективно, удобнее формировать в виде графических образов. Современные системы программирования имеют в своем составе графические средства редактирования ресурсов пользовательского интерфейса.

34 Ресурсы пользовательского интерфейса. Преимущества. Проектирование пользовательского интерфейса в независимости от логики работы приложения. Работу над интерфейсом можно поручить дизайнеру. Удобство перевода программу на новый естественный язык – перевод всех текстовых сообщений и строковых элементов форм.

35 Мобильность и переносимость программного обеспечения Мобильностью программного обеспечения будем называть способность программного обеспечения выполнять свои функции на различных вычислительных системах.

36 Факторы, влияющие на мобильность Состав специализированных аппаратных средств и периферийных устройств; Тип ОС; Состав и функции динамически загружаемых библиотек; Структура и формат хранения ресурсов пользовательского интерфейса; Перечень внешних программ и модулей. Чем меньше зависимость, тем выше мобильность.

37 Мобильность и переносимость программного обеспечения Основной фактор мобильности – зависимость от используемых специализированных аппаратных средств и периферийных устройств. Зависимость от ОС и других программных факторов исключить невозможно.

38 Обеспечение переносимости исходного кода программ Добиться мобильности результирующей программы невозможно, но можно добиться переносимости исходных кодов программ.

39 Правила для переносимости исходных кодов Не использовать в коде прямые обращения к периферийным устройствам; Не включать в код прямые обращения к функциями ОС; Использовать только широко распространенные динамические библиотеки; Подключать динамически загружаемые библиотеки только средствами программирования; Использовать только средства системы программирования для создания ресурсов пользовательского интерфейса;

40 Правила для переносимости исходных кодов Исключить взаимодействие с внешними программами и модулями или ограничить его только программами, доступные во всех типах ОС; Не использовать для взаимодействия с внешними программами и модулями прямые обращения к средствам ОС.

41 Структура приложения, соответствующего стандарту переносимости Стандарт POSIX (IEEE Std ) Приложение, соответствующие Стандарту переносимости Библиотеки стандарта Библиотеки исходного языка программирования Операционная система (ОС)

42 Правила для систем программирования Поддержка выбранного стандарта; Ориентация на все типы ОС; Языки С и С++, поддерживают стандарт POSIX.

43 Мобильность на основе интерпретаторов При использовании интерпретаторов ограничения на прямое использование функций ОС должны соблюдаться точно так же, как и для компиляторов. Недостатки: 1. Исходный текст программ может быть выполнен только интерпретатором; 2. Скорость выполнения кода интерпретатором значительно ниже, чем при выполнении откомпилированного объектного кода.

44 Мобильность на основе интерпретаторов. Второй способ. Исходная программа Целевая вычислительная система Компилятор исходного языка Интерпретатор Промежуточного кода Промежуточный двоичный код

45 Преимущества и недостатки переносимости программ Преимущества: Широкий рынок сбыта; Снижение зависимость от архитектуры. Недостатки: Потеря эффективности.