跳至內容

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 框架
華夏公益教科書