To cut a long story short: OBC is by far the best Oberon compiler
ETHZ versions of Oberon are dead, OBC is the way to go

Another oberon compiler

I used to run with Linux Native Oberon. But LNO does not run anymore on newer Linux kernels. That's a pitty but it's also a fact of life. So occasionally I come into contact with people on the Modula-2 forums and sooner or later we end up talking about Oberon. Duke recently told me about the obc compiler by Mike Spivey. More here: Welcome to Spivey'sCorner.

I found the following text in the man page of obc:

Obc is the Oxford Oberon compiler. It translates source files written in a language that is almost (but not quite) Oberon-2, translates them into a portable bytecode form, and links the bytecode with library code to produce an executable program.

Bytecode and executable files produced by the compiler are machine-independent. The same executable can be run without change on multiple machines of different architectures, provided the Oberon run-time system has been installed appropriately on all of them.

I tried the MHC Modula-2 compiler that compiled into Java source code (not Java bytecode) but the MHC compiler was a disappointment. Now, MHC also make an Oberon to Java Bytecode compiler. But I dare not spend any money on it. Suppose it is of the same disappointingly low quality as the MHC Modula-2 compiler? Another 40 euro's down the drain. I don't mind flushing €40 down the drain, as long as I still have had a nice time doing so. Which was not the case with the afore mentioned Modula-2 compiler.

Now, have you seen the last italic paragraph? The byte code is machine independant. It's not Java style, so potential users may need to install something before they can proceed, but the thing to be installed is widely available and it is there for the majority of operating systems. And the obc is free of charge. So these are two things to keep in mind.

Download your obc compiler and runtime here: or, if it's gone there, download it from the menu on the right. This is a binary install, no compiling required.

Or get the tgz file here:

Install obc the easy way

At a certain moment I discovered the script to convert any DEB package to a slackware TXZ package. Just install it with installpkg or upgradepkg in the usual way. The sequence of installing obc now becomes

  1. Make the script executable with "chmod 755"
  2. Download the DEB file, for example obc_3.1beta1_i386.deb
  3. Convert it to slackware txz with "deb2txz obc_3.1beta1_i386.deb"
  4. installpkg (or upgradepkg) obc_3.1beta1_i386.txz

Install obc 2.9.3

Now, this is real easy! Spivey made things very easy here. Just follow these three steps and you're done:

  1. Download the tar.gz file
  2. Move it to your ~/bld tree
  3. gzip -d obcTAB
  4. tar xf obcTAB
  5. cd obcTAB
  6. ./configure
  7. make
  8. su
  9. make install
  10. exit
Done. What? These are 10 steps? 3 can also be 10, so that doesn't make sense.

It may be that you get an error message with Slackware 14.1. It is solved by making a symlink in /lib:
ln -s
and you can rock and roll!


Below is a list of experiences with the obc compiler. Find the appropriate file in the navigator frame on the right.

Download versions

If ever you need (previous) versions of the obc compiler:

Page created 1 November 2010,

Page equipped with googleBuster technology