Oberon (programming language): Difference between revisions

Content deleted Content added
No edit summary
GreenC bot (talk | contribs)
Reformat 2 archive links; Move 1 url. Wayback Medic 2.5 per WP:URLREQ#citeftp
Line 35:
Oberon is designed with a motto attributed to [[Albert Einstein]] in mind: "Make things as simple as possible, but not simpler." The principal guideline was to concentrate on features that are basic and essential and to omit ephemeral issues. Another factor was recognition of the growth of complexity in languages such as [[C++]] and [[Ada (programming language)|Ada]]. In contrast to these, Oberon emphasizes the use of the [[Library (computing)|library]] concept to extend the language. Enumeration and subrange types, which were present in Modula-2, were omitted, and set types are limited to sets of integers. All imported items must be qualified by the name of the module where they are declared. Low-level facilities are highlighted by only allowing them to be used in a module which includes the identifier <code>SYSTEM</code> in its import list. Strict [[type checking]], even across modules, and [[index checking]] at [[Runtime (program lifecycle phase)|runtime]], [[null pointer]] checking, and the safe type extension concept largely allow programming to rely on the language rules alone.
 
The intent of this strategy was to produce a language that is easier to learn, simpler to implement, and very efficient. Oberon compilers have been viewed as compact and fast, while providing code quality comparable to commercial compilers.<ref>{{citeCite webFTP |last=Mössenböck |first=Hanspeter |server=Johannes Kepler University |url-status=dead |title=Compiler Construction: The Art of Niklaus Wirth |url=ftp://ftp.ssw.uni-linz.ac.at/pub/Papers/Moe00b.pdf |publisher=Johannes Kepler University}}</ref>
 
==Characteristics==
Line 259:
* ''[https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf The Programming Language Oberon (Oberon-7, Revised Oberon)]'' Wirth, (2016, most current language report)
* ''[https://people.inf.ethz.ch/wirth/Oberon/Oberon07.pdf Differences between Oberon-07 and Oberon]'' Wirth (2011)
* ''[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Report.ps The Programming Language Oberon-2]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}'' H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich, January 1992
* ''[ftp://ftp.ethoberon.ethz.ch/Oberon/OberonV4/Docu/Oberon2.Differences.ps Differences between Oberon and Oberon-2]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}'' Mössenböck and Wirth (1991)
* ''[https://web.archive.org/web/20110515111149/http://www.oberon.ch/pdf/CP-New.pdf What's New in Component Pascal]'' (Changes from Oberon-2 to CP), Pfister (2001)