Overview of Free Pascal and Lazarus/zh CN

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)是一个开源的 Pascal 编译器。它有着以下两个显著特点:高度的 Delphi 兼容性,和在多种操作系统——包括 Windows,Mac OS X 和 Linux——上的可用性。

Free Pascal 与 Delphi 的兼容不仅是因为它与 Delphi 同样使用 Object Pascal 语言,而且还因为它提供了许多与 Delphi 相同的、功能强大的例程(routines)和类(classes)。这包括了许多我们熟悉的单元,例如 SystemSysUtilsStrUtilsDateUtilsClassesVariantsMathIniFilesRegistry。并且,而且这些单元在所有支持的平台上都能使用。

当然,Free Pascal 也提供了像 WindowsShellAPIBaseUnixUnixDynLibs 这样的单元,用于使用特定操作系统的功能。

所有这些单元组成了通常被称作“Free Pascal 运行时库”(run-time library,RTL)的核心。

Lazarus 是一个开源的、基于 Free Pascal 编译器的集成开发环境(integrated development environment,IDE)。除了提供语法高亮编辑器、可视化设计器等之外,它还提供了一套与 Delphi 的 VCL 高度兼容的组件(component)库——Lazarus 组件库(Lazarus Component Library,LCL)。LCL 包含的许多组件,如窗体(forms),按钮(buttons)和文本框(text boxes)等等,都与 VCL 中的相应组件功能一致。使用这些组件,您可以创建基于图形用户界面(graphical user interface,GUI)的应用程序。

Free Pascal 和 Lazarus 都是用 Pascal 语言编写的软件。Free Pascal 编译器、Lazarus IDE,以及 Free Pascal 运行库和 Lazarus LCL 的全部源代码,都可以免费获得。

像 Delphi 一样,Free Pascal 和 Lazarus 都是通用的编程工具。这意味着您可以用他们开发许多类型的程序(不仅是应用程序),例如:

控制台应用程序

控制台(console)程序不提供 GUI,而是在控制台中启动,并在其中进行输入/输出(input/output,I/O)的。在 Windows 中,控制台通常被称作“命令提示符窗口”(command prompt window),而在 Mac OS X 和 Linux 中则被称作“终端窗口”(terminal window)。一些小工具(utilities),如 Windows FC(file compare,文件比较)程序、UNIX 上的 cdcp 命令等,都是控制台程序。当然,控制台程序也可能是功能强大的数值计算、建模或数据处理程序——它们不需要引人注目的 GUI,因为他们可由其他程序启动,或者可由批处理(batch)文件(或 UNIX/Linux 上的外壳脚本(shell scripts))调用。

Free Pascal 编译器及其包括的工具程序都是控制台程序。这意味着它们可以在控制台中运行,由批处理文件调用,或者在 Lazarus IDE 中启动。

要创建命令行程序,您事实上只用一个文本编辑器和 Free Pascal 编译器就能做到,而不必使用 Lazarus。当然,如果您愿意,在 Lazarus 中也可以创建、编辑、编译和调试命令行程序。

动态链接库

动态链接库(dynamically loaded library,DLL)通常是一组已编译函数的集合,这些函数可被其他程序调用。

顾名思义,使用 DLL 的程序并非在编译时将其链接到其中,而是在运行时动态地加载。这类文件在 Windows 中通常拥有 .dll 后缀,在 Mac OS X 上为 .dylib(表示 dynamic shared library,动态共享库),而在 Linux 上则是 .so(表示 shared object library,共享目标程序库)。

动态链接库一般被用于开发程序的插件(add-ons)、开发可被用其他语言(如 C 和 C++)编写的程序调用的函数库,或者用于将大型的项目“化整为零”,使不同开发者能独立开发项目的某一部分。Windows 本身就是由上百个 DLL 组成的。其他一些大型应用程序,如 OpenOffice.org,亦是如此。

像控制台程序一样,您同样只需要使用文本编辑器和 Free Pascal 编译器就可以创建 DLL;同样,您也可以使用 Lazarus 来创建、编译和调试您的 DLL。

值得注意的是,在 Windows 上,DLL 有时被误认为过于复杂,而使系统变得不稳定。这是通常更可能是因为他们的安装方式不当,而不是 DLL 本身的问题。事实上,程序与 DLL 之间的数据交换通常是基于标准的简单数据类型(而不是某些语言专有的对象或结构)的,而这就迫使程序员更多地注意他们在做什么。如果做得对,就会得到更好、更稳定的程序。

GUI 程序

我们每天使用的多数程序都是 GUI 程序,包括字处理程序(word processors)、Web 浏览器、电子表格(spreadsheet)程序,甚至许多开发工具。比如,Lazarus 和 Delphi 都是功能强大的 GUI 程序的典范。

在用使用 Lazarus 开发 GUI 程序时,您不只编写 Pascal 单元中的代码,而且还需设计窗体(forms)。窗体上可以放置像按钮、列表框之类的可视控件,也可以放置一些非可视控件(non-visual controls)。像 Delphi 一样,在 Lazarus 中的窗体设计过程也是可视化的,控件属性的设置可以在 IDE 中完成,也可用代码实现。

因为 LCL 中的控件在所有支持的平台上都可使用,在某个平台(如 Windows)上开发的 GUI 程序,不加改动就可在其他平台(如 Mac OS X 或 Linux)上使用。


贡献者和更改

  • 简体中文版本由 Chu Jetcheng 于 2008-04-10 创建。