Overview of Free Pascal and Lazarus/zh CN

From Free Pascal wiki
Jump to navigationJump to search

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)是一个开源的 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)上使用。


贡献者和更改