Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
• Заказать продвижение сайта
• Программа для рисования блок-схем
• Инженерный калькулятор онлайн
• Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 58097
Invision Power ... 57353
Организация зап... 57157
Модуль Forms 56355
Создание отчето... 54775
Приложение «Про... 54159
Подключение Mic... 53953
Оператор выбора... 53739
ТЕХНОЛОГИИ ДОСТ... 50639
Программируемая... 47072
Пример работы с... 46400
Имитационное мо... 46392
21 ошибка прогр... 41478
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,006
новичок: margaritamoroz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование автовокзала + Отчет + Блок схема
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка
Моделирование работы аэропорта на GPSS + Пояснительная записка

Реклама

Что такое Free Pascal, и с чем его едят?
Что такое Free Pascal, и с чем его едят?

Free Pascal, также известный как FPC (free pascal compiler), а ранее как FPK - свободно распространяемый в исходных текстах 32-разрядный кроссплатформенный компилятор языка Pascal.
Кроссплатформенность

Первое, что впечатляет, это его кроссплатформенность: поддерживаются не две-три операционных системы, а сразу шесть ОС и два типа процессоров. На базе i386 - Win32, DOS, Linux, FreeBSD и OS/2. На базе процессора Motorola 680x0 - AmigaOS.

Что это значит? Это значит, что под все эти операционные системы вы можете писать программы, пользуясь одним языком и одной библиотекой базовых функций. А зачастую, вообще, для переноса программы или библиотеки достаточно ее перекомпилировать. Думаю, что особенно приятно должно быть инженерам и научным работникам - если не вдаваться в интерфейсные заморочки, любые расчеты можно написать один раз, не задумываясь над тем, под какой операционной системой они будут выполняться.
Надежность и удобство

Существует мнение, что бесплатные и открытые програмные продукты менее надежны, чем коммерческие. К сожалению, в большинстве случаев это действительно так.

Однако и здесь Free Pascal является приятным исключением. Лично мне пришлось столкнуться в лоб только с одним глюком, причем только тогда, когда я использовал возможность Free Pascal'я работать не с родным для него GNU-ассемблером, а с TASM. Bug-list на сайте freepascal.org весьма обширен, однако подавляющее большинство багов обычному программисту никогда не встретится. Кроме того, в отличие от коммерческих систем эти ошибки не скрываются и исправляются командой разработчиков.

Сообщения об ошибках, выдаваемые компилятором - четкие и информативные, с указанием номера строки и позиции в ней, где обнаружена ошибка. Сделано это в таком формате, что например, редактор UltraEdit-32 позволяет автоматически перейти к нужной строке (кстати, очень хороший редактор для программирования, жаль только, что не бесплатный).

Компилятор сам управляет процессом ассемблирования и сборки, так что пользоваться им может и начинающий программист, привыкший к интегрированным средам.
Модули и библиотеки

Базовая библиотека включает в себя стандартные модули, реализующие управление памятью, работу с файловой системой, управление консольным вводом/выводом, работу со строками и датами, математические функции, обработку исключений и интерфейс к API поддерживаемых операционных систем. При этом все вышеперечисленное, кроме API, для различных систем реализовано единообразно a-la Borland Pascal.

Если сравнивать с Turbo Pascal, то мы видим модули CRT, DOS, Graph (реализует работу с VGA-графикой), Strings, Objects. Сравнивая с Borland Delphi, видим соответствующие модули SysUtils и Classes. Для работы с API в базовой библиотеке предусмотрены модули Linux, Windows и GO32 (API DOS-расширителя GO32v2).

Существуют также дополнительные библиотеки модулей, часть из которых включается в дистрибутив Free Pascal, а часть - нет.

Несколько библиотек, находящихся пока в состоянии разработки, предназначено для объектной реализации GUI-интерфейса для Windows и XWindow.

Существует аналог Turbo Vision - Free Vision, однако пока он недоступен: первоначальная версия содержала много кода от Borland, и сейчас перерабатывается для лицензионной чистоты.

В процессе разработки библиотека доступа к базам данных. Предполагаются InterBase, MySQL и Postgress. Сейчас пока можно с ними работать только через их API.

В дистрибутив входят модули, облегчающие написание CGI-программ - разбор HTTP-заголовка и т.д., модули упаковки и распаковки файлов в формате zip, работа с SVGA-графикой и OpenGL, и многое другое.
Лицензия

Free Pascal распространяется на условиях GNU General Public License (GNU GPL). Модули и библиотеки распространяются на условиях GNU Library General Public License (GNU LGPL), последняя версия данной лицензии называется GNU Lesser Public License.

Ознакомиться с ними и узнать, что за зверь GNU можно на gnu.org или gnu.ru.
Язык

Впечатлившись кроссплатформенностью, мы скачиваем документацию, дабы поподробнее узнать о возможностях компилятора. Обычно freeware компиляторы особыми изысками не балуют - совместимость с Turbo Pascal 7.0 практически максимум их притязаний. Конечно, и TP - шаг вперед по сравнению со стандартами Pascal и Extended Pascal, однако мы живем в мире уже других стандартов, так называемых "промышленных". "Промышленный стандарт" на Pascal сейчас - это последняя версия Borland Delphi, то есть Object Pascal со всеми прелестями классов и настоящего объектного программирования.

Так вот, Free Pascal поддерживает классы и RTTI. Поддерживает также перегрузку (overloading) процедур и функций и обработку исключений в try-блоках. Поддерживает он и длинные строки (тип ansistring) по модели Delphi.

В общем, до Delphi Free Pascal "не дотягивает" совсем чуть-чуть: отсутствует поддержка динамических массивов, "широкие строки" (WideString) для работы с Unicode, и поддержка OLE Automation. Однако все эти возможности группа разработчиков намерена включить уже в следующий релиз - версию 1.2. Впрочем, я думаю, что с OLE Automation они скорее всего подзадержатся, поскольку это нужно только на одной платформе. Поживем, увидим.

Зато присутствуют такие вкусности, как перегрузка операторов (+, -, *, /, **, =, , =, :=), последний обеспечивает также скрытое преобразование типов, посему с ним надо обращаться осторожно. Inline- процедуры, функции и операторы, причем не нужно извращаться, как в Turbo Pascal, и писать в машкодах. Правда, действуют они только в пределах модуля - вне его вызываются как обычные.
IDE и утилиты

А теперь о грустном - IDE, можно сказать, отсутствует. Для Win32 и DOS существует консольная оболочка fp, построенная по образу и подобию Turbo Pascal 7.0. Единственное достоинство этой оболочки - декларированная интеграция с gdb - GNU-отладчиком. Сам я этим отладчиком не пользуюсь, однако в конференциях встречал жалобы, что интеграция эта весьма несовершенна.

Отладчик прилагается в дистрибутиве (см. выше). К сожалению, GNU-отладчик не ориентирован на Free Pascal, зато Free Pascal ориентирован на него. Лично я отладчиком стараюсь не пользоваться, предпочитая "метод вилки".

Ассемблер и компоновщик - GNU as и ld (для Win32 - asw и ldw, соответственно).

Из прочих утилит, прилагаемых к компилятору, отмечу h2pas - переводчик С-шных заголовочных файлов .h в модули .pas; и компилятор ресурсов windres - аналог brcc32 из поставки Delphi.

Должен заметить, что ситуация с IDE не такая безнадежная, как может показаться. Существуют отдельные проекты, некоторые из которых весьма неплохи, однако характеризуются хотя бы одним из трех недостатков: написаны не на Free Pascal (хороший пример - редактор-оболочка Dev-Pascal, написанный на Delphi), не распространяются в исходниках, или недостаточно отлажены, попросту говоря, глючат. Очевидно, любой из этих причин достаточно, чтобы не вносить эти инструменты в дистрибутив.
Справка

Справка Free Pascal распространяется с дистрибутивом в двух форматах: PDF и HTML, при желании можно скачать отдельно справку и в других форматах. И в том и в другом виде она хорошо структурирована и прекрасно читается. Состоит из четырех книг:

"Руководство программиста", которое описывает различные аспекты программирования, такие как директивы компилятора, использование ресурсов, использование встроенного ассемблера и т.д.

"Справочник", где описывается язык Pascal в его Free Pascal диалекте и содержимое модулей System и ObjPas.

"Справочник модулей". Описываются модули: CRT, DOS, DXELoad, Emu387, GetOpts, GPM, GO32, Graph, HeapTrc, IPC, Linux, Math, MMX, MSMouse, Objects, Ports, Printer, Sockets, Strings, SysUtils.

"Руководство пользователя", где рассматриваются такие вопросы, как инсталляция Free Pascal, ключи командной строки, файл настроек и проч.
Резюме

Надеюсь, данный краткий обзор заинтересовал вас и станет первым шагом на пути к обстоятельному знакомству с одним из интереснейших открытых проектов - кроссплатформенным компилятором Free Pascal.
Опубликовал Kest November 12 2008 23:52:24 · 0 Комментариев · 9211 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
• Фолловь меня в Твиттере!
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
XPmenu
MpegPlay
Библия для програ...
Delphi 2006 - Спр...
ADVstatusbar
Трассировка прово...
C# 2005 и платфор...
Image Browser [Ис...
Cooltray
Разработка Web-пр...
Шейдеры в Delphi
Анимированное поя...
SODA [Исходник на...
Система баннеро...
IpEditAdress
Шаблон для новост...
Время загрузки ...
Indy in Depth Глу...
Cтатьи Королевств...
Matrix2D

Топ загрузок
Приложение Клие... 100265
Delphi 7 Enterp... 74760
WAV 1.7.1" class="side">Converter AMR<-... 20015
Borland C++Buil... 10459
GPSS World Stud... 8749
Borland Delphi ... 7441
Turbo Pascal fo... 6866
Visual Studio 2... 4864
Калькулятор [Ис... 3828
FreeSMS v1.3.1 3481
Случайные статьи
Убедитесь, что вы ...
Резюме
Изготовление монок...
Фил ьтрация группо...
Программирование: ...
Гостевая книга шаг...
blueyonder
Идентификатор подс...
Направление текста
Основы
прокси-службу, SID...
Концепция программ...
Машинное представл...
IPSec
Основные функции ш...
(Request Security)...
Руководство считае...
Invalid string length
Классы и IDL
Работа с изображен...
Состояние потока и...
Выбор доменного им...
Виджеты на основе ...
ГЛАВА 2 БОЛЕЕ ДЕТ...
Приложения пакетно...
Статистика



Друзья сайта
Программы, игры


  • www.asp24.ru
  • ubiquiti nanostation loco купить m5
  • asp24.ru
  • Частный мастер изготовления печатей, штампов
  • Изготовление дверей. Изготовление пластиковых окон. Изготовление микросхем
  • 2shtampa.ru
Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?