Новость из категории: Информация

Свободный паскаль: компилятор fpc

Содержание:
1. Свободный паскаль: Free Pascal и GNU Pascal;
2. Свободный паскаль: компилятор fpc; (Вы читаете данный раздел)
3. Свободный паскаль: IDE fp;
4. Свободный паскаль: стандартная библиотека и утилиты;
5. Свободный паскаль: шаблоны классов в Object Pascal;
6. Свободный паскаль: GNU Pascal
Компилятор fpc

Свободный паскаль: компилятор fpc

Диалект Паскаля, который лежит в основе компилятора fpc, практически совпадает со стандартом Object Pascal, который использовался в Delphi 7 (он же «язык Delphi»). Компилятор может работать в различных режимах совместимости, эмулируя поведение компиляторов Turbo Pascal 7.0 (опция -Mtp), Delphi 7 (-Mdelphi) или Macintosh Pascal (-Mmacpas). Имеется также собственный диалект Free Pascal (очень похожий на Turbo Pascal - опция -Mfpc) и комбинированный режим Free Pascal + Object Pascal (-Mobjfpc), который используется чаще всего. Компилятор может генерировать как 32-, так и 64-битный код.

Возможности оптимизации в fpc достаточно скромны по сравнению с компиляторами GCC. Тем не менее доступны четыре уровня оптимизации по скорости (от -O- до -O3, где режим -О- означает отсутствие оптимизации и аналогичен -О0 в GCC) и оптимизация по размеру кода. Оптимизация для конкретной процессорной архитектуры ограничивается различными видами процессоров Pentium и наборами инструкций SSE, SSE2 и SSE3. Доступны также развертывание циклов (loop unrolling) и некоторые другие оптимизации (fpc -i показывает полный список).

Скорость компиляции в сравнении с компиляторами С и С++ из GCC - очень большая. Компилятор способен «пережевать» мегабайты кода за считанные секунды. В Linux эти показатели серьезно портит компоновщик ld, который печально известен своей медлительностью. Именно поэтому в следующие версии Free Pascal планируют включить собственный линкер для Linux. Скорость компиляции объясняется тем, что все компиляторы паскаля традиционно являются однопроходными, тогда как компиляторы С и С++ могут проходить по коду несколько раз. Минусом такого подхода является меньшая способность к оптимизации -программы на Pascal, как правило, работают немного медленнее аналогов на С/С++. Эта разница редко превышает несколько процентов и в большинстве задач незаметна, но критические вычислительные ядра все же лучше не писать на Pascal. В то же время компилятор fpc использует меньше памяти, чем gcc и особенно g++ (http://shootout.alioth.debian.org).

Рейтинг статьи

Оценка
3/5
голосов: 1
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх