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