跳转到内容

Oberon/命名

来自维基教科书,开放的书籍,开放的世界

关于常量、变量、类型、过程、函数和模块名称的约定可以在 Oberon 语言常见问题解答 中找到。

文件、服务器和查看器

[编辑 | 编辑源代码]

Oberon 系统;用户指南和程序员手册 的第 42 页,马丁·莱瑟指出:

2.7 命名

Oberon 提供结构化的名称来标识对象,例如文件、服务器和查看器。名称的语法为:
名称 = 名称部分 { "." 名称部分 }
名称部分 = 字母 { 字母 | 数字 }

为什么使用如此原始的语法?可读性是一个明显的因素。安全性是一个大胆的行动者。Linux 文件名 举例说明

A2 中的命名

[编辑 | 编辑源代码]

为了识别目标硬件,A2 采用了一些关于 文件名扩展名 的约定。

在软件内部,A2 拥有 Oberon 子系统。在“模块上下文提案”中,F. Friedrich 和 F. Negele 解决了子系统模块名称与 A2 模块名称之间的区别。避免名称冲突的语法在 Active Oberon[1] 中。

Module := 'MODULE' [TemplateParameters] Identifier ['IN' Identifier] ';' ...

因此,这个例子。

MODULE System IN Oberon;

按照惯例,该文件可以使用用 "." 分隔的标识符命名。因此,与上述示例相关的文件名是“Oberon.System.Mod”。

通用上下文

[编辑 | 编辑源代码]

在缺乏上下文的语法中,注释中的标识符可以帮助解释模块的使用方法。

Module := 'MODULE' Identifier '(* IN' Identifier '*);' ...

Oberon 文件系统不支持文件夹,但包含模块源代码的文件名称可以与模块名称不同。因此,可以通过添加前缀来避免文件名冲突。

NameOfModuleFile := Identifier Identifier '.Mod'

例如,在 ETH Oberon 中,jdEdit.Mod 会暗示 J. Doe 已经从一个版本中修改了 Edit 模块。

  1. 参考 Oberon (2019) 语言报告 (PDF) 第 5 章 模块。
华夏公益教科书