Details

Title Инструмент преобразования исходного кода на языке C++ стандарта "ISO/IEC 14882:2014" в стандарт "ISO/IEC 14482:2003": магистерская диссертация: 09.04.01
Creators Илларионов Юлий Сергеевич
Scientific adviser Ицыксон Владимир Михайлович
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint Санкт-Петербург, 2017
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects Си (C) ; Интерфейсы ; Коды
UDC 004.438(043.3) ; 004.51(043.3) ; 004.056.55(043.3)
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 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/2/v17-4125
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key RU\SPSTU\edoc\45050
Record create date 10/18/2017

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

Магистерская диссертация посвящена рассмотрению возможностей автоматизации процессов миграции исходного кода, написанного согласно стандарту C++14 в исходный код в рамках стандарта C++03. В работе произведен краткий обзор отличий указанных стандартов, а также рассмотрены способы автоматического преобразования части нововведений C++14 в аналогичные по функциональности конструкции из C++03. Также в работе кратко описаны возможности по созданию инструментов для преобразования исходного кода, предоставляемых программным интерфейсом “Clang LibtTooling".

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • ВВЕДЕНИЕ
  • 1 Актуальность работы
    • 1.1 Современное состояние языка C++
    • 1.2 Существующие примеры миграции кода
      • 1.2.1 Компиляторы в JavaScript
      • 1.2.2 Программный пакет ROSE
      • 1.2.3 DMS Software Reengineering Toolkit
      • 1.2.4 Компиляторы SystemC
  • 2 Поиск отличий в стандартах языка
    • 2.1 Выбор инструментария
    • 2.2 Список нововведений C++14 относительно C++03
      • 2.2.1 Семантика переноса
      • 2.2.2 Инициализация полей
      • 2.2.3 Шаблоны с переменным числом аргументов
      • 2.2.4 Списки инициализации
      • 2.2.5 Универсальная инициализация
      • 2.2.6 Статическая диагностика
      • 2.2.7 Вывод типов
      • 2.2.8 Альтернативный синтаксис функции
      • 2.2.9 Лямбда-выражения
      • 2.2.10 Угловые скобки
      • 2.2.11 Аргументы шаблона по-умолчанию для функций
      • 2.2.12 Псевдонимы шаблона и типа
      • 2.2.13 Внешние шаблоны
      • 2.2.14 Константа нулевого указателя
      • 2.2.15 Улучшенные перечисления
      • 2.2.16 Стандартный синтаксис атрибутов
      • 2.2.17 Обобщённые константные выражения
      • 2.2.18 Управление выравниванием
      • 2.2.19 Делегация конструкторов
      • 2.2.20 Наследование конструкторов
      • 2.2.21 Изменения в запрете явного преобразования
      • 2.2.22 Новые строковые литералы
      • 2.2.23 <<Необработанные>> строковые литералы
      • 2.2.24 Пользовательские литералы
      • 2.2.25 Явное указание методов по-умолчанию
      • 2.2.26 Явный запрет использования методов
      • 2.2.27 Получение размера полей без создания экземпляра
      • 2.2.28 <<Прозрачные>> пространства имен
      • 2.2.29 Улучшенные объединения
      • 2.2.30 Циклы по коллекции
      • 2.2.31 Явное замещение виртуальных функций и финальность
      • 2.2.32 Литералы двоичных чисел
      • 2.2.33 Шаблоны переменных
      • 2.2.34 Разделители разрядов
  • 3 Рассмотрение возможностей автоматической миграции
    • 3.1 Clang, как инструмент работы с исходным кодом
      • 3.1.1 Возможности программного интерфейса LibTooling
    • 3.2 Описание способов миграции
      • 3.2.1 Инициализация полей
      • 3.2.2 Универсальная инициализация
      • 3.2.3 Вывод типов
      • 3.2.4 Лямбда-выражения
      • 3.2.5 Псевдонимы шаблона и типа
      • 3.2.6 Улучшенные перечисления
      • 3.2.7 Делегация конструкторов
      • 3.2.8 Наследование конструкторов
      • 3.2.9 Изменения в запрете явного преобразования
      • 3.2.10 <<Необработанные>> строковые литералы
      • 3.2.11 Пользовательские литералы
      • 3.2.12 Явное указание методов по-умолчанию
      • 3.2.13 Явный запрет использования методов
      • 3.2.14 Получение размера полей без создания экземпляра
      • 3.2.15 Циклы по коллекции
      • 3.2.16 Явное замещение виртуальных функций и финальность
      • 3.2.17 Литералы двоичных чисел
      • 3.2.18 Шаблоны переменных
      • 3.2.19 Разделители разрядов
  • 4 Тестирование
    • 4.1 Реализация инструментов миграции
    • 4.2 Методика и результаты тестирования
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ А. Таблица нововведений стандарта C++11
  • ПРИЛОЖЕНИЕ Б. Таблица нововведений стандарта C++14

Access count: 249 
Last 30 days: 0

Detailed usage statistics