Детальная информация

Название: Инструмент преобразования исходного кода на языке C++ стандарта "ISO/IEC 14882:2014" в стандарт "ISO/IEC 14482:2003": магистерская диссертация: 09.04.01
Авторы: Илларионов Юлий Сергеевич
Научный руководитель: Ицыксон Владимир Михайлович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2017
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: Си (C); Интерфейсы; Коды
УДК: 004.438(043.3); 004.51(043.3); 004.056.55(043.3)
Тип документа: Выпускная квалификационная работа магистра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Магистратура
Код специальности ФГОС: 09.04.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/2/v17-4125
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: RU\SPSTU\edoc\45050

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

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

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • ВВЕДЕНИЕ
  • 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

Статистика использования

stat Количество обращений: 247
За последние 30 дней: 0
Подробная статистика