为什么所有用户定义的标识符都以大写字母开头?

Why do all user-defined identifiers start with an uppercase letter?

在我所知道的所有 Ada 源代码中,包括标准库(抱歉,我不知道在网上哪里可以找到它)或 Small game implementation,所有非保留词都以大写字母开头。 (最后,堆栈,索引,...)
并且因为所有保留关键字都被编辑器突出显示,所以我 guess/hope 它不是用于区分用户定义的标识符。

在Python、C++或Java中,大写字母通常用于某些事物(类标识符和常量,通常),以允许它们被人类快速识别读者。 (案例给出有关含义的信息)

为什么 "official" Ada 代码以不同的方式执行此操作?为什么不对类型、模块之类的东西使用大写的 f?

是不是因为字母大小写的信息被认为是坏事?
如果是,为什么?

标准库在 ARM 的附件 A 中,位于 AdaIC.org

Ada 不区分大小写,因此在区分大小写的语言中使用大写是根本不可能的。

之所以选择使用首字母大写以及下划线来分隔标识符的各个部分 (Some_Useful_Name),是因为这样可以提高可读性。 Ada 有一个明确的设计目标,即强调易读性优于易写性。

几乎所有内容都已告知,但我只想给您两个链接:

  1. 即使没有什么强制性的,Ada Quality and Style Guide 也可以为您提供有关通常的 Ada 编码风格的解释
  2. 如果您使用的是 Gnat,您还可以检查选项以检查编码风格(参见 gcc options

但是编码风格只是约定俗成,即使对于 Java,Sun 约定也不同于 Google 或 Eclipse 约定。 由您(或您的公司)决定什么是最适合您的。

另一块拼图:

在 Ada 的设计中,一直强调实现的可替代性。数组可以替换为函数、带有标记记录的普通记录等。

如果对象和子程序的命名约定差异太大,那将不会很好地工作。如果一个命名的非标记类型与标记类型不同。 (出于某种原因,Object.Primitive_Operation 表示法不包括非标记类型。)