Вход

Обзор и тестирование компиляторов С++

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 591986
Дата создания 2014
Страниц 26
Мы сможем обработать ваш заказ (!) 20 сентября в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 600руб.
КУПИТЬ

Содержание

Содержание
Введение 3
1.1. Процесс компиляции 4
1.2. Обзор компиляторов 7
1.2.1. Visual C 7
1.2.2. GNU Compiler Collection 8
1.2.3. Clang 10
Глава 2. Обзор задач 11
2.1. Накладные расходы 11
2.2. Тестовые задачи 12
Глава 3. Результаты тестирования 14
3.1. Результаты бенчмарка 1 14
3.2. Результаты бенчмарка 2 20
Заключение 23
Список литературы 24
Приложение 25
Листинг 1. benchmark_eratosthenes.cpp 25
Листинг 2. benchmark_qs.cpp 26


Введение

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

Фрагмент работы для ознакомления

Заключение
В результате данной работы было произведено тестирование компиляторов: clang 3.4, clang 3.2, gcc 4.8, gcc 4.6, cl 18, cl 16 на тестовых задачах «Решето Эратосфена» и быстрая сортировка массива чисел типа double. Измерялось время выполнения кода, сгенерированного компилятором без включения оптимизации во время компиляции и с включением различных оптимизаций.
На данных тестовых задачах видно, что при включенных опциях оптимизации все рассматриваемые компиляторы генерировали код, который выполнялся быстрее, чем без них.
В процессе проведенных в работе исследований получены следующие результаты:
1. задача «Решето Эратосфена»
a) в качестве массива в реализации использован vectorbool:
o опция оптимизации O1 наилучший результат показывает gcc 4.8;
o опция оптимизации O2 и O3 наилучший результат показывает clang 3.4
b) в качестве массива в реализации использован vectorchar:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 18.
2. Быстрая сортировка массива:
с оптимизацией O1, O2 и O3 быстрее остальных отработал код, сгенерированный cl 16.

Как и ожидалось, компиляторы от Microsoft неплохо проявили себя в тестах, даже выиграв второй тест (это может объясняться тем, что компиляторы Microsoft оптимизированы под Windows, а gcc и clang являются кроссплатформенными).

Список литературы

Список литературы

1. Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991
2. Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, -2 ed. 2007
3. Microsoft Visual Studio 2010 [Электронный ресурс] – Режим доступа:
http://msdn.microsoft.com/ru-ru/library/vstudio/52f3sw5c(v=vs.100).aspx
4. GCC, the GNU Compiler Collection [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/
5. The LLVM Compiler Infrastructure [Электронный ресурс] – Режим доступа: http://llvm.org/
6. clang: a C language family frontend for LLVM [Электронный ресурс] – Режим доступа: http://clang.llvm.org/
7. The LLVM Target-Independent Code Generator [Электронный ресурс] – Режим доступа: http://llvm.org/docs/CodeGenerator.html
8. Sedgewick, Robert (1992). Algorithms in C . Addison-Wesley. ISBN 0-201-51059-6. , p. 16
9. GCC 4.6 Release Series Changes, New Features, and Fixes [Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.6/changes.html
10. GCC 4.8 Release Series Changes, New Features, and Fixes[Электронный ресурс] – Режим доступа: https://gcc.gnu.org/gcc-4.8/changes.html

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00345
© Рефератбанк, 2002 - 2024