logo of the SSW institute
Institut für Systemsoftware
Johannes Kepler Universität Linz
Fachbereich Informatik
logo of the Cristian Doppler Research Association
Christian Doppler Labor
Monitoring and Evolution of Very-Large-Scale Software Systems




PhD Theses
Go Abroad



logo of the Johannes Kepler University (JKU)

Oberon Public Domain Software

The following software is available in source code from our department. All modules are written in Oberon-2 and usually run on all implementations of the ETH Oberon System. If a module is specific to the PowerMac Oberon implementation this is explicitly mentioned. The source modules are encoded with the AsciiCoder tool available under Oberon. Follow the link from a module name to the encoded source and copy the whole file to your Oberon System. Middle-click at the heading line (AsciiCoder.DecodeFiles) to decode the source. Then compile it.


  • Coco/R generates a scanner and a recursive descent parser from an attributed grammar.
  • Dialogs A graphical user interface for Oberon V4 (MK).
  • Trace and Post Mortem Debugger for Oberon for Windows (Included in the Oberon for Windows version on this server).
  • A Trace and Post Mortem Debugger for Oberon for PowerMac (Included in the Oberon for Windows version on this server).
  • Kepler An object oriented graphics editor
  • FileManager A graphically oriented file manager
  • FTP A graphically oriented ftp client (requires FileManager)
  • ODBC A package for accessing ODBC databases from Oberon programs (CS).
  • NetNews A comfortable NetNews reader (PH).
  • HeapInspector A tool to inspect the heap and other run-time data structures (MR)


  • Backup incremental backup of Macintosh directories (HM).
  • Batch introduces basic batch facilities (mah).
  • Beautifier formats your Oberon-2 code (Description) (MK)
  • Class extracts Oberon-2 class interfaces from a source module (HM).
  • Count counts lines, statements and characters in an Oberon-2 module (HM).
  • Find compares files; lists all lines containing a certain pattern; lists clients and imports of a module; searches files for attributes in InfoElems (PowerMac Oberon only) (HM).
  • Folds allows compilation of folded texts; sets and searches for error markers in the compiled text (HM).
  • Lines extracts lines containing a specified pattern from a text (HM).
  • Make topologically sorts a set of Oberon source file names according to their import relationship (HM).
  • Packager packages several object files into one compound object file that is loaded as one (thereby saving time; PowerMac Oberon only) (CS).
  • Profiler instruments source programs by inserting counters and timers (MK)
  • Random Numbers calculates a random number (MK).
  • Screen switches between a one-track and a two-track screen (HM).
  • Statistics implements some statistical distributions (CS).
  • StringSearch implements some popular string search algorithms (CS).
  • ToDo helps to schedule activities and meet deadlines (HM).
  • Trace provides a list of trace switches that can be set/reset with commands (HM).
  • VCS is a version control system for text files (HM).
  • Xref generates a cross reference list for Oberon-2 programs (HM).

Utility Modules

  • MoreMathL implements some additional mathematical functions (hyperbolic, trigonometric and inverse functions) (CS).
  • Strings provides string operations which are not supported by the Oberon-2 language (HM).
  • Timer provides time measurements of programs (HM).
  • XIn offers some (now and then) used functions to read in parameters (CS).

Text Elements

For a documentation of the text elements click here. Note that some elements need our extended version of Popup elements from below (not the one from the original Oberon system).
  • Auto menu elements search (when the text is loaded) for AutoMenuElems throughout the text and add these to its menu (needs Handler elements) (mah).
  • Balloon elements offer balloon help (i.e., popup explanations) in texts (HM).
  • Clock elements display the current time (original author: R. Griesemer, ETH Zurich).
  • Directory elements allow a user to conveniently switch between working directories (HM).
  • Fold elements can be used to partially and hierarchically fold texts (HM).
  • Font elements allow a user to conveniently set the font family, font size and font style of a piece of text (HM).
  • Handler elements install a custom handler in the viewer's contents frame (HM).
  • Index elements mark a text position which may be used as the target of hypertext links (LinkElems) or as bookmarks. Additionally index elements can automatically create an index of the corresponding text (mah).
  • Info elements contain additional information about the text (author, date of creation,...) in which the element is inserted (CS).
  • Kepler links allow setting a link from a text to a Kepler graphic and vice versa (HM).
  • Link elements represent a hypertext link to a mark element (MarkElems) (HM).
  • Mac Picture elements insert PICT graphics from the clipboard into your text (PowerMac Oberon only) (HM).
  • Mark elements see link elements (HM).
  • Open elements perform a generic open command on the selected item. Depending on the suffix of the item different commands are called. The name (e.g. * or *.Mod) of an OpenElem is taken as a pattern to collect all matching files in the current directory (CS).
  • Popup elements respond to a middle mouse click by showing a text of lines (a popup menu). Extended version (original author: M. Franz, ETH Zurich) (HM).
  • SectionLinkElems represents a hyptertext link to a section of a report (MK)
  • Tree elements extension of the Popup elemements which - located in a menu - analyzes the Oberon module in the corresponding window and shows - in its popup - a tree-like representation of the module's structure. By selecting a shown name, the source code is scrolled to the name's definition position. (mah).
  • Version elements allow a user to maintain multiple versions of a module in the same file. Similar to conditional compilation, but language independent (HM).

Miscellaneous Examples


  • Prog.Guide.Text is an Oberon hypertext document that shows examples of many frequent programming tasks under Oberon.
  • Elem.Guide.Text is an Oberon document that explains how to use text elements.
  • Balloon.Text is the global dictionary used by BalloonElems. It contains short descriptions of most types and procedures of the Oberon system. Might be worth studying also without BalloonElems.
  • Reference Card. This postscript document is a reference card with the most frequently used commands of the Oberon system.

Students - Projects