Oberon/ETH Oberon/white
該文件最初託管在ETHZ。它仍然在ETH 許可證下,並且位於WayBack 檔案中。
未知來源
關鍵字:元件框架、基於文件、動態載入、可擴充套件性、圖形使用者介面、圖形元件、互動式組合、MVC、Oberon、面向物件、作業系統、持久化物件、程式語言。
- Oberon 專案歷史
- Oberon 程式語言
- ETH Oberon 系統
- 應用程式包
- 不同的 ETH Oberon 系統實現
- 如何獲取 ETH Oberon 系統
- 關於 Oberon 的書籍
- 有趣的 HTML 文件
- 聯絡地址
- 版權
Oberon 同時是程式語言和現代作業系統的名稱。Oberon 專案 [WG92] 於 1985 年由 Niklaus Wirth 和 Jürg Gutknecht 在瑞士聯邦理工學院蘇黎世 (ETHZ) 啟動。它最初針對內部構建的硬體(Ceres 工作站,基於國家半導體 32000 處理器系列)。後來,決定將系統移植到流行的計算機硬體,在那裡它將原生執行或在主機作業系統之上執行。如今,Oberon 可用於許多計算機平臺。
1991 年,Jürg Gutknecht 和他的團隊繼續開發 ETH Oberon 系統。目標是在更大程度上利用 Oberon 的固有潛力和特性,透過可組合和持久化物件的理念升級系統,用圖形伴侶補充文字使用者介面,併為無處不在的網路提供支援。1995 年,第一個官方的 Oberon 系統 3 版本完成。從那時起,該系統一直在不斷改進和擴充套件。1997 年,釋出了包含大量應用程式的版本 2.2,以及一份全面的基於超文字的文件。2000 年 3 月,一個新版本釋出,該系統更名為“ETH Oberon 系統”。
Oberon 語言是 Pascal 家族中 Modula-2 的繼任者 [RW92]。從 Modula-2 中,Oberon 繼承了以下大型程式設計概念,這些概念被普遍認為是必不可少的,即
- 抽象(資料結構和資料型別)
- 封裝(資訊隱藏)
- 模組化(具有型別檢查介面和獨立編譯的模組)
- 強型別(支援執行時型別測試)。
Oberon 中的新概念包括
- 一個簡單自然的構造,稱為型別擴充套件,用於記錄型別的專業化
- 多型性:擴充套件型別在執行時被接受,只要存在相應基型別物件即可
- 細粒度資訊隱藏用於資料型別
Oberon 語言 [Wir88] 的主要優點在於提供資料型別可擴充套件性作為一種多用途構造。結合多型性和過程變數,它支援異構資料結構和麵向物件程式設計。因此,即使使用 OOP 風格,也不需要與傳統程式設計技術有根本的突破。
與典型的術語相比,類對應於記錄型別,子類對應於擴充套件記錄型別,超類對應於基記錄型別,物件對應於記錄例項。在其最簡單的形式中,方法對應於已安裝的過程變數,訊息傳送對應於已安裝過程變數的呼叫。與大多數 OOP 語言的以類為中心不同,Oberon 使用以例項為中心的 OOP 模型。
編譯器的一些特點是
- 編譯速度非常快
- 可以直接從編輯視窗編譯
- 生成本機或可移植程式碼,無需單獨連結
編譯器可以生成兩種型別的目標檔案:(a)包含目標機器程式碼的經典本機目標檔案或(b)精簡二進位制檔案。精簡二進位制檔案是一種新型的目標檔案,根本不包含任何目的碼,而是包含模組內容的可移植描述,這使得這些檔案完全獨立於最終的目標機器(平臺無關性)。目的碼生成由模組載入器(取決於底層硬體)在執行時執行,並且與載入傳統目標檔案一樣有效。
原始的 Oberon 系統是一個單執行緒、單使用者、協作式多工作業系統 [Wir88, WG92],它執行在裸硬體上或作為單視窗應用程式在託管作業系統之上執行。ETH Oberon 系統是一個擴充套件版本,它固有地支援持久化物件和構建圖形使用者介面。它以模組層次結構的形式呈現,其中許多模組匯出一個或多個強大的抽象資料型別。應用程式模組只需重用這些資料型別,而無需關心它們的實現細節。
核心元件
- 帶有整合垃圾收集器的核心
- 動態模組載入器
- 平鋪檢視器顯示管理器
- 對文字和字型的廣泛內建支援(文字是一種抽象資料型別)
- 精簡高效的檔案系統
- 對持久化物件和物件庫的整合支援
- 用於磁碟、軟盤、滑鼠、鍵盤、非同步通訊、印表機和點陣圖顯示的驅動程式
- 區域網服務
- 超快 Oberon 編譯器
一些實現透過 API 使用底層作業系統的功能。
系統特徵
- 單程序多工處理
- 自動垃圾收集
- 內建非模態文字編輯器
- 命令:Oberon 的一個顯著特點是文字輸入和命令輸入的統一。在任何接受可編輯文字的地方,都可以輸入和執行(或啟用)有效的命令名稱 M.P。命令是在使用者介面中可以執行的程式碼單元。它是由用 Oberon 編寫的模組 M 匯出的無引數過程 P。
- 獨立編譯,並進行完整的跨模組一致性檢查。智慧模組載入器和細粒度模組介面指紋識別,使得介面擴充套件可以在不使客戶端失效的情況下進行。
- 動態載入。允許在執行時按需載入模組
- 用於文字和圖形編輯以及程式開發的先進工具
- 元件框架
- 稱為小部件的 GUI 開發工具包
ETH Oberon 系統亮點
- 高階文字使用者介面。基本的 ETH Oberon 系統層配備了一個功能強大的文字使用者介面(包含嵌入式 Oberon 命令的文字)。它與原始系統一樣精簡緊湊。對於本機版本,基本系統在載入時只有 210 KB。
- 核心中整合的物件支援。ETH Oberon 系統核心是原始 Oberon 核心的升級,它透過一個統一的物件機制,
- 整合和概括現有概念。特別是,原始 Oberon 系統的所有重要組成部分,如字元、字型、文字、顯示框架和檢視器,都可以透過兩個新引入的概念物件和物件庫(物件的索引集合)來統一表達。整個物件機制由一個非常小的模組Objects表示。
- 為複合物件定義了一個通用訊息協議(“軟體匯流排”),從而為未來的物件型別提供了一個通用且可擴充套件的平臺。
- 物件自治和永續性。所有 ETH Oberon 系統物件本質上都是自治且持久的,即它們在任何環境中都可行,並且可以與其當前狀態一起移植到任何其他儲存或機器。ETH Oberon 系統透過繫結機制支援永續性,該機制允許物件繫結到物件庫。
- 透過軟體匯流排技術擴充套件。ETH Oberon 系統物件始終配備有通用訊息介面。基於這種通用性,ETH Oberon 系統定義了一種通用訊息協議,可以看作是一種軟體匯流排,因為實現該協議的物件可以參與並協作系統資料結構。該協議由一組基本訊息型別和規則定義,這些型別和規則可以針對特定類或物件組單獨擴充套件。它遵循複合物件中的家長控制原則。
- 完全分層可組合性。ETH Oberon 系統物件本質上是元件,即它們可以自由地嵌入任何其他容器物件或文字中。物件組合可以巢狀到任意級別。
- 通用 MVC 方案。ETH Oberon 系統顯示空間是複合和基本可視物件的異構層次結構,它支援任意部分和完全重疊。層次結構基於一種通用的模型-檢視-控制器方案,允許對同一個物件(可視或不可視)進行不同的相機檢視。
- 強大的 GUI 框架小部件。小部件包為物件組合提供了一個非常強大的框架。它包含一個豐富的預定義可視物件和模型(或抽象)物件庫,稱為“小部件”,以及一些用於它們互動式和描述性組合和檢查的有效工具。
小部件物件型別涵蓋了廣泛的範圍。其中大多數是視覺化的,並且在顯示器上可見,也就是說,它們是顯示空間的一部分。例如,文字小部件、檢視器、選單欄、按鈕、滑塊、面板等。與可視小部件相比,不可視小部件在幕後執行,並且能夠操縱和儲存資訊。它們在 MVC 方案中充當模型。
小部件框架允許從小部件作為構建塊執行時構建圖形使用者介面(GUI)。每個對話方塊元素或小部件都可以嵌入到任何 UI(文字或圖形)或應用程式中。所有小部件都可以整合並重用在任何其他 ETH Oberon 系統環境中。小部件可以浮動在文字中,可以嵌入面板中,可以嵌入圖形圖表中等等。容器小部件管理其他小部件作為它們的“子級”。主要的容器是面板小部件(二維編輯表面)和文字小部件(支援嵌入的完整文字編輯器),儘管還有更精緻的容器可用。
有兩種不同的物件構建和組合方法可用:互動式和描述性。互動式方法利用 ETH Oberon 系統物件的內建編輯支援。可視物件被修改並互動式地使用,無論它們位於何處。ETH Oberon 使用者以典型的拖放方式建立新的 UI 或修改現有的 UI。實際上,UI 構建簡化為純粹的文件編輯。此外,還提供了兩個支援工具:小部件工具提供了一個豐富且可擴充套件的預定義元件庫以及一些佈局功能。哥倫布檢查器允許檢查小部件及其屬性和連結。
描述性方法依賴於形式語言和相應的直譯器。描述語言LayLa採用類似 LISP 的函式式風格。 - 自包含文件。通用自包含文件的概念是 Gadgets 框架的一部分。此類文件具有名稱,並且可以透過引用包含在其他容器物件或文字中。此外,它們能夠遷移,並且可以選擇進行身份驗證。
- 不同層級的可擴充套件性
開放性和可擴充套件性從一開始就是 Oberon 專案的關鍵目標。使用 ETH Oberon 系統,我們可以從三個不同的層次區分可擴充套件性。- 最低級別對應於最簡單的情況。它包括建立複合物件,即使用現有元件建立使用者介面和文件。這個級別對程式設計師和終端使用者都是可訪問的。它只需要對(取決於所需方法)互動式組合工具和檢查器或描述語言有一定的熟悉程度。無論構建方法如何,都可以從以下來源獲取元件:
- 基本物件的生成器(透過克隆)
- 容器物件的生成器(透過克隆)
- 預製物件庫(透過克隆或引用)
- 下一個級別是現有小工具和 GUI 的程式設計使用,特別是為元件新增“粘合邏輯”以及輸入和輸出。這個級別由豐富的*過程式介面*支援,特別是由模組*Attributes*、*Links*和*GadgetsIn*、*GadgetsOut*支援。在這個級別上不需要面向物件的程式設計。
- 第三級涉及開發新的元件。這裡,應該區分兩種型別的元件:*基本小工具*,它不包含任何其他小工具,和*容器小工具*,它能夠管理其他小工具。在這種情況下,“開發”意味著擴充套件現有小工具的型別和訊息處理程式程式碼,或者定義新的型別並程式設計新的訊息處理程式。為了支援這項活動,ETH Oberon 系統版本提供了程式碼骨架,換句話說,模板可以輕鬆地修改和調整以滿足個人需求。需要提到的是,面向物件的程式設計在這種情況下是必不可少的。特別是,必須實現完整的基本訊息協議,以允許新物件(型別)連線到“軟體匯流排”。
- 最低級別對應於最簡單的情況。它包括建立複合物件,即使用現有元件建立使用者介面和文件。這個級別對程式設計師和終端使用者都是可訪問的。它只需要對(取決於所需方法)互動式組合工具和檢查器或描述語言有一定的熟悉程度。無論構建方法如何,都可以從以下來源獲取元件:
ETH Oberon 系統包包含一些有趣的工具和應用程式。其中許多是由 ETH 助理和學生開發的生產力工具。一些可供使用的應用程式是
- 符號檔案瀏覽器、原始碼分析器、Oberon 原始碼分析器、十六進位制編輯器,以及用於以超文字形式瀏覽模組文件的智慧瀏覽器 Watson。
- 用於壓縮和加密源模組以供進一步分發的工具,以及用於將程式碼附加到文件以使其可移植的工具。
- 用於備份 MS-DOS 磁碟上的檔案的工具,用於準備檔案以進行郵寄的工具,用於將多個檔案壓縮到單個存檔中的歸檔器,用於底層作業系統剪貼簿的介面,以及用於操作調色盤的工具。
- 一些與 Gadgets GUI 相關的工具和示例程式,包括用於互動式建立 Gadgets 元件的工具和用於管理可重用元件的公共庫的工具。
- 一個功能強大的圖形編輯器,名為*Leonardo*。
- 一個名為*Rembrandt*的圖片編輯器,以及相關的影像操作工具。
- 一個網路軟體包。Internet 連線可以透過乙太網連線、SLIP 或 PPP 撥號實現。一套工具可用於支援電子郵件、網頁瀏覽、FTP、Gopher、新聞和 Telnet。大多數這些工具以 Gadgets GUI 形式呈現給使用者。它們符合統一的通用*文件模型*。特別是,它們允許開啟任何遠端文件,包括任何 html 文件,就好像它是本地的。*Mail*和*News*支援 Gadgets 元件的傳輸。
- 一些關於系統所有方面的電子教程,包括嵌入式程式碼示例,Oberon 語言參考,程式設計師指南,以及大量示例程式。
使用者可以選擇從系統提供的豐富的應用程式包中選擇自己的應用程式。
- ASCIITab - ASCII 表格小工具
- Backdrops - 紋理桌布生成器
- Calc - 簡單計算器
- Coco - 掃描器和解析器生成器
- CUSeeMe - CUSeeMe 影片接收器
- Diff - 文字差異工具
- Dim3 - 3D 引擎
- EditKeys - 用於 TextGadgets 的鍵盤宏實用程式
- Find - 字串搜尋器
- FontEditor - Oberon 光柵字型編輯器
- Games - 遊戲合集:Asteroids、Freecell、MineSweeper、Scramble、Sokoban、Solitaire、Spider、Tetris
- Hex - 二進位制檔案編輯器
- Histogram - 直方圖小工具
- HPCalc - RPN 計算器
- HTML - 簡單文字到 HTML 轉換器
- LayLa - 佈局語言
- LayoutPanels - 帶有格式約束的 LayoutPanels
- LPRPrinter - 遠端 (LPR) 印表機實用程式
- Magnifier - 畫素放大鏡
- PictConverters - 圖片格式轉換器
- RX - 正則表示式搜尋器
- Sort - 基於行的排序器
- Sound - 聲音和 CD 工具 (Soundblaster)
- TextPopups - 用於 TextDocs 的彈出選單
- V24Terminal - 簡單 V24 終端
- WTS - V4 文字到 ETH Oberon 系統文字轉換器
ETH Oberon 系統可以安裝在各種平臺上,要麼安裝在主機作業系統的頂部(Windows、Intel 或 PPC 基於的 PC 的 Linux,Macintosh 的 MacOS),要麼在 Intel 基於的 PC、Transmeta 平臺和 DEC Shark NC 的情況下,作為本機作業系統,稱為 Native Oberon。平臺特定的硬體和軟體要求以及安裝說明在*readme*檔案中進行了描述。有關如何獲取特定平臺的最新更新的詳細資訊,請參見下一節。
Intel 基於的 PC 上的 PC Native Oberon 絕對是自包含的,不使用任何外來軟體層或 Bios。在某種程度上,PC Native Oberon 對於 PC 來說就像最初的 Oberon [WG92] 對於 Ceres 一樣。例如,它使用與原始 Oberon 系統中相同的扁平檔案目錄結構。相反,其他實現採用其主機系統的目錄結構和名稱路徑的概念。
該系統及其原始碼(在通用許可協議下)作為*免費軟體*免費提供。ETH Oberon 系統的最新版本可以隨時透過匿名檔案傳輸從 ETH 獲取
- ftp://ftp.ethoberon.ethz.ch/ETHOberon/
[失效連結]
不同實現的子目錄名稱為
- Native - 用於 Intel 基於的 PC
- Win95NT - 用於 Windows 95、Windows NT 和 Windows 2000(支援長檔名)
- Win3x - 用於 Windows 3.1、WfWG 3.11、Windows 95 和 Windows NT
- Unix - 用於 Intel 基於的 PC 上的 Linux
- Macintosh - 用於 PowerMac 和 68K 基於的 Apple Macintosh 上的 MacOS
Macintosh 版本[連同 Native 和 Windows 版本]也可以從加州大學歐文分校 (UCI) 獲得
- ftp://ftp.ics.uci.edu/pub/oberon/System3/Macintosh
[失效連結]
- [Wir88] - **Niklaus Wirth**
Oberon 程式語言
Springer - 軟體 - 實踐與經驗,19(9),1988 年。
最初的 Oberon 語言報告。
- [Rei91] - **Martin Reiser**
Oberon 系統 - 使用者指南和程式設計師手冊
Addison-Wesley,1991 年 - ISBN 0-201-54422-9
這是對原始 Oberon 系統的完整指南和參考。本書包含使用者指南、模組庫描述以及程式設計指南,還包含大量實用的現實世界示例和插圖。
- [RW92] - **Martin Reiser 和 Niklaus Wirth**
Oberon 程式設計 - 超越 Pascal 和 Modula 的步驟
Addison-Wesley,1992 年 - ISBN 0-201-56543-9
本書是包含完整的參考,提供了對該語言的詳細文件——Niklaus Wirth 編寫的最初的 Oberon 報告作為附錄包含在內。研究人員、講師、學生和程式設計師將被對 Oberon 的完整且井井有條的定義以及如何使用它所吸引。
- [RW92d] - **Martin Reiser 和 Niklaus Wirth**
Oberon 程式設計 - 新的 Pascal
Addison-Wesley,1992 年 - ISBN 3-89319-657-2
[RW92] 由 Josef Templ 翻譯成德語。
- [WG92] - **Niklaus Wirth 和 Jürg Gutknecht**
Oberon 專案 - 作業系統和編譯器的設計
Addison-Wesley,1992 年 - ISBN 0-201-54428-8
對原始 Oberon 系統設計、開發和實現的第一手資料。該專案背後的主要設計原則——少量核心功能足以產生複雜的計算機系統——隨著故事發展為對整合文字和圖形系統的設計和開發、彙編器、編譯器、程式設計工具、檔案和列印伺服器以及電子郵件伺服器的描述而得到充分說明。
- [Mös93] - **Hanspeter Mössenböck**
Oberon-2 中的面向物件程式設計
Springer Verlag,1993 年 - ISBN 3-540-60062-0
面向物件程式設計原理及其在 Oberon-2 中的應用,以及示例。
- [Mös93d] - **Hanspeter Mössenböck**
Oberon-2 中的面向物件程式設計
Springer Verlag,1993 年 - ISBN 3-540-55690-7
[Mös93] 翻譯成德語。
- [ML97] - **J.R. Mühlbacher、B. Leisch、B. Kirk、U. Kreuzeder**
Oberon-2 - 使用 Windows 程式設計
Springer Verlag,1997 年 - ISBN 3-540-62522-4
- [Nik97] - **Eric Nikitin**
進入 Oberon 的世界:程式設計和
Oberon-2 程式語言的介紹
Springer Verlag,1997 年 - ISBN 0-387-98279-5
- [FM97] - **André Fischer 和 Hannes Marais**
Oberon 伴侶:Oberon 系統 3 使用和程式設計指南
vdf Verlag der Fachhochschulen,1997 年 - ISBN 3-7281-2493-1
包含一個 CD-ROM。
ETH 釋出的技術論文的完整列表以及以 Oberon 為主題的其他論文的列表可在以下網站找到:www.ethoberon.ethz.ch/books.html [失效連結]。
有關當前發展的更多資訊,可以使用網際網路瀏覽器獲取。以下 HTML 文件地址列表並不詳盡。另請參見參考書目。
- www.ethoberon.ethz.ch - ETHZ 的 Oberon 主頁
- https://github.com/berkus/Juice - Juice 用於在 WWW 上分發可執行內容的技術
- www.math.tau.ac.il/~laden/
[失效連結] - Guy Laden 收集的 Oberon 資訊
- http://archiv.ub.uni-heidelberg.de/volltextserver/21411/1/report.18.pdf - 海德堡大學的 Voyager 專案
瑞士聯邦理工學院
ETH Oberon 系統開發團隊
計算機系統研究所
ETH 中心
CH-8092 蘇黎世
瑞士
電話 +41 1 632 7311,傳真 +41 1 632 1307
電子郵件(討論列表):oberon@lists.inf.ethz.ch
ETH Oberon 主頁:http://www.ethoberon.ethz.ch
Bluebottle 主頁:http://bluebottle.ethz.ch
ETH Oberon 系統是蘇黎世聯邦理工學院計算機系統研究所團隊的版權。
Oberon 系統免費提供,下載資料無需註冊。原始碼根據以下 許可協議 提供。每個原始碼模組開頭都引用了許可條款。
2000 年 3 月 13 日 - 版權所有 © 2002 ETH Zürich。保留所有權利。
電子郵件:oberon at lists.inf.ethz.ch