|
Читать или не читать?..Начнем, пожалуй, с оператора if...then...else. Если вы не программируете на Паскале и в обозримом будущем не собираетесь этим заниматься, то, скорее всего, все, о чем здесь пойдет речь, будет для вас малопригодным. Если вы уже знакомы с Free Pascal и применяете этот компилятор, разрабатывая собственные программы, то для вас, должно быть, нижеследующее повествование будет скучным. Для всех остальных, надеюсь, рассказ о Free Pascal окажется полезным. Не зря же говорят, что чем больше информации, тем выше уровень свободы( или энтропии?..). Помимо всего прочего, Free Pascal потенциально может быть интересен незрячим программистам, поскольку позволяет создавать современные и качественные программы, используя компилятор в режиме командной строки. Отсутствие платы за лицензию и открытость исходных кодов Free Pascal дают возможность использовать его в школах и университетах. Также Free Pascal может заинтересовать тех разработчиков, которых волнуют вопросы юридической чистоты создаваемых программных продуктов. НапутственноеРазговор наш пойдет о компиляторе Free Pascal Compiler (FPC), который распространяется группой разработчиков по общественной лицензии GNU. Лицензия эта подразумевает, в частности, что для Free Pascal открыты и общедоступны исходные коды, а их распространение и модификация (при условии соблюдения лицензии) ничем не ограничены. Входящие в состав дистрибутива пакеты и библиотеки имеют лицензию LGPL (GNU Lesser Public License), что позволяет распространять скомпилированные программы на любых (в том числе и коммерческих) условиях. В дополнение к этому, Free Pascal можно получить совершенно бесплатно, то есть даром (вернее, на что вам придется раскошелиться, так это на оплату соединения через интернет для загрузки дистрибутива на свой компьютер). По давно устоявшейся традиции, разработчики этого программного обеспечения ничего вам не гарантируют, дистрибутив и исходные коды отдают вам в том виде, каком они существуют (то есть если в них есть ошибки, то они там есть... если нет ошибок, то нет...). Все, что вы будете делать с программным обеспечением, вы будете делать на свой страх и риск. Следуя этой традиции, добавлю, что и вся эта статья предоставлена вам на таких же условиях. Примечание: все необходимые ссылки собраны в заключительном разделе этой статьи. К чему он пригоден?..Читая документацию по Free Pascal, то и дело натыкаешься на слово "Delphi". Речь идет о совместимости Free Pascal с Delphi, причем это настолько завораживает, что поначалу пояснения о том, что совместимость поддерживается лишь на уровне языка программирования, не воспринимаются всерьез. Как всегда, хочется всего сразу и бесплатно. Так что если для вас программирование в среде Delphi сводится к "мышиной" возне с формами и "кидании" компонентов из одного угла экрана в другой, то, подозреваю, Free Pascal вас разочарует. Ничего подобного Free Pascal не содержит. Вернее сказать, среда быстрой разработки приложений -- это другой программный продукт и, следовательно, тема для другого разговора. Здесь же начнем с того, что Free Pascal -- это 32-разрядный компилятор. Мощный, быстрый (компиляция выполняется за один проход), многоплатформенный. Он поддерживает и расширяет синтаксис промышленных стандартов языка Паскаль: Turbo Pascal 7.0 и Object Pascal (тот самый, который используется в качестве языка программирования в среде Delphi). Для Turbo Pascal декларируется почти полная совместимость, а для Delphi - совместимость с большинством версий, включая Delphi 7 (классы, rtti, исключения, ansistrings, widestrings, интерфейсы). В дистрибутиве для Apple предусмотрен режим совместимости с Mac Pascal. Кроме того, Free Pascal реализует перегрузку функций, перегрузку операторов, глобальные свойства и некоторые другие самобытные возможности. Free Pascal поддерживает компиляцию кода для процессоров Intel, начиная с i386, AMD64 or EMT64, PowerPC, SPARC, Intel ARM. На сегодняшний день существуют или находятся в разработке релизы Free Pascal для следующих операционных систем: Dos (с поддержкой 32-разрядных расширений), Linux, Mac OS X/Darwin, Mac OS classic, Amiga (только версия 0.99.5), Win32, os/2, FreeBSD, BeOS, Solaris , PalmOS , NetBSD, Netware, OpenBSD, MorphOS. Сейчас последней и рекомендуемой к использованию является версия 2.0.2, вышедшая в ноябре 2005 г. Для каждой из поддерживаемых платформ существует свой дистрибутив Free Pascal. В дальнейшем речь пойдет о пакете, предназначенном для семейства ОС Win32. На уровне исходного кода приложения, разработанные при помощи Free Pascal, являются переносимыми (портируемыми) между поддерживаемыми платформами. Степень переносимости тем выше, чем больше приложение ориентировано на использование входящих в состав Free Pascal модулей (имеются в виду модули, общие для всех поддерживаемых платформ). Free Class LibraryВернемся еще раз к вопросу совместимости Free Pascal и Delphi. Полагаю, что справедливей будет говорить о легкости/трудности перехода от Delphi к Free Pascal и легкости/трудности переноса существующих исходных кодов. При таком подходе нельзя не сказать о библиотеке Free Class Library (FCL), входящей в состав дистрибутива Free Pascal. Эта библиотека содержит аналоги невизуальных компонентов Delphi. Здесь широко представлены средства доступа к различным базам данных (в том числе Interbase, mysql, ODBC и др.), средства работы с XML и средства работы с интернет. В некоторых случаях совместимость с компонентами Delphi доведена вплоть до совпадения имен классов и методов. ДокументацияВ дистрибутив Free Pascal для Win32 включена документация на английском языке, представленная в формате pdf. На сайте разработчиков также доступна он-лайн документация и архивы с документацией в формате html и в виде обычного текстового файла. В состав документации входят руководство пользователя, руководство программиста, справочник по диалекту языка Паскаль, который поддерживается Free Pascal, справочник по опциям командной строки,справочник по модулям и функциям встраиваемых библиотек и руководство по созданию документации. Перевод документации на русский язык подкрасил бы дело, но, к сожалению, работы по переводу находятся в начальной стадии. ПрибавленияКроме компилятора, в состав пакета входят дополнительные утилиты, призванные подсобить в разработке приложений. Среди них:
Интегрированная среда разработкиЕдинственное, что не устроило меня во Free Pascal, это интегрированная среда разработки. Дело в том, что она малопригодна для работы незрячих программистов, поскольку реализована в виде консольного приложения. Напомню, что консольным называется такое приложение, которое не использует графический интерфейс, а работает исключительно в текстовом режиме. При этом такое приложение может быть 32-разрядным приложением Windows (а не только DOS-программой). Не секрет, что консольное окно, мягко говоря, недостаточно озвучивается скринридерами (например, Jaws for Windows). Ситуация осложняется еще и тем, что внешне среда разработки Free Pascal выглядит подобно среде разработки Turbo Pascal (то есть имеет меню, диалоги, множество окон, реализованных в текстовом режиме). Однако скринридеры, работающие под DOS, здесь тоже не помогут, так как это приложение Windows. С точки зрения разработчиков Free Pascal, такой подход, возможно, и оправдан: консоль есть практически во всех операционных системах, а графический интерфейс только в некоторых. Но в данном случае приходится признать, что интегрированная среда Free Pascal для незрячих недоступна. Впрочем, выход есть всегда . Free Pascal может выполнять компиляцию и сборку программ из командной строки. То есть вы можете для подготовки исходных текстов использовать наиболее удобный для вас текстовый редактор, который позволяет редактировать обычный текст (plain text) в кодировке ANSI, а компилировать программы можно, запуская специально подготовленный bat-файл или используя утилиту make, входящую в состав Free Pascal. Такой способ может показаться непривычным для пользователей Windows, програмирующих в среде Delphi, но для пользователей Linux - это в порядке вещей. Ниже будут приведены два примера (консольное приложение и GUI-приложение), иллюстрирующих такой подход. Также следует заметить, что уже существуют многочисленные (в том числе и бесплатные) текстовые редакторы, представляющие собой не слишком изощренную среду разработки программ. Некоторые из них вполне доступны для чтения программой Jaws for Windows. В таких редакторах выполняется цветовое выделение синтаксических конструкций для различных языков программирования, а также есть возможность собрать несколько файлов в один проект и указать командную строку для компиляции исходных кодов. Проект LazarusРассуждая об "идеологической совместимости" Free Pascal и Delphi, необходимо отдать должное проекту Lazarus, в рамках которого и реализуется идеология быстрого визуального программирования.В основе проекта лежит библиотека визуальных компонентов Lazarus (LCL), для которой декларируется совместимость с визуальными компонентами VCL из Delphi. Библиотека LCL является платформонезависимой и утверждается, что исходные коды приложений могут быть портированы на любую из поддерживаемых платформ. Развитие проекта идет в двух направлениях: разработка и улучшение работы визуальных компонентов, входящих в LCL, и совершенствование интегрированной визуальной среды быстрой разработки приложений. Дистрибутив этой среды разработки и библиотека компонентов Lazarus не входят в состав дистрибутива Free Pascal. Если вас интересует этот проект, вы можете отыскать все необходимые файлы на сайте разработчиков. Установка компилятораРекомендуемую для работы версию Free Pascal можно загрузить с официального сайта разработчиков. Имя загружаемого файла (версия 2.0.2 для ОС Win32): fpc-2.0.2.i386-win32.exe, размер составляет около 26 мегабайт. Также на официальном сайте доступны исходные коды компилятора и входящих в него пакетов. Этот материал может быть использован и как пример большого открытого проекта, и как своего рода образец стиля программирования, и как основа для собственных разработок. После того как вы загрузили дистрибутив, запустите программу установки Free Pascal (файл fpc-2.0.2.i386-win32.exe). Далее придется выполнить стандартную процедуру установки, то есть последовательно пройти несколько диалогов, нажимая кнопку Next (в последнем диалоге нужно будет нажать кнопку Install). Не рекомендуется изменять папку, в которую будет установлен компилятор (по умолчанию это C:\FPC\). Иначе (если путь к этой папке будет слишком длинным) возможны ошибки при компиляции. Рекомендуемый тип установки (если позволяет размер свободного места на диске) - Full installation (Установка полного пакета). Также доступны - Minimum installation (Установка минимально необходимых файлов) и Custom installation (Выборочная установка). Полная установка займет на диске 101 мегабайт. При выборочной установке можно отказаться, например, от интегрированной среды разработки. Первые программыКомандный файлДля компиляции простых примеров и небольших программ вполне подойдет bat-файл, который должен располагаться в той же папке, где и файл с исходным кодом. Для консольного приложения он может иметь следующий вид(предполагается, что компилятор установлен в папку
В результате выполнения такого файла в текущей папке появятся три файла: объектный (с расширением .o), исполняемый (.exe) и файл, содержащий отчёт о компиляции и сообщения об ошибках (errlog.txt). Разумеется, что объектный и исполняемый файлы появятся лишь в том случае, если при компиляции не было ошибок. Аналогичный bat-файл для GUI-приложения дополнительно будет содержать командную строку для вызова компилятора ресурсов. Компилятор ресурсов входит в дистрибутив Free Pascal.
Консольное приложениеПо заведённому порядку следовало бы в качестве первой консольной программы предложить традиционное хокку, выводящее на экран строку "Hello, world!". Немного отступим от этого порядка и, кроме вывода текста на экран, проиллюстрируем работу с функциями Win32 API (в данном случае Поместите нижеследующий текст программы в текстовый файл Запустите файл
GUI-приложениеЕсли вы изучаете Win32 API и системное программирование в ОС Windows, но при этом не хотели бы переходить с Паскаля на Си, то Free Pascal - это вполне приемлемое решение. Практически любой пример, приводимый в справочниках по Win32 API, можно реализовать на Free Pascal путем замены конструкций языка Си на аналогичные конструкции языка Паскаль. В качестве примера ниже приведён исходный код простого GUI-приложения, которое описывает и регистрирует класс окна, создаёт окно и запускает цикл обработки сообщений. Окно приложения содержит горизонтальную полоску меню с пунктами «Файл» и «О программе». При выборе в меню «Файл» пункта «Открыт»ь появляется стандартный диалог открытия файла. Пользователь может выбрать только файлы с расширением При создании GUI-приложения необходимо указать компилятору тип приложения (по умолчанию подразумевается консольное). Это делается директивой
Если необходимо добавить к приложению файл ресурсов (в данном случае ресурсом является меню программы), то следует воспользоваться директивой
Вам следует скопировать исходный код приложения в текстовый файл
Для компиляции приложения необходим файл ресурсов |
||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети