<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Oberon</id>
	<title>Oberon - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Oberon"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Oberon&amp;action=history"/>
	<updated>2026-07-18T15:11:18Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Oberon&amp;diff=649016&amp;oldid=prev</id>
		<title>2026年4月12日 (日) 15:17 imported&gt;Mhss</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Oberon&amp;diff=649016&amp;oldid=prev"/>
		<updated>2026-04-12T15:17:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Otheruses|other=歐洲民間傳說的妖精王|奧伯隆}}&lt;br /&gt;
{{Infobox programming language&lt;br /&gt;
| name = Oberon&lt;br /&gt;
| logo = Oberon programming language logo.svg&lt;br /&gt;
| logo size = 160px&lt;br /&gt;
| paradigms = [[指令式编程|指令式]], [[结构化编程|结构化]], [[模块化编程|模块化]], [[面向对象编程|面向对象]]&lt;br /&gt;
| family = [[Niklaus Wirth|Wirth]] Oberon&lt;br /&gt;
| designer = [[Niklaus Wirth]]&lt;br /&gt;
| developer = [[苏黎世联邦理工学院]]&lt;br /&gt;
| released = {{Start date and age|1987}}&lt;br /&gt;
| latest release version = Oberon-07&lt;br /&gt;
| latest release date = {{Start date and age|2020|03|06}}&lt;br /&gt;
| typing = [[类型系统|强类型]], 混合（[[静态类型|静态]]和[[动态类型|动态]]）&lt;br /&gt;
| scope = [[作用域|词法]]&lt;br /&gt;
| programming language = &lt;br /&gt;
| platform = [[ARM架构|ARM]], [[StrongARM]]; [[IA-32]], [[x86-64]]; [[SPARC]], {{le|Ceres (工作站)|Ceres (workstation)|Ceres}} ({{le|NS32000|NS32000|NS32032}})&lt;br /&gt;
| operating system = [[Microsoft Windows|Windows]], [[Linux]], [[Solaris]], [[classic Mac OS]], [[Atari TOS]], [[AmigaOS]]&lt;br /&gt;
| license = &lt;br /&gt;
| file ext = &lt;br /&gt;
| file format = &amp;lt;!-- or: | file formats = --&amp;gt;&lt;br /&gt;
| website = {{URL|{{wikidata|property|P856}}}}&lt;br /&gt;
| implementations = &lt;br /&gt;
| dialects = &lt;br /&gt;
| influenced by = [[Modula-2]]&lt;br /&gt;
| influenced = [[Modula-3]], {{le|Oberon-2}}, {{le|Component Pascal}}, {{le|Active Oberon}}, Oberon-07, [[Nim]], [[Go語言|Go]], {{le|Zonnon}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Oberon&amp;#039;&amp;#039;&amp;#039;是一种通用[[编程语言]]，最初由[[尼克劳斯·维尔特]]在1987年推出，是维尔特风格的类[[ALGOL]]语言中的最后一员（继[[Euler]]、[[ALGOL W]]、[[Pascal语言|Pascal]]、[[Modula]]和[[Modula-2]]之后）&amp;lt;ref name=ETH&amp;gt;{{Cite report |last=Wirth |first=Niklaus |title=From Modula to Oberon and the programming language Oberon |series=ETH Technical Reports D-INFK |volume=Band 82 |publisher=Wiley |url=https://doi.org/10.3929/ethz-a-005363226 |date= |access-date=2021-06-18 |archive-date=2021-12-17 |archive-url=https://web.archive.org/web/20211217025831/https://www.research-collection.ethz.ch/handle/20.500.11850/68917 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=PLO&amp;gt;{{Cite journal |last=Wirth |first=Niklaus |date=July 1988 |title=The Programming Language Oberon |url=https://archive.org/details/sim_software-practice-experience_1988-07_18_7/page/661 |journal=Software: Practice and Experience |volume=18 |issue=7 |pages=661–670}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=M2O&amp;gt;{{Cite journal |last=Wirth |first=Niklaus |date=July 1988 |title=From Modula to Oberon |url=https://archive.org/details/sim_software-practice-experience_1988-07_18_7/page/671 |journal=Software: Practice and Experience |volume=18 |issue=7 |pages=671–690}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=TE&amp;gt;{{Cite journal |last=Wirth |first=Niklaus |date=April 1988 |title=Type Extensions |journal=ACM Transactions on Programming Languages |volume=10 |issue=2 |pages=204–214}}&amp;lt;/ref&amp;gt;。Oberon是增进[[Pascal语言|Pascal]]的直接后继者[[Modula-2]]的能力，并减少其复杂度的集中努力的结果。它的原理性新特征是记录类型的[[数据类型]]扩展的概念&amp;lt;ref&amp;gt;{{Cite magazine |last=Pountain |first=D. March 1991 |title=Modula&amp;#039;s Children, Part II: Oberon |url=https://archive.org/stream/byte-magazine-1991-03/1991_03_BYTE_16-03_Network_Management#page/n187/ |magazine={{le|Byte (杂志)|Byte (magazine)|Byte}} |volume=16 |issue=3 |pages=135–142}}&amp;lt;/ref&amp;gt;。它允许新数据类型构造在现存数据类型之上并将它们关联起来，脱离了严格的[[静态类型]]数据的教条。Oberon是在[[瑞士]]的[[苏黎世联邦理工学院]]作为{{le|Oberon (操作系统)|Oberon (operating system)|Oberon操作系统}}实现的一部份而开发的。这个名字来自[[天王星]]的卫星[[天卫四|奧伯隆]]。&lt;br /&gt;
&lt;br /&gt;
Oberon的当前版本是2007年修订的Oberon-07，它由维尔特来维护而Oberon计划编译器最近更新于2020年3月6日&amp;lt;ref&amp;gt;{{cite web |last=Wirth |first=Niklaus |title=Oberon Change Log |url=https://www.inf.ethz.ch/personal/wirth/news.txt |publisher=ETH Zurich |access-date=2021-01-16 |archive-date=2019-04-07 |archive-url=https://web.archive.org/web/20190407152152/https://inf.ethz.ch/personal/wirth/news.txt }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==设计==&lt;br /&gt;
Oberon的基本指导原则是集中于基础和根本的特征，并忽略短暂性的问题。另一个因素是认识到了在语言如[[C++]]和[[Ada]]中复杂度的增长。与它们相反，Oberon强调使用[[函数库|库]]概念来扩展语言。在Modula-2中提供的枚举和子范围类型被省略了，并且集合类型被限制为小的整数集合。所有的导入项目都必须用它们在其中声明的那个模块的名字来限定。通过只允许低层设施在包含了标识符&amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt;于其导入列表的模块中使用而突显了它们。甚至跨越模块的非常严格的[[类型检查]]、[[执行期|运行时间]][[边界检查|索引检查]]、[[空指针]]检查和安全的类型扩展概念，在很大程度上允许编程单独的依仗于语言规则。&lt;br /&gt;
&lt;br /&gt;
这种策略的意图是产生易于学习、实现更简单和高效的语言。Oberon编译器被认为是简明和快速的，却提供了可比拟于商业编译器的代码质量&amp;lt;ref&amp;gt;{{cite web |last=Mössenböck |first=Hanspeter |title=Compiler Construction: The Art of Niklaus Wirth |url=ftp://ftp.ssw.uni-linz.ac.at/pub/Papers/Moe00b.pdf |publisher=Johannes Kepler University }}{{Dead link}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==特征==&lt;br /&gt;
[[File:ETHOberon.png|right|thumb|164px|Oberon的曾用标志]]&lt;br /&gt;
刻画Oberon语言的特征包括&amp;lt;ref&amp;gt;{{Cite web |author1=[[Niklaus Wirth]] |author2={{le|Jürg Gutknecht}} |date=1987–2021 |url=http://www.projectoberon.com/ |title=Project Oberon |access-date=2021-06-18 |archive-date=2021-07-19 |archive-url=https://web.archive.org/web/20210719214651/http://www.projectoberon.com/ }}&amp;lt;/ref&amp;gt;：&lt;br /&gt;
* 具有大写关键字的大小写敏感语法。&lt;br /&gt;
* 具有类型测试的类型扩展。&lt;br /&gt;
* 模块和分离编译。&lt;br /&gt;
* 字符串操作。&lt;br /&gt;
* 孤立不安全代码。&lt;br /&gt;
* 支持系统编程。&lt;br /&gt;
&lt;br /&gt;
==面向对象示例==&lt;br /&gt;
Oberon支持对记录类型的扩展，用于抽象和异构结构的构造。不同于后期方言即1991年提出的{{le|Oberon-2}}和1998年提出的{{le|Active Oberon}}，最初的Oberon缺乏作为语言特征的分派机制，而是把它作为一种编程技术或设计模式。这给出了在OOP上的巨大灵活性。在{{le|Oberon (操作系统)|Oberon (operating system)|Oberon操作系统}}中，两种技术被一起用于分派调用：方法套件和消息处理器。&lt;br /&gt;
&lt;br /&gt;
===方法套件===&lt;br /&gt;
在这种技术中，泛化模块定义[[子程序|过程]][[变量 (计算机科学)|变量]]的一个表格类型，而扩展模块中声明这个类型的一个共享变量，泛化模块中的方法要访问这个表格的对应项目，而扩展模块将这个表格的项目指派到自己相应的过程：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;modula2&amp;quot;&amp;gt;&lt;br /&gt;
MODULE Figures; (* 抽象模块 *)&lt;br /&gt;
&lt;br /&gt;
  TYPE&lt;br /&gt;
    Figure* = POINTER TO FigureDesc;&lt;br /&gt;
    Interface* = POINTER TO InterfaceDesc;&lt;br /&gt;
 &lt;br /&gt;
    InterfaceDesc* = RECORD&lt;br /&gt;
      draw* : PROCEDURE (f : Figure);&lt;br /&gt;
      clear* : PROCEDURE (f : Figure);&lt;br /&gt;
      mark* : PROCEDURE (f : Figure);&lt;br /&gt;
      move* : PROCEDURE (f : Figure; dx, dy : INTEGER);&lt;br /&gt;
    END;&lt;br /&gt;
 &lt;br /&gt;
    FigureDesc* = RECORD&lt;br /&gt;
      if : Interface;&lt;br /&gt;
    END;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Init* (f : Figure; if : Interface);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    f.if := if;&lt;br /&gt;
  END Init;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Draw* (f : Figure);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    f.if.draw(f);&lt;br /&gt;
  END Draw;&lt;br /&gt;
 &lt;br /&gt;
(* 这里是其他过程Clear、Mark和Move *)&lt;br /&gt;
 &lt;br /&gt;
END Figures.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
扩展泛化类型&amp;lt;code&amp;gt;Figure&amp;lt;/code&amp;gt;为特定形状&amp;lt;code&amp;gt;Rectangles&amp;lt;/code&amp;gt;：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;modula2&amp;quot;&amp;gt;&lt;br /&gt;
MODULE Rectangles;&lt;br /&gt;
 &lt;br /&gt;
  IMPORT Figures;&lt;br /&gt;
 &lt;br /&gt;
  TYPE&lt;br /&gt;
    Rectangle* = POINTER TO RectangleDesc;&lt;br /&gt;
 &lt;br /&gt;
    RectangleDesc* = RECORD&lt;br /&gt;
      (Figures.FigureDesc)&lt;br /&gt;
      x, y, w, h : INTEGER;&lt;br /&gt;
    END;&lt;br /&gt;
 &lt;br /&gt;
  VAR&lt;br /&gt;
    if : Figures.Interface;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE New* (VAR r : Rectangle);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    NEW(r);&lt;br /&gt;
    Figures.Init(r, if);&lt;br /&gt;
  END New;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Draw* (f : Figure);&lt;br /&gt;
    VAR&lt;br /&gt;
      r : Rectangle;&lt;br /&gt;
  BEGIN&lt;br /&gt;
    r := f(Rectangle); (* f具有Rectangle类型 *)&lt;br /&gt;
    (* ... *)&lt;br /&gt;
  END Draw;&lt;br /&gt;
 &lt;br /&gt;
(* 这里是其他过程Clear、Mark和Move *)&lt;br /&gt;
 &lt;br /&gt;
BEGIN (* 模块初始化 *)&lt;br /&gt;
  NEW(if);&lt;br /&gt;
  if.draw := Draw;&lt;br /&gt;
  if.clear := Clear;&lt;br /&gt;
  if.mark := Mark;&lt;br /&gt;
  if.move := Move;&lt;br /&gt;
END Rectangles.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[动态分派]]只能通过泛化模块的&amp;lt;code&amp;gt;Figures&amp;lt;/code&amp;gt;中的方法集合完成，比如这里的&amp;lt;code&amp;gt;Draw&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;Clear&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;Mark&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;Move&amp;lt;/code&amp;gt;过程，它们通过接口表格调用了扩展模块&amp;lt;code&amp;gt;Rectangles&amp;lt;/code&amp;gt;中的同名过程。&lt;br /&gt;
&lt;br /&gt;
===消息处理器===&lt;br /&gt;
这种技术形成于，在泛化模块中定义一个单一的处理器过程类型，并在扩展模块中声明这个类型的一个过程，用它处理对应各种方法并包含了相应的实际参数的消息记录：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;modula2&amp;quot;&amp;gt;&lt;br /&gt;
MODULE Figures; (* 抽象模块 *)&lt;br /&gt;
 &lt;br /&gt;
  TYPE&lt;br /&gt;
    Figure* = POINTER TO FigureDesc;&lt;br /&gt;
 &lt;br /&gt;
    Message* = RECORD END;&lt;br /&gt;
    DrawMsg* = RECORD (Message) END;&lt;br /&gt;
    ClearMsg* = RECORD (Message) END;&lt;br /&gt;
    MarkMsg* = RECORD (Message) END;&lt;br /&gt;
    MoveMsg* = RECORD (Message) dx*, dy* : INTEGER END;&lt;br /&gt;
 &lt;br /&gt;
    Handler* = PROCEDURE (f : Figure; VAR msg : Message);&lt;br /&gt;
 &lt;br /&gt;
    FigureDesc* = RECORD&lt;br /&gt;
      (* 抽象 *)&lt;br /&gt;
      handle : Handler;&lt;br /&gt;
    END;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Handle* (f : Figure; VAR msg : Message);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    f.handle(f, msg);&lt;br /&gt;
  END Handle;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Init* (f : Figure; handle : Handler);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    f.handle := handle;&lt;br /&gt;
  END Init;&lt;br /&gt;
 &lt;br /&gt;
END Figures.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
扩展泛化类型&amp;lt;code&amp;gt;Figure&amp;lt;/code&amp;gt;为特定形状&amp;lt;code&amp;gt;Rectangles&amp;lt;/code&amp;gt;：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;modula2&amp;quot;&amp;gt;&lt;br /&gt;
MODULE Rectangles;&lt;br /&gt;
 &lt;br /&gt;
  IMPORT Figures;&lt;br /&gt;
 &lt;br /&gt;
  TYPE&lt;br /&gt;
    Rectangle* = POINTER TO RectangleDesc;&lt;br /&gt;
 &lt;br /&gt;
    RectangleDesc* = RECORD (Figures.FigureDesc)&lt;br /&gt;
      x, y, w, h : INTEGER;&lt;br /&gt;
    END;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Draw* (r : Rectangle);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    (* ... *)&lt;br /&gt;
  END Draw;&lt;br /&gt;
 &lt;br /&gt;
  (* 这里是其他过程Clear、Mark和Move *)&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE Handle* (f: Figure; VAR msg: Figures.Message);&lt;br /&gt;
    VAR&lt;br /&gt;
      r : Rectangle;&lt;br /&gt;
  BEGIN&lt;br /&gt;
    r := f(Rectangle);&lt;br /&gt;
    IF msg IS Figures.DrawMsg THEN Draw(r)&lt;br /&gt;
    ELSIF msg IS Figures.MarkMsg THEN Mark(r)&lt;br /&gt;
    ELSIF msg IS Figures.MoveMsg THEN &lt;br /&gt;
      Move(r, msg(Figures.MoveMsg).dx, msg(Figures.MoveMsg).dy)&lt;br /&gt;
    ELSE (* 忽略 *)&lt;br /&gt;
    END&lt;br /&gt;
  END Handle;&lt;br /&gt;
 &lt;br /&gt;
  PROCEDURE New* (VAR r : Rectangle);&lt;br /&gt;
  BEGIN&lt;br /&gt;
    NEW(r);&lt;br /&gt;
    Figures.Init(r, Handle);&lt;br /&gt;
  END New;&lt;br /&gt;
 &lt;br /&gt;
END Rectangles.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
在Oberon操作系统中，这两种技术都用于动态分派。前者用于已知的方法集合；后者用于在扩展模块中声明的任何新方法。例如，如果扩展模块&amp;lt;code&amp;gt;Rectangles&amp;lt;/code&amp;gt;要实现一个新的&amp;lt;code&amp;gt;Rotate()&amp;lt;/code&amp;gt;过程，在扩展模块之外只能通过它的消息处理器过程来调用。&lt;br /&gt;
&lt;br /&gt;
==参见==&lt;br /&gt;
* {{le|Oberon (操作系统)|Oberon (operating system)}}&lt;br /&gt;
&lt;br /&gt;
==引用==&lt;br /&gt;
{{Reflist|2}}&lt;br /&gt;
&lt;br /&gt;
==外部资源链接==&lt;br /&gt;
===一般性===&lt;br /&gt;
{{div col|2}}&lt;br /&gt;
* [https://web.archive.org/web/20191219125640/http://www.ethoberon.ethz.ch/ Official website (latest available copy at archive org)] at ETH-Zürich&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/Oberon/ Niklaus Wirth&amp;#039;s Oberon Page] {{Wayback|url=http://people.inf.ethz.ch/wirth/Oberon/ |date=20210613111906 }} at ETH-Zürich&lt;br /&gt;
* [http://www.ssw.uni-linz.ac.at/Research/Projects/Oberon.html Oberon Page] {{Wayback|url=http://www.ssw.uni-linz.ac.at/Research/Projects/Oberon.html |date=20200202121719 }} at SSW, Linz&lt;br /&gt;
* [http://www.mathematik.uni-ulm.de/oberon/reports/ Oberon: The Programming Language] {{Wayback|url=http://www.mathematik.uni-ulm.de/oberon/reports/ |date=20201104204152 }} at Ulm&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/ProjectOberon1992.pdf Project Oberon, The Design of an Operating System and a Compiler] {{Wayback|url=http://people.inf.ethz.ch/wirth/ProjectOberon1992.pdf |date=20210708170913 }}, book in PDF by Niklaus Wirth and Jürg Gutknecht, 2005 Edition&lt;br /&gt;
* [https://web.archive.org/web/20130529020132/http://www.ethoberon.ethz.ch/genealogy.html Oberon Language Genealogy]&lt;br /&gt;
* [http://www.astrobe.com Astrobe] {{Wayback|url=http://www.astrobe.com/ |date=20210716123433 }} ARM Oberon-07 Development System&lt;br /&gt;
* [http://modulaware.com/mwovms.htm Oberon System V4 for HP OpenVMS Alpha] with source code upward-compatible 64 bit addressing&lt;br /&gt;
* [http://modulaware.com/mwcvms.htm 64 bit Oberon-2 compiler] for HP OpenVMS Alpha&lt;br /&gt;
* [http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler Oxford Oberon-2 Compiler] {{Wayback|url=http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler |date=20070705213044 }} and its [http://bitbucket.org/Spivey/obc-3/downloads/obcman.pdf User Manual]{{Dead link}}&lt;br /&gt;
* [https://github.com/rochus-keller/Oberon Free Oberon-07 IDE] {{Wayback|url=https://github.com/rochus-keller/Oberon |date=20210724030721 }} Free Oberon-07 IDE for Windows, Macintosh, and Linux with syntax colouring, semantic navigation and source code debugger&lt;br /&gt;
* [https://www.drdobbs.com/architecture-and-design/the-oberon-programming-language/184409405 Oberon article by Joseph Templ] {{Wayback|url=https://www.drdobbs.com/architecture-and-design/the-oberon-programming-language/184409405 |date=20210121211627 }} in the January 1994 issue of Dr.Dobbs&lt;br /&gt;
{{div col end}}&lt;br /&gt;
===Oberon的演化===&lt;br /&gt;
{{div col|2}}&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf Modula-2 and Oberon] {{Wayback|url=http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf |date=20210716132245 }} Wirth (2005)&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/Oberon/Oberon.Report.pdf The Programming Language Oberon] {{Wayback|url=http://people.inf.ethz.ch/wirth/Oberon/Oberon.Report.pdf |date=20210324033840 }} Wirth, (1988/90)&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf The Programming Language Oberon (Oberon-7, Revised Oberon)] {{Wayback|url=http://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf |date=20210720152716 }} Wirth, (2016, most current language report)&lt;br /&gt;
* [http://people.inf.ethz.ch/wirth/Oberon/Oberon07.pdf Differences between Oberon-07 and Oberon] {{Wayback|url=http://people.inf.ethz.ch/wirth/Oberon/Oberon07.pdf |date=20210121231504 }} Wirth (2011)&lt;br /&gt;
* [ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Report.ps The Programming Language Oberon-2]{{Dead link}} H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich, January 1992&lt;br /&gt;
* [ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Differences.ps Differences between Oberon and Oberon-2]{{Dead link}} Mössenböck and Wirth (1991)&lt;br /&gt;
* [https://web.archive.org/web/20110515111149/http://www.oberon.ch/pdf/CP-New.pdf What&amp;#039;s New in Component Pascal] (Changes from Oberon-2 to CP), Pfister (2001)&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
{{程序设计语言}}&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
[[Category:过程式编程语言]]&lt;br /&gt;
[[Category:系統程式語言]]&lt;br /&gt;
[[Category:基于类的编程语言]]&lt;br /&gt;
[[Category:Modula程式語言家族]]&lt;br /&gt;
[[Category:1986年建立的程式語言]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Mhss</name></author>
	</entry>
</feed>