TURBO PASCAL |
Новости
|
Free PascalЧто такое Free Pascal, и с чем его едят?Free Pascal, иначе называемый FPC (Free Pascal Compiler) — это 32х-разрядный, кроссплатформенный компилятор языка Pascal. В настоящем обзоре я рассмотрю его основные характеристики и возможности. Free Pascal относится к категории свободного программного обеспечения (free software) и распространяется по лицензии GNU.
|
i386 — процессоры Intel серии 80x86, начиная с
80386;
m68k — процессоры Motorola серии m68k,
соответственно. | |
Для i386 поддерживаются следующие операционные системы:
BeOS
BSD Unix, а именно:
|
DOS32, т.е. DOS с расширителем для 32х-разрядного
защищенного режима. В версии компилятора
1.0.10 поддерживаются расширители:
|
Lunux
| OS/2
| QNX
| SunOS/Solaris
| Win32 | |
Для m68k:
Amiga
Atari
| PalmOS | |
Версия 1.1 (находящаяся в состоянии разработки нестабильная ветвь) также поддерживает:
OS/2 via EMX
Nowell Netware
| MacOS
| WDOSX DOS extender | |
Надо заметить, что поддержка некоторых целевых платформ в нестабильной версии находится в состоянии разработки и не вполне пригодна для серьезной работы. Также в ветке 1.1 идет разработка компиляции для Linux и других ОС на отличных от i386 и m68k типах процессоров, таких как PowerPC, Sparc и 64х-разрядные процессоры линии x86.
Непосредственно кросскомпиляция поддерживается, однако возникают серьезные проблемы. Так, например, мне не удалось скомпилировать ассемблерные части RTL для Linux используя версии binutils для DOS и Windows.
В целом возможности языка ориентированы на развитые "промышленные стандарты", а не на ANSI-стандарт языка, как GNU Pascal. Промышленным же стандартом языка Pascal в настоящее время является его диалект Object Pascal от фирмы Borland. Кроме того, Free Pascal поддерживает дополнительные расширения, нехарактерные для Borland Delphi.
Версия 1.0.10 поддерживает следующие возможности:
Object Pascal на уровне Delphi 3, и немного от Delphi 4:
| Дополнительные расширения:
|
В версии 1.1 добавлены средства языка из старших версий Borland Delphi:
Динамические массивы;
Интерфейсы. | |
В настоящий момент все перечисленные
средства языка работают удовлетворительно,
хотя можно выделить пару проблем: во-первых,
незавершено автопреобразование строк UNICODE,
и во-вторых, реализация интерфейсов
допускает несоответствие требованиям
модели COM — единственность ссылки на IUnknown
должна отслеживаться разработчиком.
Компиляция происходит весьма быстро, поскольку, как и положено компилятору Pascal, Free Pascal работает в один проход. Так, например, полная сборка самого компилятора на моем компьютере (Celeron 600) занимает около полутора минут.
Для сборки объектных файлов, получающихся в результате компиляции, вызывается внешний компоновщик — GNU ld (или ldw для Windows-платформы). Вообще, дистрибутив Free Pascal попросту включает в себя пакет GNU BinUtils, частью которого является ld. Также данный пакет включает в себя кроссплатформенный ассемблер as (asw), GNU make, компилятор ресурсов для Win32 — windres и другие программы.
Встроенный компоновщик планируется в следующих версиях компилятора, однако ход работ в этом направлении мне неизвестен.
Компилятор командной строки для платформ
i386 называется ppc386 (ppc386.exe для DOS и Windows). В
дистрибутив входит также "загрузчик"
(loader) компилятора, называемый, для любого
процессора, fpc (fpc.exe). Таким образом, на любой
платформе можно использовать в командной
строке fpc <имя файла>
.
Компилятор Free Pascal использует оптимизацию. Хотя она и уступает интеллектуальной оптимизации компилятора того же Delphi, однако рутинную, формальную оптимизацию FPC таки выполняет. В частности, можно указать целевой процессор, чтобы использовать расширенный набор команд, отсутствующих в i386, например, команды Pentium II. Для вычислений можно задействовать набор команд MMX или XMM.
В состав дистрибутива входят модули,
реализующие основную функциональность.
Конкретный состав модулей зависит от платформы.
Кроме ядра RTL, дистрибутив включает в себя
дополнительные модули, называемые "пакетами"
(packages), содержащие, например, интерфейс
к API SQL-сервера InterBase (пакет ibase
), или
функции работы с регулярными выражениями
(пакет regexpr
).
Также наличествует некоторый аналог VCL,
точнее ее ядра — основных классов и модулей
библиотеки. Библиотека называется FCL —
Free Component Library. Содержит как относительно
примитивные классы, a-la TStringList
, так и
классы для работы с базами данных.
Впрочем, модули FCL в настоящее время явно
недоработаны — содержат пробелы в
функциональности и некоторые баги.
Документация к версии 1.0.10 состоит из шести частей и распространяется в различных форматах, в том числе — исходники LaTeX. В состав дистрибутива входит документация в виде PDF и HTML. Ниже — описание частей документации.
Справочное руководство. Содержит
описание языка и модуля System
. Также
описывается модуль ObjPas
,
автоматически подгружаемый (аналогично System
)
при выборе режима компиляции Delphi
,
или ObjFPC
.
Руководство пользователя. Содержит описание процедуры инсталляции, ключей командной строки компилятора, IDE и утилит, входящих в состав дистрибутива, сообщений компилятора об ошибках, ошибках времени выполнения и так далее. Также содержит перечень стандартных модулей для различных платформ.
Руководство программиста. Описываются режимы компиляции, директивы компилятора, вопросы распределения памяти, компоновки, использования ассемблера и так далее.
Справочное руководство по стандартным модулям. Довольно подробно описываюся модули RTL, за исключением тех, которые являются интерфейсами к API операционных систем и их компонент.
Справочное руководство по FCL. В настоящий
момент содержит описание классов модуля Classes
.
По всей видимости, в дальнейшем будет
расти вместе с доработкой самой FCL. По
крайней мере, я на это надеюсь.
Руководство по использованию утилиты для автодокументации fpcdoc, входящей в состав дистрибутива.
Вместе с компилятором распространяется IDE (интегрированная среда разработки — Integrated Development Environment) текстового режима, похожее на IDE Turbo/Borland Pascal. В настоящее время, стабильные версии IDE, насколько мне известно, существуют только для DOS и Win32, работа над вариантами для других платформ еще не закончена. IDE содержит встроенную систему отладки — если я не ошибаюсь, с использованием отладчика GNU GDB, — и встроенную справку.
О стабильности IDE, к сожалению, приходится говорить с некоторой натяжкой — проблемы существуют. Однако, в целом пользоваться можно.
Также в состав дистрибутива входят следующие утилиты:
data2inc — преобразует произвольный
файл во включаемый файл (.inc ) для FPC,
где соответсвующие данные представлены в
виде константы-массива.
delp — очищает каталог от "временных"
файлов, возникающих при компиляции, таких
как объектные файлы модулей и | .ppu .
fpcmake — используется для подготовки
make-файлов для GNU make.
| fpdoc — генерирует документацию из
модулей Free Pascal в форматах HTML и LaTeX.
| fpmc — компилятор msg-файлов.
| fprcp — pascal-препроцессор для windres.
| h2pas и h2paspp — транслятор
заголовочных файлов C и C++ в модули Pascal.
| makeskel — утилита для подготовки
скелета xml-описания для fpdoc.
| ppdep — позволяет получить список
модулей, от которых зависит некий данный.
| ppudump — извлекает информацию из | .ppu- файлов.
ppufiles — то же, что ppdep, но не для
исходных модулей, как тот, а для | .ppu- файлов.
ppumove — позволяет собирать
библиотеки из | .ppu .
ptop — форматирование исходников.
| rstconv — конвертирует файлы | .rst ,
создаваемые компилятором для строк,
описанных как resourcestring , в формат GNU
gettext .po . |
Кроме вышеперечисленных, относящихся собственно к Free Pascal, утилит, в дистрибутив входит, как уже упоминалось, пакет GNU BinUtils.
В настоящий момент находится в процессе разработки RAD для Free Pascal — IDE Lazarus. Существует рабочая версия для Linux. Версия для Win32 пока не работает.
Free Pascal распространяется под лицензией GNU GPL (GNU General Public License), входящие в состав дистрибутива библиотеки модулей — под лиценизией GNU LGPL (GNU Lesser Public License). Таким образом, программы, написанные на Free Pascal, могут распространяться каким угодно образом, в том числе — и закрытым, а исходники самого компилятора доступны для изменения и использования с сохранением условий GNU GPL.
Скачать Free Pascal(1 часть)
Скачать Free Pascal(2 часть)
Скачать Free Pascal(3 часть)
Скачать Free Pascal(4 часть)
Скачать Free Pascal(5 часть)
Скачать Free Pascal(6 часть)
Архив разбит на 6 частей.
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |