Overview of Free Pascal and Lazarus/ru

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) polski (pl) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Free Pascal (FPC) компилятор с открытыми исходными кодами с двумя важными особенностями: высокая совместимость с Delphi и доступность для большого количества платформ, включая Windows, Mac OS X, и Linux. Совместимость Free Pascal с Delphi включает не только поддержку того же языка программирования Object Pascal который использует Delphi, но также библиотеки конструкции и классы, которые "понимает" Delphi, например System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles and Registry, которые включены в Free Pascal и поддерживаются всеми платформами. Free Pascal также включает модули Windows, ShellAPI, BaseUnix, Unix и DynLibs для доступа к специфичным для конкретной ОС фичам. Около дюжины модулей составляют ядро обычно упоминающееся как Free Pascal run-time library (RTL).

Lazarus - это система с открытым исходным кодом, которая построена на компиляторе Free Pascal Compiler с добавлением Интегрированной Среды Разработки (IDE), которая включает в себя подсветку синтаксиса, редактор кода и визуальный проектировщик форм, а также библиотеку компонентов, которая очень хорошо совместима с Библиотекой Визуальных Компонентов Delphi (VCL). Библиотека Визуальных Компонентов Lazarus (LCL) включает эквиваленты для большинства контролов из VCL например, формы, кнопки, текстовые поля и так далее, которые используются для создания приложений, которые имеют графический интерфейс (GUI).

И Free Pascal и Lazarus написаны на Pascal. Полный исходный код доступен не только для Free Pascal compiler и Lazarus IDE, но и также для всех модулей составляющих Free Pascal RTL и Lazarus LCL.

Подобно Delphi, Free Pascal и Lazarus являются многоцелевым инструментом программирования, то есть вы можете создавать программы различных типов, включая следующие:

Консольные приложения

Консольные приложения не имеют графического интерфейса (GUI). Обычно они запускаются в консоли, читают информацию с консоли и выводят результаты на консоль. В Windows консоли обычно соответствует окно командной строке. В OS X и Linux консоли соответствует окно терминала. Консольные приложения это, как правило, небольшие утилиты, такие как программа FC (file compare - сравнение файлов) в Windows или команды cd и cp в Unix. Консольные приложения могут быть также мощными программами для тестирования, моделирования или управления данными, которые не нуждаются в причудливом GUI, потому как они запускаются другими программами или из командных файлов. Компилятор Free Pascal и прилагающийся набор утилит являются консольными приложениями, то есть могут быть запущены в консоли, из командных файлов или из IDE Lazarus.


Для создания консольного приложения необходим только текстовый редактор и компилятор FreePascal. Вам не нужно использовать Lazarus для создания консольных приложений. Однако, если вы предпочитаете работать в интегрированном окружении, то вы можете создать проект для консольного приложения, редактировать и компилировать код в IDE Lazarus.

Динамически-подгружаемые библиотеки (DLL)

Динамически-подгружаемая библиотека обычно представляет из себя набор скомпилированных функций, которые могут вызываться другими программами. Библиотека не прилинковывается к программе в режиме компиляции, а вместо этого она загружается в реальном времени. В Windows, файл библиотеки имеет расширение .dll (dynamic-link library, или DLL). В OS X, файл библиотеки имеет расширение .dylib (dynamic shared library). В Linux, файл библиотеки имеет расширение .so (shared object library). Динамически-подгружаемые библиотеки обычно используются для разработки дополнений других программ, а также для разработки библиотек, которые могут вызываться программами, написанными на других языках, например на C и C++, или для разбиения больших проектов на кусочки, чтобы разработчики на наступали друг другу на пятки. Windows сама по себе состоит из сотен библиотек DLL, как и другие крупные приложения, например OpenOffice.org.

Также, как и в случае консольных приложений, для разработки библиотеки вам необходим только текстовый редактор и компилятор FreePascal, хотя вы также можете создать проект библиотеки в Lazarus и разрабатывать библиотеку в IDE Lazarus.

В Windows, DLL-ки имеют незаслуженную репутацию сложных и нестабильных элементов. Это больше относится к тому каким способом они иногда устанавливаются, нежели к использованию DLL как таковых. В действительности, так как обмен информацией с DLL обычно идет при помощи стандартных простых типов данных (вместо специфичных для языка объектов и структур), то это требование заставляет программистов уделять больше внимания тому что они делают. Если все сделано правильно, то в результате получаются более стабильные и хорошие программы.

GUI приложения

Большинство программ, которые мы используем каждый день это GUI-приложения, среди которых текстовые процессоры, Web-браузеры, электронные таблицы и даже инструменты разработки. Lazarus и Delphi это прекрасные примеры полностью укомплектованных GUI-приложений. При разработке GUI-приложения в Lazarus, вы не только пишете код на Pascal, но также создаете формы, содержащие визуальные элементы, такие как кнопки и списки (ListBox). Также как и в Delphi, разработка форм в Lazarus производится визуально. Свойства элементов могут быть изменены при помощи IDE или программно.

Поскольку LCL элементы доступны для всех поддерживаемых платформ, то GUI-приложения созданные на одной платформе (например Windows) могут быть скомпилированы на другой платформе (например OS X или Linux) без изменения формы или файлов с сопутствующим кодом формы.

Внутренне устройство Lazarus

Программы, написанные в Lazarus, используют следующею архитектуру:

Lazarus App Architecture Ru.png

LCL представляет собой следующею архитектуру:

LCL Architecture Ru.png

LCL имеет платформенно-независимые модули, содержащие элементы управления, формы, кнопки и т.п. Они не могут работать самостоятельно, так как сами по себе абстрактны и опираются на внутренний функционал выбранной библиотеки. LCL предоставляет множество различных интерфейсов, которые взаимодействуют с нужными библиотеками (win32, gtk, qt, carbon, cocoa и т.д.). При создании приложения в среде разработки lazarus, интерфейсы связываются с нужными библиотеками автоматически. Необходимые библиотеки для работы приложения выбираются во время компиляции и не могут быть изменены во время выполнения.

См. также