CLU

编辑
本词条由“匿名用户” 建档。

CLU 是一种编程语言,CLU 是xxx个为数据抽象提供直接语言支持的编程语言,这是面向对象编程语言开发的关键要素

数据抽象的想法是在编程方法论的工作过程中提出的。 导致 CLU 开发的项目的主要目标是推进对编程方法的研究。 根据他们自己的说法,该语言的开发人员并没有看到他们的目标是传播相同的语言,而是传播软件开发的概念; 在 CLU 中实现。

CLU 不是为所谓的低级编程而设计的,例如从事操作系统及其组件的开发。 该语言应该对有经验的程序员有吸引力。 虽然不像 Pascal 那样作为学术目的的学习语言,但它可以用作这样的语言。 CLU 更看重软件系统的可读性和可理解性,而不是编写工作代码的便利性。 它在技术上旨在作为一个大规模的开发工具。 重点是开发大型软件系统,需要多名开发人员,其范围包括几千到几十万行代码。

语言的发展

编辑

研究了各种编程语言,以弄清楚其中哪些可以用作 CLU 的基础。 开发人员得出结论,这两种语言都不合适,因为它们都不支持数据抽象。 开发人员想知道这个想法会将他们带到哪里,而不必担心它可能如何与预先存在的属性交互。 尽管如此,已经从现有的编程语言中采用了各种语言元素。

语言元素

编辑

集群

CLU 最重要的元素之一是集群的概念。 这对应于面向对象语言(如 C++)中的一个对象,并且具有大致相同的语法。

尽管集群的概念在当时是一种用于构建程序代码的高级工具,但不存在用于构建集群本身的机制。 这意味着集群名称是全局的,集群不能分组或嵌套。 CLU 不支持隐式类型转换:在集群中,显式转换使用 up 和 down 命令在抽象类型和表示之间切换。 此外,还提供了通用数据类型 any 和过程力。 该过程检查对象是否具有特定类型。 对象可以具有可变和不可变的属性。 后者用作所谓的本机数据类型,例如整数定义。

附加语言元素

面向对象语言的很多特性比如由于设计原因,有意不实现继承,另一方面,CLU 支持异常处理、迭代器和参数化类型等语言元素。

异常处理

CLU刚好支持如果异常处理。 它提供了一种基于异常调度模型的机制。 函数调用可以在各种条件下自行终止,其中之一是函数终止并具有定义的正常返回值。 任何其他值都代表异常,CLU 的机制在处理未处理的异常方面是不同寻常的。 大多数异常处理机制通过代码中的函数调用传播它们:如果抛出异常的函数没有处理它,它将传播到树中它之前的函数。 另一方面,在 CLU 中,所有未处理的异常都被转换为所谓的失败并继续传递。 基于其他编程语言的多次尝试,异常用signal抛出,用except捕获。 由于重点是类型设计,因此无法创建枚举类型

迭代器

CLU 的另一个重要元素是迭代器。 这些表示可用于迭代列表元素或集合元素的指针。 迭代器基于 Alphard 编程语言中使用的称为生成器的结构。 CLU 开发人员在与 Alphard Group 的一次会议上了解了生成器的想法。 CLU 开发人员对这个概念很感兴趣,因为它解决了与数据抽象相关的各种问题。 然而,他们也担心这种结构过于复杂。 尽管如此,Russ Atkinson 受到生成器的启发,在从波士顿会议返回的途中在 CLU 中构思了迭代器的概念。 他在 1975 年 9 月的一份所谓的设计说明中描述了这一点。CLU 中的迭代器代表一个“黑匣子”,它提供独立于它所应用的数据的编程接口。 因此,例如 例如,复数的迭代器和整数数组的迭代器是相同的。 迭代器现在是许多现代编程语言中的通用语言元素。

迭代器

多重赋值

CLU还支持多重赋值,允许多个变量出现在赋值运算符的左侧。 例如,x,y = y,x 会在变量 x 和 y 之间交换值。 同理,函数可以有多个值比如 g. 返回 x,y,z = f(t)。

对其他编程语言的影响

编辑
  • Python 和 Ruby 继承了 CLU 的各种概念,例如yield 语句和多重赋值。
  • CLU 和 Ada 是 C++ 模板的主要模板。
  • CLU 的异常处理机制影响了更多的现代编程语言,例如 C++ 和 Java。
  • CLU 的所有对象都存在于堆中,内存管理是自动的。 这直接影响了 Java。
  • Python 和 C# 提供了生成器的概念,它首先作为迭代器出现在 CLU 中。
  • Lua继承了CLU对函数值的多重赋值和多重返回。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/371993/

(6)
词条目录
  1. CLU
  2. 语言的发展
  3. 语言元素
  4. 集群
  5. 附加语言元素
  6. 异常处理
  7. 迭代器
  8. 多重赋值
  9. 对其他编程语言的影响

轻触这里

关闭目录

目录