Details

Title: Генератор систем автоматизации инструментирования программ: выпускная квалификационная работа магистра: направление 09.04.01 «Информатика и вычислительная техника» ; образовательная программа 09.04.01_15 «Технологии проектирования системного и прикладного программного обеспечения»
Creators: Онищук Михаил Петрович
Scientific adviser: Ицыксон Владимир Михайлович
Other creators: Новопашенный Андрей Гелиевич
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2020
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: инструментирование; txl; трансформация программного кода; синтез программного кода; предметно-ориентированный язык; instrumentation; source code transformation; source code synthesis; dsl
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Level of education: Master
Speciality code (FGOS): 09.04.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
Links: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2020/vr/vr20-763
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key: ru\spstu\vkr\6153

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Данная работа посвящена исследованию процесса инструментирования исходного текста программ и оценке возможностей для построения инструмента, позволяющего выполнить этот процесс для программного обеспечения, которое было создано с применением различных языков программирования. В данной работе был разработан подход к решению задачи инструменирования исходного текста, основывающийся на нисходящем однопроходном методе в условиях полной доступности информации для определения рабочего контекста, задаваемого конечным пользователем. Разработанный подход был реализован в виде прототипа генератора систем инструменирования, который далее был протестирован на нескольких языках, придерживающихся парадигме структурного программирования. Научная новизна данной работы заключается в рассмотрении и анализе возможности построения расширяемой многоязычной системы инструментирования исходных текстов программ, созданных с использованием различных языков программирования. Результаты проведенной работы могут быть использованы при практической реализации универсальной многоязычной автоматизированной системы инструментирования.

This work is devoted to the study of the process of instrumenting the source code of programs and evaluating the possibilities for building a tool that allows user to perform such process for software that was created using various programming languages. In this work, an approach was developed to solve the problem of instrumentation of the source text, based on a top-down single-pass method in conditions of complete availability of information to determine the working context specified by the end user. The developed approach was implemented as a prototype of an instrumentation system generator, which was further tested in several languages with structured programming paradigm. The scientific novelty of this work is to consider and analyze the possibility of building an extensible multi-language system for instrumentation of source texts of programs created using various programming languages. The results of this work can be used in the practical implementation of a universal multilingual automated instrumentation system.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
-> Internet Anonymous

Table of Contents

  • СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • 1. Обзор и анализ систем инструментирования программ
    • 1.1. Понятие инструментирования
      • 1.1.1. Пример задачи инструментирования
      • 1.1.2. Достоинства и недостатки различных вариантов инструментирования
    • 1.2. Обзор существующих средств инструментирования
      • 1.2.1. Критерии обзора
      • 1.2.2. GCC Gcov
      • 1.2.3. Testwell CTC++ Preprocessor
      • 1.2.4. BullseyeCoverage
      • 1.2.5. Google Web Tracing Framework
      • 1.2.6. Froglogic Squish Coco CoverageScanner
    • 1.3. Итоги
    • 1.4. Выводы
  • 2. Постановка задачи и выбор средств реализации
    • 2.1. Задача инструментирования исходных текстов программ
      • 2.1.1. Требования к разрабатываемому подходу
      • 2.1.2. Требования к прототипу
    • 2.2. Анализ задач и выбор подходов к решению
      • 2.2.1. Выполнение трансформаций текста программ
      • 2.2.2. Обработка деревьев разбора
      • 2.2.3. Контексты инструментирования
      • 2.2.4. Ограничения выбранного подхода
    • 2.3. Выводы
  • 3. Проектирование генератора систем инструментирования
    • 3.1. Принцип работы системы инструментирования
      • 3.1.1. Аннотация грамматики языка
      • 3.1.2. Фрагменты программного кода
      • 3.1.3. Правила инструментирования
      • 3.1.4. Пользователи системы
      • 3.1.5. Выходные артефакты генератора
      • 3.1.6. Обработка исключительных ситуаций
    • 3.2. Выводы
  • 4. Реализация генератора систем инструментирования
    • 4.1. Работа системы инструментирования
      • 4.1.1. Аннотация грамматики языка
      • 4.1.2. Фрагменты программного кода
      • 4.1.3. Правила инструментирования
      • 4.1.4. Интерфейс командной строки
      • 4.1.5. Обработка исключительных ситуаций
    • 4.2. Синтез цепочек TXL функций
      • 4.2.1. Функции сбора информации
      • 4.2.2. Функции фильтрации по контексту
      • 4.2.3. Функции уточнения контекста
      • 4.2.4. Функции инструментирования
      • 4.2.5. Вспомогательные TXL функции
    • 4.3. Выводы
  • 5. Тестирование генератора систем инструментирования и анализ результатов
    • 5.1. Методика испытаний
    • 5.2. Программа испытаний
      • 5.2.1. Языки программирования
      • 5.2.2. Проекты с открытым исходным кодом
    • 5.3. Протокол испытаний
      • 5.3.1. Java
      • 5.3.2. Python
      • 5.3.3. C++
      • 5.3.4. Object Pascal
    • 5.4. Выводы
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Usage statistics

stat Access count: 9
Last 30 days: 0
Detailed usage statistics