Oberon-0 subset for use as a hardware-software description language
Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
AUTHORS
LICENSE
README.html
README.pdf
README.rst
VERSION
first.obr
log.obr
minmax.obr
multiply.obr
oberon00.ebnf
oberon00.grm
rst2docs.sh
second.obr

README.rst

oberon00 user manual

Title oberon00 (Oberon-0 subset for use as a hardware-software description language)
Author Nikolaos Kavvadias (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
Contact nikos@nkavvadias.com
Website http://www.nkavvadias.com
Release Date 20 September 2014
Version 0.2.0
Rev. history  
v0.2.0

2014-09-20

Updated for github. Added AUTHORS, LICENSE, README, VERSION. The compiled tables file (oberon00.cgt) has been removed from the distribution.

v0.1.0

2004-10-31

Initial version as submitted to GOLD Parsing System's developer, Devin Cook (Devin@GOLDparser.org). Translated the Oberon-00 EBNF to a regular BNF in the GOLD parser style.

1. Introduction

Oberon-00 is a simple programming language proposed in [Wirth98] as a simple example of a common language that can be used for hardware and software compilation. Such language has been used for experimentation and research (establishing a proof-of-concept) purposes in the field of high-level synthesis (HLS) and as a testbed for hardware-software codesign. Oberon-00 is derived as a hardware-friendly subset of Oberon.

Oberon-00 has been used as a source language for describing simple programs that are mapped by a hardware compiler (namely hwcomp) to Xilinx XNF netlist format. hwcomp is an implementation of a hardware compiler inspired Wirth's hardware compilation article. The compiler was reportedly written in August 1998. The program is similar to the one described in the article by Niklaus Wirth. It takes a Pascal-esque/Oberon program as input and produces an XNF netlist as an output. The compiler has logic to generate all common operations: *, /, -, +, >=, <=, <, >, =.

The original source of the hwcomp project as well as the link to the source code download are now dead:

However, an archived link to the main webpage for this project has been made accessible:

This package contains both a regular BNF grammar derived from the Oberon-00 EBNF, which can be used within the GOLD parser environment and the original EBNF. It does not contain the hwcomp source code itself.

A former version of this file collection can also be downloaded from the GOLD Parsing System's website: http://goldparser.org

2. File listing

The oberon00 file collection includes the following files:

/oberon00 Top-level directory
AUTHORS List of authors.
LICENSE License argeement (Modified BSD license).
README.rst This file.
README.html HTML version of README.
README.pdf PDF version of README.
VERSION Current version.
first.obr Example program 1.
log.obr Example program 2.
minmax.obr Example program 3.
multiply.obr Example program 4.
oberon00.grm The GOLD parser grammar for Oberon-00 [GPS].
oberon00.ebnf An EBNF for Oberon-00.
second.obr Example program 5.

3. Usage

Detailed usage details in context of the GOLD Parsing System (previously known as the GOLD Parser Builder) have been left as a TODO.

4. References

[Wirth98]Niklaus Wirth, "Hardware Compilation: Translating Programs into Circuits," IEEE Computer, Vol. 31, No. 6, pp. 25--31, June 1998.
[GPS]Devin Cool, The GOLD Parsing System/Parser Builder, http://www.goldparser.org