规格
根据 ISO/IEC 25436:2006(E) 和新添加的语言结构:
基于语法的术语
局部变量是以下任何一种:
- 在Local_declarations部分(特征主体,包括内联代理)中声明的标识符
- 预定义实体
Result
正式论证:
实际参数:
变量属性是满足以下所有条件的特性声明:
- 没有正式的论据
- 有一个查询标记(即它有一个类型)
- 没有明确的值(即它不是常数)
- 如果有实体,它是属性类型
常量属性是满足以下所有条件的特性声明:
- 没有正式的论据
- 有一个查询标记(即它有一个类型)
- 有一个明确的价值
集体条款
变量是以下任何一种:
只读实体是以下任何一种:
- 形式论证
- 对象测试本地
- 本地游标(在循环的Iteration_part中)
- 单独的本地(在separate_instruction中)
- 常量属性
Current
实体是以下任何一种:
查询是以下任何一项:
即,查询是具有类型的功能,可用于在运行时获取值。
语义术语
领域:
例子
class C feature
pi: REAL_32 = 3.14
double (x: LIST [INTEGER]): LIST [INTEGER]
local
r: ARRAYED_LIST [INTEGER]
do
create r.make (x.count)
across x as c loop
r.extend (c.item * 2)
end
Result := r
end
average_age: NATURAL
count: NATURAL
print_list (x: LIST [PERSON])
do
average_age := 0
count := 0
x.do_all (agent (p: PERSON)
do
if attached p.name as n then
io.put_string (n + ": " + p.age.out + "%N")
average_age := average_age + p.age
count := count + 1
end
end)
if count > 0 then
average_age := average_age // count
end
end
end
基于语法的术语
局部变量:r
, Result
.
对象测试本地:n
。
本地光标:c
.
形式论证:x
, p
.
实际参数:x.count
, 2
(这是乘法的参数),c.item * 2
, ": "
(在字符串连接中),p.age.out
, "%N"
, n + ": " + p.age.out + "%N"
, p.age
, 1
, 0
, count
(在除法中)。
变量属性:average_age
, count
.
常量属性:pi
.
集体条款
变量:r
, Result
, average_age
, count
.
只读实体:pi
, n
, c
, x
, p
.
实体:pi
, r
, Result
, average_age
, count
, n
, c
, x
, p
.
查询:pi
, double
, average_age
, count
.