Презентация «Отладка и тестирование программного продукта на уровне модулей. Трансляторы»

Смотреть слайды в полном размере
Презентация «Отладка и тестирование программного продукта на уровне модулей. Трансляторы»

Вы можете ознакомиться с презентацией онлайн, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати. Документ содержит 79 слайдов и доступен в формате ppt. Размер файла: 574.62 KB

Просмотреть и скачать

Pic.1
Тема 1. 3 Отладка и тестирование программного продукта на уровне модулей Тема 1. 3. 2 Трансляторы Пл
Тема 1. 3 Отладка и тестирование программного продукта на уровне модулей Тема 1. 3. 2 Трансляторы План: Основные принципы построения трансляторов. Генерация и оптимизация кода. Современные системы …
Pic.2
1 Основные принципы построения трансляторов Транслятор — это программа, которая переводит входную пр
1 Основные принципы построения трансляторов Транслятор — это программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем …
Pic.3
Во-вторых, исходными данными для работы транслятора служит текст входной программы — некоторая после
Во-вторых, исходными данными для работы транслятора служит текст входной программы — некоторая последовательность предложений входного языка программирования. Обычно это символьный файл, но этот файл …
Pic.4
Компилятор — это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объе
Компилятор — это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке машинных команд или на языке ассемблера. Интерпретатор — это программа, …
Pic.5
Этапы трансляции. Общая схема работы транслятора
Этапы трансляции. Общая схема работы транслятора
Pic.6
Компилятор выполняет две основные функции: 1) является распознавателем для языка исходной программы.
Компилятор выполняет две основные функции: 1) является распознавателем для языка исходной программы. Генератором цепочек входного языка выступает пользователь — автор входной программы. 2) компилятор …
Pic.7
Синтаксический разбор — это основная часть компилятора на этапе анализа. Она выполняет выделение син
Синтаксический разбор — это основная часть компилятора на этапе анализа. Она выполняет выделение синтаксических конструкций в тексте исходной программы, обработанном лексическим анализатором. На этой …
Pic.8
Генерация кода — это фаза, непосредственно связанная с порождением команд, составляющих предложения
Генерация кода — это фаза, непосредственно связанная с порождением команд, составляющих предложения выходного языка и в целом текст результирующей программы. Это основная фаза на этапе синтеза …
Pic.9
Проход — это процесс последовательного чтения компилятором данных из внешней памяти, их обработки и
Проход — это процесс последовательного чтения компилятором данных из внешней памяти, их обработки и помещения результата работы во внешнюю память. Результатом промежуточных проходов является …
Pic.10
Трансляторы с языка ассемблера («ассемблеры») Язык ассемблера — это язык низкого уровня. Структура и
Трансляторы с языка ассемблера («ассемблеры») Язык ассемблера — это язык низкого уровня. Структура и взаимосвязь цепочек этого языка близки к машинным командам целевой вычислительной системы, где …
Pic.11
Компиляторы с языка ассемблера реализуются чаще всего по двухпроходной схеме. На первом проходе комп
Компиляторы с языка ассемблера реализуются чаще всего по двухпроходной схеме. На первом проходе компилятор выполняет разбор исходной программы, ее преобразование в машинные коды и одновременно …
Pic.12
Макроопределения и макрокоманды Макрокоманда представляет собой текстовую подстановку, в ходе выполн
Макроопределения и макрокоманды Макрокоманда представляет собой текстовую подстановку, в ходе выполнения которой каждый идентификатор определенного вида заменяется на цепочку символов из некоторого …
Pic.13
Для того чтобы указать, какие идентификаторы на какие строки необходимо заменять, служат макроопреде
Для того чтобы указать, какие идентификаторы на какие строки необходимо заменять, служат макроопределения. Макроопределения присутствуют непосредственно в тексте исходной программы. Они выделяются …
Pic.14
2 Генерация и оптимизация кода С целью повысить эффективность компиляторов разбор цепочек входного я
2 Генерация и оптимизация кода С целью повысить эффективность компиляторов разбор цепочек входного языка выполняется в два этапа: первый — синтаксический разбор на основе распознавателя одного из …
Pic.15
Примерами таких конструкциями являются блоки описания констант и идентификаторов или операторы, где
Примерами таких конструкциями являются блоки описания констант и идентификаторов или операторы, где тот или иной идентификатор встречается впервые. Входными данными для семантического анализа служат: …
Pic.16
Семантический анализатор выполняет следующие основные действия: проверка соблюдения во входной прогр
Семантический анализатор выполняет следующие основные действия: проверка соблюдения во входной программе семантических соглашений входного языка; дополнение внутреннего представления программы в …
Pic.17
Проверка соблюдения во входной программе семантических соглашений входного языка заключается в сопос
Проверка соблюдения во входной программе семантических соглашений входного языка заключается в сопоставлении входных цепочек программы с требованиями семантики входного языка программирования. Каждый …
Pic.18
Примерами таких соглашений являются следующие требования: каждая метка, на которую есть ссылка, долж
Примерами таких соглашений являются следующие требования: каждая метка, на которую есть ссылка, должна один раз присутствовать в программе; каждый идентификатор должен быть описан один раз, и ни один …
Pic.19
при вызове процедур и функций число и типы фактических параметров должны быть согласованы с числом и
при вызове процедур и функций число и типы фактических параметров должны быть согласованы с числом и типами формальных параметров. Преобразование типов — это только один вариант операций, неявно …
Pic.20
Проверка элементарных смысловых норм языков программирования, напрямую не связанных с входным языком
Проверка элементарных смысловых норм языков программирования, напрямую не связанных с входным языком, — это сервисная функция, которую предоставляют большинство современных компиляторов. Эта функция …
Pic.21
каждая переменная должна быть определена до ее первого использования при любом ходе выполнения прогр
каждая переменная должна быть определена до ее первого использования при любом ходе выполнения программы (до использования переменной должно быть присвоено значение); результат функции должен быть …
Pic.22
Идентификация лексических единиц языков программирования Идентификация переменных, типов, процедур,
Идентификация лексических единиц языков программирования Идентификация переменных, типов, процедур, функций и других лексических единиц языков программирования — это установление однозначного …
Pic.23
Распределение памяти. Принципы распределения памяти Распределение памяти — это процесс, который став
Распределение памяти. Принципы распределения памяти Распределение памяти — это процесс, который ставит в соответствие лексическим единицам исходной программы адрес, размер и атрибуты области памяти, …
Pic.24
Исходными данными для процесса распределения памяти в компиляторе служат таблица идентификаторов. Пр
Исходными данными для процесса распределения памяти в компиляторе служат таблица идентификаторов. Процесс распределения памяти в современных компиляторах работает с относительными, а не абсолютными …
Pic.25
Память можно разделить на локальную и глобальную память, динамическую и статическую память. Глобальн
Память можно разделить на локальную и глобальную память, динамическую и статическую память. Глобальная область памяти — это область памяти, которая выделяется один раз при инициализации …
Pic.26
Статическая область памяти — это область памяти, размер которой известен на этапе компиляции. Динами
Статическая область памяти — это область памяти, размер которой известен на этапе компиляции. Динамическая область памяти — это область памяти, размер которой на этапе компиляции программы не …
Pic.27
Дисплей памяти процедуры (функции). Стековая организация дисплея памяти Дисплей памяти процедуры (фу
Дисплей памяти процедуры (функции). Стековая организация дисплея памяти Дисплей памяти процедуры (функции) — это область данных, доступных для обработки в этой процедуре (функции). Дисплей памяти …
Pic.28
Стековая организация дисплея памяти процедуры позволяет организовать рекурсию вызовов и имеет все пр
Стековая организация дисплея памяти процедуры позволяет организовать рекурсию вызовов и имеет все преимущества перед динамической схемой, но недостаток — память, отводимая под стек параметров, …
Pic.29
Память для типов данных (RTTI-информация) Результирующая программа может обрабатывать не только пере
Память для типов данных (RTTI-информация) Результирующая программа может обрабатывать не только переменные, константы и другие структуры данных, но и информацию о типах данных, описанных в исходной …
Pic.30
Каждому типу данных в RTTI-таблице соответствует своя область данных, в которой хранится вся необход
Каждому типу данных в RTTI-таблице соответствует своя область данных, в которой хранится вся необходимая информация об этом типе данных, его взаимо­связи с другими типами данных в общей иерархии …
Pic.31
Генерация кода. Методы генерации кода Генерация объектного кода — это перевод компилятором внутренне
Генерация кода. Методы генерации кода Генерация объектного кода — это перевод компилятором внутреннего представления исходной программы в цепочку символов выходного языка. Внутреннее представление …
Pic.32
В качестве анализируемых законченных синтаксических конструкций выступают операторы, блоки операторо
В качестве анализируемых законченных синтаксических конструкций выступают операторы, блоки операторов, описания процедур и функций. Смысл (семантику) каждой такой синтаксической конструкции входного …
Pic.33
Для семантически схожих конструкций различных входных языков программирования может порождаться типо
Для семантически схожих конструкций различных входных языков программирования может порождаться типовой результирующий код. Для семантически схожих конструкций различных входных языков …
Pic.34
Общие принципы оптимизации кода Общие принципы оптимизации кода Эф­фективность результирующей програ
Общие принципы оптимизации кода Общие принципы оптимизации кода Эф­фективность результирующей программы важна для ее разработчика, т. к. современные компиляторы выполняют еще один этап компиляции — …
Pic.35
Компилятор может вообще не выполнять оптимизацию, и при этом результирующая программа будет правильн
Компилятор может вообще не выполнять оптимизацию, и при этом результирующая программа будет правильной, а сам компилятор будет полностью выполнять свои функции. Компилятор может вообще не выполнять …
Pic.36
В качестве показателей эффективности результирующей программы можно использовать два критерия: В кач
В качестве показателей эффективности результирующей программы можно использовать два критерия: В качестве показателей эффективности результирующей программы можно использовать два критерия: объем …
Pic.37
Принципиально различаются два основных вида оптимизирующих преобразований: Принципиально различаются
Принципиально различаются два основных вида оптимизирующих преобразований: Принципиально различаются два основных вида оптимизирующих преобразований: преобразования исходной программы (в форме ее …
Pic.38
Оптимизация может выполняться для следующих типовых синтаксических конструкций: Оптимизация может вы
Оптимизация может выполняться для следующих типовых синтаксических конструкций: Оптимизация может выполняться для следующих типовых синтаксических конструкций: линейных участков программы; логических …
Pic.39
Существуют методы, позволяющие снизить затраты кода и времени выполнения на передачу параметров в пр
Существуют методы, позволяющие снизить затраты кода и времени выполнения на передачу параметров в процедуры и функции и повысить в результате эффективность результирующей программы: Существуют …
Pic.40
Некоторые языки программирования (C++) позволяют разработчику исходной программы явно указать, какие
Некоторые языки программирования (C++) позволяют разработчику исходной программы явно указать, какие параметры или локальные переменные процедуры он желал бы разместить в регистрах процессора. Тогда …
Pic.41
3 Современные системы программирования Понятие и структура системы программирования Компилятор являе
3 Современные системы программирования Понятие и структура системы программирования Компилятор является составной частью системного ПО. Компиляторы — это средства, служащие для создания ПО на этапах …
Pic.42
В задачу разработчика программы входило обеспечить взаимосвязь всех используемых технических средств
В задачу разработчика программы входило обеспечить взаимосвязь всех используемых технических средств: подать входные данные в виде текста исходной программы на вход компилятора; получить от …
Pic.43
Все эти действия выполнялись с помощью последовательности команд, инициировавших запуск соответствую
Все эти действия выполнялись с помощью последовательности команд, инициировавших запуск соответствующих программных модулей с передачей им всех необходимых параметров. Пользователи могли выполнять …
Pic.44
Следующим шагом в развитии средств разработки стало появление так называемой «интегрированной среды
Следующим шагом в развитии средств разработки стало появление так называемой «интегрированной среды разработки». Интегрированная среда объединила в себе возможности текстовых редакторов исходных …
Pic.45
В состав ПО были сначала включены соответствующие библиотеки, обеспечивающие поддержку развитого гра
В состав ПО были сначала включены соответствующие библиотеки, обеспечивающие поддержку развитого графического интерфейса пользователя и взаимодействие с функциями API (прикладной программный …
Pic.46
Примеры ресур­сов: тексты сообщений, выдаваемых программой; цветовая гамма элементов интерфейса; над
Примеры ресур­сов: тексты сообщений, выдаваемых программой; цветовая гамма элементов интерфейса; надписи на таких элементах, как кнопки и заголовки окон и т. п. Примеры ресур­сов: тексты сообщений, …
Pic.47
Структура современной системы программирования Структура современной системы программирования Систем
Структура современной системы программирования Структура современной системы программирования Системой программирования будем называть весь комплекс программных средств, предназначенных для …
Pic.48
В качестве основных тенденций в развитии современных систем программиро­вания следует указать внедре
В качестве основных тенденций в развитии современных систем программиро­вания следует указать внедрение в них средств разработки на основе так называемых «языков четвертого поколения» — 4GL (four …
Pic.49
Принципы функционирования систем программирования Принципы функционирования систем программирования
Принципы функционирования систем программирования Принципы функционирования систем программирования Функции текстовых редакторов в системах программирования Текстовый редактор в системе …
Pic.50
Компилятор как составная часть системы программирования Компилятор как составная часть системы прогр
Компилятор как составная часть системы программирования Компилятор как составная часть системы программирования Компиляторы являются основными модулями в составе любой системы программирования (СП). …
Pic.51
Компоновщик. Назначение и функции компоновщика Компоновщик. Назначение и функции компоновщика Компон
Компоновщик. Назначение и функции компоновщика Компоновщик. Назначение и функции компоновщика Компоновщик (редактор связей) предназначен для связывания между собой объектных файлов, порождаемых …
Pic.52
Загрузчики и отладчики. Функции загрузчика Загрузчики и отладчики. Функции загрузчика Компилятор и к
Загрузчики и отладчики. Функции загрузчика Загрузчики и отладчики. Функции загрузчика Компилятор и компоновщик не могут знать точно, в какой реальной области памяти компьютера будет располагаться …
Pic.53
Отладчик — это программный модуль, который позволяет выполнить основные задачи, связанные с монитори
Отладчик — это программный модуль, который позволяет выполнить основные задачи, связанные с мониторингом процесса выполнения результирующей при­кладной программы. Этот процесс называется отладкой и …
Pic.54
Библиотеки подпрограмм как составная часть систем программирования Библиотеки подпрограмм как состав
Библиотеки подпрограмм как составная часть систем программирования Библиотеки подпрограмм как составная часть систем программирования Библиотеки подпрограмм составляют существенную часть систем …
Pic.55
Динамические библиотеки в отличие от традиционных (статических) библиотек подключаются к программе н
Динамические библиотеки в отличие от традиционных (статических) библиотек подключаются к программе не в момент ее компоновки, а непосредственно в ходе выполнения, как только программа затребовала ту …
Pic.56
Разработка программ в архитектуре «клиент—сервер» Разработка программ в архитектуре «клиент—сервер»
Разработка программ в архитектуре «клиент—сервер» Разработка программ в архитектуре «клиент—сервер» Среди всего множества компонентов прикладной программы можно было выделить две логически цельные …
Pic.57
В первую (серверную) составляющую такого приложения относят все методы, связанные с доступом к данны
В первую (серверную) составляющую такого приложения относят все методы, связанные с доступом к данным. Чаще всего их реализует сер­вер БД (сервер данных) из соответствующей СУБД (системы управления …
Pic.58
Разработка программ в трехуровневой архитектуре. Серверы приложений Разработка программ в трехуровне
Разработка программ в трехуровневой архитектуре. Серверы приложений Разработка программ в трехуровневой архитектуре. Серверы приложений Трехуровневая архитектура разработки приложений явилась …
Pic.59
Разделение клиентской части на две составляющих потребовало организации взаимодействия между этими с
Разделение клиентской части на две составляющих потребовало организации взаимодействия между этими составляющими. Разделение клиентской части на две составляющих потребовало организации …
Pic.60
Примеры современных систем программирования 1 Системы программирования компании Borland/lnprise Turb
Примеры современных систем программирования 1 Системы программирования компании Borland/lnprise Turbo Pascal. Pascal был предложен Н. Виртом в конце 70-х годов как хорошо структурированный учебный …
Pic.61
В Borland Delphi появились принципиальные изменения: В Borland Delphi появились принципиальные измен
В Borland Delphi появились принципиальные изменения: В Borland Delphi появились принципиальные изменения: новый язык программирования — Object Pascal; компонентная модель среды разработки, …
Pic.62
2 Системы программирования фирмы Microsoft 2 Системы программирования фирмы Microsoft Microsoft Visu
2 Системы программирования фирмы Microsoft 2 Системы программирования фирмы Microsoft Microsoft Visual Basic. Система программирования Microsoft Visual Basic является одним из эффективных средств для …
Pic.63
Microsoft Visual C++. Эта система программирования в настоящее время построена в виде интегрированно
Microsoft Visual C++. Эта система программирования в настоящее время построена в виде интегрированной среды разработки, включающей в себя все необходимые средства для разработки результирующих …
Pic.64
Концепция . NET - это не система программирования, а новейшая технология, предложенная фирмой Micros
Концепция . NET - это не система программирования, а новейшая технология, предложенная фирмой Microsoft с целью унификации процесса разработки ПО с помощью различных систем программирования. …
Pic.65
3 Системы программирования под ОС Linux и UNIX 3 Системы программирования под ОС Linux и UNIX Систем
3 Системы программирования под ОС Linux и UNIX 3 Системы программирования под ОС Linux и UNIX Системы программирования в составе ОС типа UNIX. Язык программирования Си появился как базовый язык …
Pic.66
Системы программирования проекта GNU Системы программирования проекта GNU Проект GNU был начат в 198
Системы программирования проекта GNU Системы программирования проекта GNU Проект GNU был начат в 1984 году. Идея проекта GNU заключается в свободном распространении всех программ. Программы …
Pic.67
Проект Borland Kylix Проект Borland Kylix В рамках проекта Borland Kylix компания Borland создала и
Проект Borland Kylix Проект Borland Kylix В рамках проекта Borland Kylix компания Borland создала и распространяет на рынке программного обеспечения одноименную СП, основанную на языке …
Pic.68
Библиотека построена в виде компонентов на основе иерархии классов языка Object Pascal. Библиотека п
Библиотека построена в виде компонентов на основе иерархии классов языка Object Pascal. Библиотека построена в виде компонентов на основе иерархии классов языка Object Pascal. В рамках этого проекта …
Pic.69
3 Разработка программного обеспечения для сети Интернет 3 Разработка программного обеспечения для се
3 Разработка программного обеспечения для сети Интернет 3 Разработка программного обеспечения для сети Интернет При осуществлении взаимодействия по сети двух компьютеров один из них выступает в …
Pic.70
Язык HTML. Программирование статических Web-страниц Язык HTML. Программирование статических Web-стра
Язык HTML. Программирование статических Web-страниц Язык HTML. Программирование статических Web-страниц Суть его достаточно проста: Интернет-сервер создает текст на языке HTML и передает его в виде …
Pic.71
Таким образом, всякий раз при новом обращении клиент получает новый текст HTML. Таким образом, всяки
Таким образом, всякий раз при новом обращении клиент получает новый текст HTML. Таким образом, всякий раз при новом обращении клиент получает новый текст HTML. CGI (общедоступный шлюзовой интерфейс) …
Pic.72
Кроме интерфейса CGI существуют и другие варианты интерфейсов, позволяю­щие динамически создавать HT
Кроме интерфейса CGI существуют и другие варианты интерфейсов, позволяю­щие динамически создавать HTML-код путем запуска на сервере приложений в ответ на действия клиента. Например, интерфейс ISAPI …
Pic.73
Текст на интерпретируемых языках, которые поддерживаются такими Web-технологиями, как ASP или РНР, п
Текст на интерпретируемых языках, которые поддерживаются такими Web-технологиями, как ASP или РНР, представляет собой часть текста обычных HTML-страниц со встроенными в них сценариями (script). Эти …
Pic.74
Все эти языки сценариев обладают присущими им характерными особенностями. Все эти языки сценариев об
Все эти языки сценариев обладают присущими им характерными особенностями. Все эти языки сценариев обладают присущими им характерными особенностями. Во-первых, они имеют мощные встроенные функции и …
Pic.75
Языки программирования Java и Java Script Языки программирования Java и Java Script Основная идея, о
Языки программирования Java и Java Script Языки программирования Java и Java Script Основная идея, отличающая язык Java от многих других ЯП, заключается в том, что Java не является полностью …
Pic.76
Одной из отличительных особенностей данного языка является использование специального механизма расп
Одной из отличительных особенностей данного языка является использование специального механизма распределения памяти (менеджера памяти), который должен сам организовывать своевременное выделение …
Pic.77
JBuilder. Необходимость иметь в составе архитектуры вычислительной системы клиентского компьютера ви
JBuilder. Необходимость иметь в составе архитектуры вычислительной системы клиентского компьютера виртуальную Java-машину, а также довольно высокие требования к производительности компьютеров на …
Pic.78
Вопросы для самопроверки Что такое трансляция, компиляция, транслятор, компилятор? Из каких процессо
Вопросы для самопроверки Что такое трансляция, компиляция, транслятор, компилятор? Из каких процессов состоит компиляция? Какую роль выполняет лексический анализ в процессе компиляции? Как могут быть …
Pic.79
Вопросы для самопроверки 7. Чем различаются таблица лексем и таблица идентификаторов? 8. Какие задач
Вопросы для самопроверки 7. Чем различаются таблица лексем и таблица идентификаторов? 8. Какие задачи в компиляторе решает семантический анализ? 9. Какие специфические функции выполняет текстовый …


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!