跳至内容

Oberon/ETH Oberon/oberon.net

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

本文档最初托管在ETHZ。它仍然在ETH 许可下,并且在WayBack 存档中。

.net 上的活动 Oberon 与微软研究院的语言互操作性项目

概述

.net 上的活动 Oberon 是在新的 Microsoft .net 技术环境下对 Oberon 编程语言的演进。

它的亮点是

  • 一个明确的对象类型概念,包括具有集成控制线程的“活动对象”
  • 一个统一的抽象概念,称为定义,它代表“方面”和使用单元
  • 一个模块结构,同时充当名称空间和单例对象

定义是抽象。更准确地说,定义是一个接口,可以选择配备状态空间和预定义的方法实现。定义可以被细化(即在状态、功能或实现方面扩展)到新的定义或由对象类型实现。每个由对象类型实现的定义对应于对象类型向客户端公开的方面服务单元

.net 上的活动 Oberon 程序通常被构建为通过定义相互通信的活动对象代理的集合。因此,Active Oberon 编程模型与分布式系统的架构无缝集成。.net 上的 Active Oberon 还提供了一个通用类型 OBJECT,可以选择后跟一组假定的定义。但是,.net 上的 Active Oberon 中没有(非平凡)类型层次结构或类层次结构。特别是,Oberon 的类型扩展在 .net 上的 Active Oberon 中被重新解释为实现的抽象。

该语言的新增功能还有块语句结构,其形式为

BEGIN { 修饰符 } ... ON EXCEPTION ... END;

其中修饰符是指令列表,如 ACTIVE(单独线程)、(相互)EXCLUSIVE 和 CONCURRENT,可选的 ON EXCEPTION 子句用于处理块语句中发生的任何异常。

此外,该语言还具有与 Pascal/Modula 相似的枚举类型

.net 上的活动 Oberon 是在苏黎世联邦理工学院 Jürg Gutknecht 教授小组中开发的。您可以在左侧侧边栏的链接中找到更多信息。

语言历史

Oberon 是Pascal 语言家族的一员。它从它的祖先 Pascal 和 Modula-2 继承了紧凑、高度表达性和自解释的语法、严格强制的数据类型以及模块概念与公共视图的结合。此外,原始 Oberon 语言支持基于记录类型扩展的子类型和多态性。.net 上的活动 Oberon 是 Oberon 的演进。它是专门设计为与新的 Microsoft .net 平台兼容的。

项目目标

我们在 .net 上的 Active Oberon 项目中的理想目标是设计一种可互操作的命令式面向对象语言,这种语言比同类编程语言更简单、更经济、更强大、更具可扩展性。更具体地说,我们的目标是一种语言,它

  • 保留 Oberon 的精神
  • 提供一个丰富的对象模型,包括自包含(即自控制或“活动”)对象
  • 将代码重用、多态性、子类化等不同问题分离
  • 强调将软件开发视为预定义抽象的实现
  • 统一程序和分布式系统的逻辑结构
  • 能够与其他参与语言(作为消费者和生产者)进行互操作
  • 自然地映射到 .net 框架
华夏公益教科书