Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БЖД / Дипломный проект Калинин Е.А. 10.05.11 (финал).doc
Скачиваний:
78
Добавлен:
19.03.2015
Размер:
2.33 Mб
Скачать

1.3.2Компиляторы

Компиля́тор

  • Программаили техническое средство, выполняющеекомпиляцию.

  • Машинная программа, используемая для компиляции.

  • Программа, переводящая текст программы на языке высокого уровняв эквивалентную программу намашинном языке.

  • Программа, предназначенная для трансляции высокоуровневого языка в абсолютный кодили, иногда, в язык ассемблера. Входной информацией для компилятора (исходный код) является описание алгоритма или программа напроблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма намашинно-ориентированном языке(объектный код).

  • Программа выполняющая (после трансляции) компоновку программы.

Компиляция

  • трансляция программы на язык, близкий к машинному и последующая её компоновка.

  • трансляция программы, составленной на исходном языке, в объектный модуль (осуществляется компилятором) и последующая её компоновка в готовый к использованию программный модуль.

  • трансляция программы, составленной на исходном языке, и последующая её компоновка в программу на некоем машинонезависимом низкоуровневом интерпретируемом коде (как например в случае языка Java).

1.3.3 Компилятор gnu Compiler Collection

GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторовдля различныхязыков программирования, разработанный в рамкахпроекта GNU. GCC являетсясвободным программным обеспечением, распространяетсяфондом свободного программного обеспечения(FSF) на условияхGNU GPLиGNU LGPLи является ключевым компонентомGNU toolchain. Он используется как стандартный компилятор для свободныхUNIX-подобных операционных систем. Изначально названныйGNU C Compiler, он поддерживал только язык Си. Позднее, GCC был расширен для компиляции исходных кодов на таких языках программирования какC++,Objective-C,Java,ФортраниAda.

Внешний интерфейс GCC является стандартом для компиляторов на платформе UNIX. Пользователь вызывает управляющую программу, которая называется gcc. Она интерпретирует аргументы командной строки, определяет и запускает для каждого входного файла свои компиляторы нужного языка, запускает, если необходимо, ассемблерикомпоновщик.

Компилятор каждого языка является отдельной программой, которая получает исходный тексти порождает вывод наязыке ассемблера. Все компиляторы имеют общую внутреннюю структуру: front end, который производитсинтаксический разбори порождаетабстрактное синтаксическое дерево, и back end, который конвертирует дерево вRegister Transfer Language(RTL), выполняет различные оптимизации, затем порождает программу на языке ассемблера, используя архитектурно-зависимоесопоставление с образцом. GCC почти полностью написан наСи.

1.3.4 Компилятор g++

g++ — традиционное обозначение GNU C++, свободно распространяемого компилятора языка C++. Является частью GCC — коллекции компиляторов GNU. На операционных системах Unix, команда gcc обычно используется для вызова компилятора GCC, как и команда g++. По умолчанию язык программирования C или C++ определяется по расширению компилируемого файла(см. g++ --help описание параметра -x). Но при этом G++ все равно является компилятором, а не просто препроцессором. G++ строит объектный код напрямую из исходного C++ кода, без использования промежуточной С-версии (в отличие от некоторых компиляторов, которые создают объектный код Си из исходников, написанных на C++). Это позволяет получать более полную и точную информацию о работе программы при отладке (например, при использовании GDB).

1.3.5 КомпиляторIntelC++compiler

Intel C++ compiler — оптимизирующий компилятор, разрабатываемый фирмой Intel для процессоров семейств x86, x86-64 и IA-64. Главным достоинством компилятора являются выполняемые им высокоуровневые, а также целевые оптимизации под процессоры Intel. Компилятор работает под ОС Linux, Windows, Mac OS X.

Основные возможности:

  • Высокоуровневая оптимизация

  • Межпроцедурная оптимизация

  • Автоматическое распараллеливание кода

  • Векторизация для SSE, SSE2, SSE3, SSE4

  • Оптимизация с учетом профильной информации (англ. Profile-guided optimization)

Компилятор поддерживает стандарт OpenMP 3.0 для написания параллельных программ. Также содержит модификацию OpenMP под названием Cluster OpenMP, при помощи которой можно запускать OpenMP приложения на кластерах используя MPI.

Существует 4 продукта от Intel, включающих компилятор: Intel Parallel Studio, Intel C++ Compiler Professional Edition, Intel Compiler Suite package, Intel Cluster Toolkit (Compiler Edition).

К недостаткам Linux версии компилятора можно отнести частичную несовместимость с gnu-расширениями языка Си (поддерживаемые компилятором GCC), что может вызвать проблемы при компиляции некоторых программ.

Соседние файлы в папке БЖД