Difference between revisions of "Overview of Free Pascal and Lazarus/ru"

From Lazarus wiki
Jump to navigationJump to search
(O Free Pascal и Lazarus)
 
 
(17 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{O Free Pascal и Lazarus}}
+
{{Overview of Free Pascal and Lazarus}}
  
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).
+
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 is an open-source development system that builds on the Free Pascal compiler by adding an integrated development environment (IDE) that includes a syntax-highlighting code editor and visual form designer, as well as a component library that's highly compatible with Delphi's Visual Component Library (VCL). The Lazarus Component Library (LCL) includes equivalents for many of the familiar VCL controls such as forms, buttons, text boxes and so on that are used to create applications that have a graphical user interface (GUI).
+
Lazarus - это система с открытым исходным кодом, которая построена на компиляторе Free Pascal Compiler с добавлением Интегрированной Среды Разработки (IDE), которая включает в себя подсветку синтаксиса, редактор кода и визуальный проектировщик форм, а также библиотеку компонентов, которая очень хорошо совместима с Библиотекой Визуальных Компонентов Delphi (VCL). Библиотека Визуальных Компонентов Lazarus (LCL) включает эквиваленты для большинства контролов из VCL например, формы, кнопки, текстовые поля и так далее, которые используются для создания приложений, которые имеют графический интерфейс (GUI).
  
Both Free Pascal and Lazarus are written in Pascal. Complete source code is available not only for the Free Pascal compiler and Lazarus IDE, but also for all units that make up the Free Pascal RTL and Lazarus LCL.
+
И Free Pascal и Lazarus написаны на Pascal. Полный исходный код доступен не только для Free Pascal compiler и Lazarus IDE, но и также для всех модулей составляющих Free Pascal RTL и Lazarus LCL.
  
Like Delphi, Free Pascal and Lazarus are both general-purpose programming tools, meaning you can develop a wide variety of programs with them, including the following:
+
Подобно Delphi, Free Pascal и Lazarus являются многоцелевым инструментом программирования, то есть вы можете создавать программы различных типов, включая следующие:
  
=== Console applications ===
+
=== Консольные приложения ===
  
Console apps don't have a GUI. Instead they are usually launched from the console, read their input from the console, and write their output to the console. In Windows the console is usually referred to as a command prompt window. In OS X and Linux the console is referred to as a terminal window. Console apps include things like small utilities such as the Windows FC (file compare) program or the Unix cd and cp commands. Console apps can also be powerful number crunching, modeling, or data processing programs that don't need a fancy GUI because they're started by other programs or from batch files. The Free Pascal compiler and the utility programs included with it are all console apps, meaning they can be run from the console, a batch file, or from the Lazarus IDE.
+
Консольные приложения не имеют графического интерфейса (GUI). Обычно они запускаются в консоли, читают информацию с консоли и выводят результаты на консоль. В Windows консоли обычно соответствует окно командной строке. В OS X и Linux консоли соответствует окно терминала. Консольные приложения это, как правило, небольшие утилиты, такие как программа FC (file compare - сравнение файлов) в Windows или команды cd и cp в Unix. Консольные приложения могут быть также мощными программами для тестирования, моделирования или управления данными, которые не нуждаются в причудливом GUI, потому как они запускаются другими программами или из командных файлов. Компилятор Free Pascal и прилагающийся набор утилит являются консольными приложениями, то есть могут быть запущены в консоли, из командных файлов или из IDE Lazarus.
  
You can create a console app with no more than a text editor and the Free Pascal compiler. You don't have to use Lazarus to develop console apps. However, if you prefer to work in an integrated environment, you can use Lazarus to create a project for the console app and then edit and compile the code in the Lazarus IDE.
 
  
=== Dynamically loadable libraries ===
+
Для создания консольного приложения необходим только текстовый редактор и компилятор FreePascal. Вам не нужно использовать Lazarus для создания консольных приложений. Однако, если вы предпочитаете работать в интегрированном окружении, то вы можете создать проект для консольного приложения, редактировать и компилировать код в IDE Lazarus.
  
A dynamically loadable library is usually a collection of compiled functions that can be called by other programs. As the name suggests, the library is not linked into your executable at compile-time, but instead is loaded at run-time. In Windows, a library file has a .dll extension (dynamic-link library, or DLL). In OS X, a library file has a .dylib extension (dynamic shared library). In Linux, a library file has an .so extension (shared object library). Dynamically loadable libraries are typically used to develop add-ons for other programs, to develop libraries that can be called by programs written in other languages such as C and C++, or to partition large projects into chunks so that the project's developers don't step on each other's toes. Windows itself is made up of hundreds of DLLs, as are many other large applications such as OpenOffice.org.
+
=== Динамически-подгружаемые библиотеки (DLL) ===
  
Like console apps, you only need a text editor and the Free Pascal compiler to develop a library, although you can also create a Lazarus project for the library and develop the library in the Lazarus IDE.
+
Динамически-подгружаемая библиотека обычно представляет из себя набор скомпилированных функций, которые могут вызываться другими программами. Библиотека не прилинковывается к программе в режиме компиляции, а вместо этого она загружается в реальном времени. В Windows, файл библиотеки имеет расширение .dll (dynamic-link library, или DLL). В OS X, файл библиотеки имеет расширение .dylib (dynamic shared library). В Linux, файл библиотеки имеет расширение .so (shared object library). Динамически-подгружаемые библиотеки обычно используются для разработки дополнений других программ, а также для разработки библиотек, которые могут вызываться программами, написанными на других языках, например на C и C++, или для разбиения больших проектов на кусочки, чтобы разработчики на наступали друг другу на пятки. Windows сама по себе состоит из сотен библиотек DLL, как и другие крупные приложения, например OpenOffice.org.
  
On Windows, DLLs have an undeserved reputation for being overly complex and unstable. This has more to do with the way they've sometimes been installed than it does with DLLs themselves. Actually, since passing information to and from DLLs is normally done with standard, simple data types (rather than with language-specific objects or structures), this requirement forces programmers to pay more attention to what they're doing. If done right, this can result in better, more stable programs.
+
Также, как и в случае консольных приложений, для разработки библиотеки вам необходим только текстовый редактор и компилятор FreePascal, хотя вы также можете создать проект библиотеки в Lazarus и разрабатывать библиотеку в IDE Lazarus.
  
=== GUI apps ===
+
В Windows, DLL-ки имеют незаслуженную репутацию сложных и нестабильных элементов. Это больше относится к тому каким способом они иногда устанавливаются, нежели к использованию DLL как таковых. В действительности, так как обмен информацией с DLL обычно идет при помощи стандартных простых типов данных (вместо специфичных для языка объектов и структур), то это требование заставляет программистов уделять больше внимания тому что они делают. Если все сделано правильно, то в результате получаются более стабильные и хорошие программы.
  
Most of the programs we use daily are GUI apps, including word processors, Web browsers, spreadsheet programs, even many development tools. Lazarus and Delphi are both good examples of full-featured GUI apps. When developing a GUI app with Lazarus, not only do you develop units of Pascal code, you also design forms containing visual controls such as buttons and list boxes. Like Delphi, form design in Lazarus is done visually. Control properties can be set in the IDE or in code.
+
=== GUI приложения ===
  
Since the LCL controls are available on all supported platforms, a GUI app developed on one platform (for example, Windows) can be compiled on another platform (for example, OS X or Linux) without any changes to the form design or the form code files.
+
Большинство программ, которые мы используем каждый день это GUI-приложения, среди которых текстовые процессоры, Web-браузеры, электронные таблицы и даже инструменты разработки. Lazarus и Delphi это прекрасные примеры полностью укомплектованных GUI-приложений. При разработке GUI-приложения в Lazarus, вы не только пишете код на Pascal, но также создаете формы, содержащие визуальные элементы, такие как кнопки и списки (ListBox). Также как и в Delphi, разработка форм в Lazarus производится визуально. Свойства элементов могут быть изменены при помощи IDE или программно.
 +
 
 +
Поскольку LCL элементы доступны для всех поддерживаемых платформ, то GUI-приложения созданные на одной платформе (например Windows) могут быть скомпилированы на другой платформе (например OS X или Linux) без изменения формы или файлов с сопутствующим кодом формы.
 +
 
 +
=== Внутренне устройство Lazarus ===
 +
 
 +
Программы, написанные в Lazarus, используют следующею архитектуру:
 +
 
 +
[[File:Lazarus_App_Architecture_Ru.png]]
 +
 
 +
LCL представляет собой следующею архитектуру:
 +
 
 +
[[Image:LCL_Architecture_Ru.png]]
 +
 
 +
LCL имеет платформенно-независимые модули, содержащие элементы управления, формы, кнопки и т.п. Они не могут работать самостоятельно, так как сами по себе абстрактны и опираются на внутренний функционал выбранной библиотеки. LCL предоставляет множество различных интерфейсов, которые взаимодействуют с нужными библиотеками (win32, gtk, qt, carbon, cocoa и т.д.). При создании приложения в среде разработки lazarus, интерфейсы связываются с нужными библиотеками автоматически. Необходимые библиотеки для работы приложения выбираются во время компиляции и не могут быть изменены во время выполнения.
 +
 
 +
===См. также===
 +
 
 +
* [[Lazarus Tutorial/ru|Учебник по Lazarus]]

Latest revision as of 21:27, 11 October 2015

Deutsch (de) English (en) español (es) suomi (fi) 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, интерфейсы связываются с нужными библиотеками автоматически. Необходимые библиотеки для работы приложения выбираются во время компиляции и не могут быть изменены во время выполнения.

См. также