This page is a joint effort from me and Les May, my friend from the UK. It would not be easy to read all those books for one person. So we decided to team up and tell the world about our affection for Oberon-like systems.
Some of the books, we both have a copy from. Some we have not. Have fun reading these book comments. We are not tied to a publisher or bookstore. We just love this language. So the opinions expressed here on this page are ours and true.

Programming in Oberon.

To the right, you see one of the best books ever written to describe a programming language. The book is written by Martin Reiser and Niklaus Wirth. Both are educators pur sang and know how to address their audience.
They teach the language step by step and introduce the key features early on in the book. With good examples from science and technology. No chitchat about 'Cat Frisky' who is an object in need for a destructor. Or dog Bonzo who needs its pointer initialized after cleaning up. No, we start out by making a random number generator that is truly random and statistically sound.

Unfortunately, the book is out of print, but you can lay your hands on leftovers from big bookstores. Or perhaps Bjarne is willing to sell his copy. He hasn't been influenced by Wirth's languages all together, he told. So then why keep the book?

One quote from the book:

4.2.2 Type rules.

Let us look at a second set of syntactically well-formed expressions:
         "a" + 3.14159
 	 (a=b) - sqrt ("144")
It is not clear how these expressions should be evaluated. What sense does it make to add a character constant to a number? Can a truth value be used as a number? There are various schools of thought with respect to these questions. Some languages (e.g. PL/I) define elaborate type conversion rules or treat truth values as the numerical constants 0 and 1 (e.g. APL). We believe that what such languages teach us is the way not to do it.

I have nothing to add here. Except, that the authors are rather mild on C and it's derivatives. Something they are not in other parts of the book. And let's be fair: C programmers tend to put numerical labels on just about everything. Which is a good explanation for the mess their sources are in.

Some data:


The Oberon companion

Here you see another good book about Oberon. It was written by some of the developers of the system.

Not content with giving us the Oberon operating system and the Oberon compiler those nice folks at ETH Zurich decided we needed a graphical user interface which they called Gadgets. They gave the same name to the collection of re-usable persistent objects we can use to build our own GUI. Collectively these three things go to make up Oberon System 3.

After a quick overview of the remaining five chapters this book starts by dealing with the Commands and Tools which make up the basic system followed by the Gadgets User Interface. A reference section covering the sixty odd different Gadgets follows. The Programmer's Guide explains how to extend the Oberon system and a final chapter of 'Applications and Examples' deals with using the remaining utility programs available in System 3.

"Commands effectively replace conventional applications which have to be started. As commands operate on the shared system state and can be activated directly when required, it is simple to extend the system with new special purpose commands."

Some data about the book:


Compiler construction

The third book to mention is

Compiler construction

or, as in my case:

Grundlagen und Techniken des Compilerbaus

which, I presume, is the same book but then in german.

I have yet to start reading, but the book looks promising. It describes how to write a compiler for Oberon-0, the language used to write the software text for the Oberon bootloader and kernel.

It's a few months now since I started rewading the german version of Compiler Construction. The books stem from the same source, but the german book is somewhat bigger. And I have considerably more difficulties in understanding the written. Having been spoiled by too many years of english literature even I cannot fully understand the german words anymore.
So I downloaded the PDF file with the english text and I must confess that this is much better to understand.

And there is good news! Professor Wirth is updating some of his work. The new releases will be published on the web. This book will be the first and it is scheduled for early december.

Some data:


Into the realms of Oberon

Into the realm of OBERON by Eric Nikitin covers much the same ground as the Reiser and Wirth book but it does it at a slower pace. The approach is rather more relaxed as Nikitin does not assume that the reader is a computer scientist.
The things which make Oberon distinctly different from Pascal or Modula-2, Extensible Records, Objects and Type Bound Procedures get a chapter each. The only thing missing seems to be the absence of any coverage of files.

The book is not tied to the ETH Native Oberon system releases, which makes it useful to someone using POW based Oberon or BlackBox. This is both a strength and a weakness.
Faced with for the first time with, Native Oberon, POW based Oberon or BlackBox, this book would leave the reader none the wiser about how to get started. But once that hurdle was overcome it would be a useful guide to programming in Oberon on any of these systems.

Some data:


Computing fundamentals

What Doug Cooper did for the early 1980s world of terminals, line editors, control structures and procedural programming with his book Oh! Pascal!, Stanley Warford has done for the post 2000 world of programming frameworks, graphical user interfaces and object oriented programming, with his book Computing Fundamentals.
His tool for the job is the BlackBox framework, which can be freely downloaded from Oberon Microsystems at
This is built around the language Component Pascal, a slightly modified, industrial strength Oberon, which has been re-branded for marketing purposes. If you know Oberon you will feel immediately at home with Component Pascal.

The BlackBox framework lends itself to a gradual, mixed approach in the exposition of software design. For example, the dialogu boxes provided by the Forms subsystem require procedural programming even though the subsystem is itself based on objects.
The approach taken in this book is more evolutionary than revolutionary. Its goal is to move the student through successively higher levels of abstraction, starting with procedural programming and concluding with OO programming.

For some more details, check the site

Some data:


Programming in Oberon

When Niklaus Wirth's quest for simplicity led him to produce a language which has only the essential elements needed to write accurate, readable and robust programs, he took the pruning knife to Modula 2 and produced Oberon.
When he decided he needed a book to explain his ideas about how he thought the language should be used he took the pruning knife to his book 'Programming in MODULA-2' and wrote 'Programming in Oberon'.

As it is subtitled 'A derivative of Programming in Modula-2 (1982)' it comes as no surprise to find that the section headings mirror closely those of the original book. Whilst the Modula book runs to almost 200 pages Wirth has condensed his ideas of how to program in Oberon into just 85 sides of A4.

Even if you cannot find any of the other books on Oberon you can find this one. It is available as a pdf file for anyone to download (via the Oberon mainpage).


Project Oberon: The design of an operating system and compiler

This is the non plus ultra book on Oberon. I received the book today (I didn't expect it so soon) and only had the chance to read two chapters in my lunchbreak.
This is the engineer's dream textbook. It contains everything about Oberon: how it was born, who did things, why they did it and what came out. All of this written with a lot of wittyness. Perhaps not the wit of the minister of finance, but many an engineer will appreciate the way in which things were trusted to the paper.

The book contains all details behind Oberon, but it also contains full sources for all modules of the system. This is a 550 page masterpiece of Professor Wirth and his colleague Gutknecht.

I can recommend this book to every Oberon enthusiast. It's now available in PDF from this source:

As you may be able to recover from the small picture on the left, the frontpage of the book says "A Pearson education Print on demand edition" so it might mean that these books are still being printed.

Some data:


Page created January 2005,