没有合适的资源?快使用搜索试试~ 我知道了~
首页Object Pascal语法详解与模块化编程
Object Pascal语法详解与模块化编程
需积分: 26 10 下载量 113 浏览量
更新于2023-06-13
1
收藏 868KB PDF 举报
Object Pascal语法大全是一份全面介绍Delphi编程语言的指南,它基于ASCII字符集,支持高级的结构化和面向对象编程。该语言的特点包括强类型系统,即对数据类型的严格检查,这有助于提高代码质量和错误检测。Object Pascal注重代码的可读性和快速编译性能,同时支持模块化编程,通过单元(unit)来组织代码,每个单元可以被多个程序共享。 程序组织的核心是单元(unit),它们是源代码的基本模块,每个程序都以程序头开始,包括程序名称和可选的uses子句。uses子句用于指定所需的外部单元,这些单元中的函数和类可以被多个程序引用,且每个单元内部也有自己的uses声明,管理模块之间的依赖关系。由于这种依赖信息存储在模块自身,Object Pascal避免了使用makefile、头文件和预处理器指令等C语言中的概念,使得工程管理更为简洁。 在Borland开发工具,如Delphi和Kylix的集成开发环境(IDE)中,程序员可以便捷地进行编码和编译,IDE会自动处理许多配置细节。然而,为了兼容非IDE环境下的编程,或者在遵循不同规则的情况下,开发者需要注意Borland的一些特定规定可能与Object Pascal的通用规则有所差异。 此外,虽然这部分文档主要针对Borland环境,但它也强调了通用原则,即在编写代码时应遵循程序组织的最佳实践,以便在各种开发环境中保持代码的清晰和高效。对于初学者和进阶者来说,这份语法大全提供了深入理解Object Pascal语言结构和组织方式的重要资源。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/5448501/bg10.jpg)
Programs and units
- 15 -
在两个单元相互依赖这种最简单的情况下,你不能在它们的接口部分的 uses 子句中互相列出对方。
所以,下面的例子将产生编译错误:
unit Unit1;
interface
uses Unit2;
...
unit Unit2;
interface
uses Unit1;
...
但是,若把其中的一个引用移到实现部分,这两个单元之间的相互引用将是合法的:
unit Unit1;
interface
uses Unit2;
...
unit Unit2;
interface
...
implementation
uses Unit1;
...
为了减少出现循环单元引用的机会,要尽可能在实现部分的 uses 子句中引用单元。只有当来自另一
个单元的标志符必须在接口部分使用时,才需要在接口部分的 uses 子句中引用它。
![](https://csdnimg.cn/release/download_crawler_static/5448501/bg11.jpg)
![](https://csdnimg.cn/release/download_crawler_static/5448501/bg12.jpg)
Syntactic elements
- 17 -
Syntactic elements(语法元素)
Syntactic elements: Overview(概述)
Object Pascal 使用 ASCII 字符集,包括 A 到 Z、a 到 z、0 到 9、以及其它标准字符,字母是大小写
无关的。空格(#32)和控制符(#0 到#31,其中#13 叫回车符或行的结束符)被称为空白符(blank)。
基本语法元素被称为 token(如何翻译?),它们组合起来构成表达式、声明和命令语句。命令语句
描述算法行为,它是可执行的;表达式是一个语法单元,它出现在命令语句中并表示一个值;声明定义
一个标志符(比如函数或变量的名称),可以用在表达式或命令语句中,并在适当的地方为标志符分配内
存。
Fundamental syntactic elements(基本语法元素)
Fundamental syntactic elements: Overview(概述)
在最简单层次上,一个程序是一系列由分隔符隔开的 token 构成的。在一个程序中,token 是有意
义的最小文字单元,分隔符可以是空白符,也可以是注释。严格说来,并不是任何时候在两个 token 之
间都要有一个分隔符。如下面的代码:
Size:=20;Price:=10;
是完全合法的。但为遵循约定和代码的可读性起见,我们应当如下书写代码:
Size := 20;
Price := 10;
Token 被分为特殊符号、标志符、关键字(保留字)、指示字、数字、标签和字符串(常量字符串)。
只有当 token 是常量字符串时,它才可以包含分隔符。紧邻的标志符、保留字、数字和标签,它们之间
必须有一个或多个分隔符。
Special symbols(特殊符号)
特殊符号是非文字和数字字符,或这类字符的组合,它们有固定的意义。以下是单字符的特殊符号:
# $ & ' ( ) * + , - . / : ; < = > @ [ ] ^ { }
以下的组合字符也是特殊符号:
(* (. *) .) .. // := <= >= <>
上面,‘[’相当于‘(.’,‘]’相当于‘.)’;‘(*’和‘*)’分别相当于‘{’和‘}’(表示注释)。
请注意,!(惊叹号)、 ”(双引号)、 %(百分号)、 ?(问号)、 \(反斜杠)、 _(下划线)、 |(通
道)和 ~(破折号)不是特殊符号。
![](https://csdnimg.cn/release/download_crawler_static/5448501/bg13.jpg)
Syntactic elements
- 18 -
Identifiers(标志符)
标志符用来表示常量、变量、字段、类型、属性、过程、函数、程序、单元、库以及包。一个标志
符的长度是任意的,但只有前面的 255 个字符是有意义的。标志符必须以字母或下划线(_)开始,后面
可以是字母、数字和下划线,但不能包含空格。关键字不能用作标志符。
因为 Object Pascal 是不区分大小写的,所以,象 CalculateValue 标志符,它可以是下面的任何形
式:
CalculateValue
calculateValue
calculatevalue
CALCULATEVALUE
在 Linux 下,只有作为单元名的标志符要注意大小写。因为单元名和文件名相同,大小写不一致有
时会影响编译。(Linux 下的文件名是区分大小写的)
Qualified identifiers(限定符)
当一个标志符(名称相同)在多个地方声明时,使用它时可能要对标志符进行限定。限定标志符的
语法为:
identifier1.identifier2
这里,identifier1 限定 identifier2。比如,若两个单元分别声明了一个叫做 CurrentValue 的变
量,你可以通过如下方式指定要使用 Unit2 单元的 CurrentValue:
Unit2.CurrentValue
限定符可以重复,比如
Form1.Button1.Click
它调用 Form1 中 Button1 的 Click 方法。
如果你没有使用限定符,在块和范围
一节中所讲述的范围规则将决定它作如何解释。
Reserved words(关键字,保留字)
下面的关键字不能被重新定义或用作标志符:
and array as asm
begin case class const
constructor destructor dispinterface div
do downto else end
except exports file finalization
finally for function goto
if implementation in inherited
initialization inline interface is
label library mod nil
not object of or
![](https://csdnimg.cn/release/download_crawler_static/5448501/bg14.jpg)
Syntactic elements
- 19 -
out packed procedure program
property raise record repeat
resourcestring set shl shr
string then threadvar to
try type unit until
uses var while With
xor
除上面的关键字外,private、protected、public、published 和 automated 在对象类型
的声明中用作关键字,但其它情况下则作为指示字。关键字 at 和 on 也具有特殊的含义。
(以下内容摘自《Delphi 技术手册》
关键字是由 Delphi 编译器决定意义的保留标志符,不能把关键字用作变量、方法、或类型的名字等。)
Directives(指示字)
指示字只在代码中的特定位置才有特殊意义。在 Object Pascal 中,指示字具有特殊的意义,但和关
键字不同,它只用于(用户)自定义标志符不能出现的上下文环境中。因此,你可以定义一个和指示字
完全相同的标志符,虽然这是不明智的。
(以下内容摘自《Delphi 技术手册》
指示字是指在一个特定的上下文环境中,对编译器具有特殊意义的一个标志符。在上下文环境之外,你
可以自由地把指示字的名字作为普通的标志符来使用。但是,编辑器并不总是对的,因为一些指示字的
语法比较复杂,简单的编辑器不能正确处理。)
Numerals(数字)
整数和实数常量可以用十进制的阿拉伯数字序列来表示,数字之间不能有逗号或空格,但它可以有
一个前缀“+”或“-”来表示正负。它的数值默认为正(所以,67258 和+67258 是相等的),并且必须
位于预先定义的实数或整数类型的最大值之内。
带有小数点或指数符号的数字表示实数,而其它数字表示整数。当 E 或 e 出现在实数中时,它表示
10 的几次方。比如,7E-2 表示 7*10^-2,12.25e+6 和 12.25e6 都表示 12.25*10^6。
$前缀表示一个 16 进制数字,比如$8F。没有“-”号运算符的数字被认为是正数。在赋值时,若它
的值在接收者的数据类型范围之外,将产生一个错误,除非它是整数类型(32 位整数),此时将引发一
个警告,并且,values exceeding the positive range for Integer are taken to be negative numbers in a manner
consistent with 2's complement integer representation.
关于实数和整数类型的更多信息,请参考数据类型、变量和常量。关于数字常量的数据类型,请参
考真常量
。
Labels(标签)
标签是一个不超过 4 位的阿拉伯数字序列,也就是从 0 到 9999,打头的 0 没有意义。标志符也可行
使标签的功能。
剩余167页未读,继续阅读
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/fd31c4d5f24a422ca42b7355aa14d9d1_u010764187.jpg!1)
Sandy-hzy
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 谷歌文件系统下的实用网络编码技术在分布式存储中的应用
- 跨国媒体对南亚农村社会的影响:以斯里兰卡案例的社会学分析
- RFM2g接口驱动操作手册:API与命令行指南
- 基于裸手的大数据自然人机交互关键算法研究
- ABAQUS下无人机机翼有限元分析与局部设计研究
- TCL基础教程:语法、变量与操作详解
- FPGA与数字前端面试题集锦:流程、设计与Verilog应用
- 2022全球互联网技术人才前瞻:元宇宙驱动下的创新与挑战
- 碳排放权交易实战手册(第二版):设计与实施指南
- 2022新经济新职业洞察:科技驱动下的百景变革
- 红外与可见光人脸融合识别技术探究
- NXP88W8977:2.4/5 GHz 双频 Wi-Fi4 + Bluetooth 5.2 合体芯片
- NXP88W8987:集成2.4/5GHz Wi-Fi 5与蓝牙5.2的单芯片解决方案
- TPA3116D2DADR: 单声道数字放大器驱动高达50W功率
- TPA3255-Q1:315W车载A/D类音频放大器,高保真、宽频设计
- 42V 输入 5A 降压稳压器 TPS54540B-Q1 的特点和应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)