Content deleted Content added
mNo edit summary |
Citation bot (talk | contribs) Add: year, s2cid, doi. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 80/107 |
||
Line 25:
}}
'''Oberon''' is a general-purpose [[programming language]] first published in 1987 by [[Niklaus Wirth]] and the latest member of the Wirthian family of [[ALGOL]]-like languages ([[Euler (programming language)|Euler]], [[ALGOL W]], [[Pascal (programming language)|Pascal]], [[Modula]], and [[Modula-2]]).<ref name=ETH>{{Cite report |last=Wirth |first=Niklaus |title=From Modula to Oberon and the programming language Oberon |series=ETH Technical Reports D-INFK |year=1987 |volume=Band 82 |publisher=Wiley |doi=10.3929/ethz-a-005363226 |url=https://doi.org/10.3929/ethz-a-005363226}}</ref><ref name=PLO>{{Cite journal |last=Wirth |first=Niklaus |date=July 1988 |title=The Programming Language Oberon |journal=Software: Practice and Experience |volume=18 |issue=7 |pages=661–670|doi=10.1002/spe.4380180706 |s2cid=13092279 }}</ref><ref name=M2O>{{Cite report |last=Wirth |first=Niklaus |date=July 1988 |title=From Modula to Oberon |journal=Software: Practice and Experience |volume=18 |issue=7 |pages=671–690}}</ref><ref name=TE>{{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|doi=10.1145/42190.46167 |s2cid=15829497 }}</ref> Oberon was the result of a concentrated effort to increase the power of [[Modula-2]], the direct successor of [[Pascal (programming language)|Pascal]], and simultaneously to reduce its complexity. Its principal new feature is the concept of type extension of record types.<ref>{{Cite magazine |last=Pountain |first=D. March 1991 |title=Modula's Children, Part II: Oberon |url=https://archive.org/stream/byte-magazine-1991-03/1991_03_BYTE_16-03_Network_Management#page/n187/ |magazine=[[Byte (magazine)|Byte]] |volume=16 |issue=3 |pages=135–142}}</ref> It permits constructing new data types on the basis of existing ones and to relate them, deviating from the dogma of strictly [[static typing]] of data. Type extension is Wirth's way of inheritance reflecting the viewpoint of the parent site. Oberon was developed as part of the implementation of an [[operating system]], also named [[Oberon (operating system)|Oberon]] at [[ETH Zurich]] in [[Switzerland]]. The name is from the moon of the planet [[Uranus]], named [[Oberon (moon)|Oberon]].
Oberon is still maintained by Wirth and the latest Project Oberon compiler update is dated 6 March 2020.<ref>{{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=16 January 2021}}</ref>
Line 220:
===Active Oberon===
[[Active Oberon]] is yet another variant of Oberon, which adds objects (with object-centered access protection and local activity control), system-guarded assertions, preemptive priority scheduling and a changed syntax for methods (named ''[[Oberon-2#Type-bound procedures|type-bound procedures]]'' in Oberon vocabulary). Objects may be active, which means that they may be threads or processes. Further, Active Oberon has a way to implement operators (including overloading), an advanced syntax for using arrays (see [http://www.ethoberon.ethz.ch/native/compiler/x.index.html OberonX language extensions] and Proceedings<ref>{{cite encyclopedia |last1=Friedrich |first1=Felix |last2=Gutknecht |first2=Jürg |author-link=Jürg Gutknecht |editor1-last=Lightfoot |editor1-first=David E. |editor2-last=Szyperski |editor2-first=Clemens |date=2006 |chapter=Array-Structured Object Types for Mathematical Programming
ETHZ has released [[Active Oberon]] which supports active objects, and the operating systems based thereon (Active Object System (AOS), Bluebottle, A2), and environment (JDK, HTTP, FTP, etc.) for the language. As with many prior designs from ETHZ, versions of both are available for download on the Internet. As of 2003, supported [[central processing unit]]s (CPUs) include single and dual core [[x86]], and [[StrongARM]].
===Related languages===
Development continued on languages in this family. A further extension of Oberon-2 was originally named Oberon/L but later renamed to [[Component Pascal]] (CP). CP was developed for Windows and [[classic Mac OS]] by Oberon microsystems, a commercial spin-off company from ETHZ, and for .NET by [[Queensland University of Technology]]. Further, the languages ''Lagoona''<ref>{{Cite report |last1=Fröhlich |first1=Peter H. |last2=Franz |first2=Michael |date=<!-- Undated 2002? --> |title=On Certain Basic Properties of Component-Oriented Programming Languages |url=http://oberon2005.oberoncore.ru/paper/ph2001.pdf |publisher=University of California, Irvine |access-date=18 January 2021}}</ref><ref>{{Cite journal |last1=Fröhlich |first1=Peter H. |last2=Gal |first2=Andreas |last3=Franz |first3=Michael |date=April 2005 |title=Supporting software composition at the programming language level |journal=Science of Computer Programming |volume=56 |issue=1–2 |pages=41–57 |publisher=Elsevier B.V. |doi=10.1016/j.scico.2004.11.004|doi-access=free }} Retrieved 18 January 2021.</ref><ref>{{Cite book |last1=Franz |first1=Michael |last2=Fröhlich |first2=Peter H. |last3=Kistler |first3=Thomas |date=20 November 1999 |chapter=Towards language support for component-oriented real-time programming |title=Proceedings: Fifth International Workshop on Object-Oriented Real-Time Dependable Systems |pages=125–129 |publisher=[[Institute of Electrical and Electronics Engineers]] (IEEE) |doi=10.1109/WORDSF.1999.842343 |isbn=0-7695-0616-X|s2cid=6891092 }} Retrieved 21 January 2021.</ref> and ''[[Obliq]]'' carry Oberon methods into specialized areas.
Later .NET development efforts at ETHZ focused on a new language named [[Zonnon]]. This includes the features of Oberon and restores some from Pascal (enumerated types, built-in IO) but has some syntactic differences. Other features include support for active objects, operator overloading, and exception handling.
|