
Project Oberon - The Design of an Operating System, a Compiler, and a Computer - __mp
http://www.inf.ethz.ch/personal/wirth/ProjectOberon/
======
justin66
What makes the new version of this cool (for starters):

> The decision for a new processor was expedited by the possibility to
> implement it, that is, to make it concrete and available. This is due to the
> advent of programmable gate arrays (FPGA), allowing to turn a design into a
> real, functioning processor on a single chip. As a result, the described
> system can be realized using a low-cost development board. This board,
> Xilinx Spartan-3 by Digilent, features a 1-MByte static memory, which easily
> accommodates the entire Oberon System, incuding its compiler. It is shown,
> together with a display, a keyboard and a mouse in the photo below.

~~~
stephen_g
But can't you only clock a design on a Spartan-3E at 300MHz maximum?

~~~
pdw
Given that Oberon was originally designed to run on a 10MHz CPU, that won't be
much of a problem :)

------
DenisM
Also, a language.

Oberon-2 language has Pascal-like syntax, with Java-like features (classes,
single inheritance, interfaces, garbage collector, sane module system instead
of includes). Unlike Java, no VM is required, at least in the system that I
used. Like Java and unlike C, it is impossible to write unsafe code
accidentally - you have to go out of your way to access unallocated memory
regions or break type safety.

Decent module system and straightforward grammar has also allowed writing
simple and very fast compilers. It was fun to work with.

~~~
kingcan
Until a few years ago, Oberon-2 was the programming language of choice in the
first year of CS at my university (except for a small course on C++). They use
Python and more C++ now.

~~~
chokolad
Modula-2 and Oberon-2 as first procedural and first OO language in my
university as well (in Soviet Russia, no less :) )

~~~
pmarin
I learned Modula-2 in my university (UMA, Spain) around 2000. they changed to
C++ a year later. Even now days all the pseudocode used by many courses is
strong inspired in Modula-2.

~~~
seefriek
My Intro to Operating Systems class was in Modula-2 circa 1988. I really liked
it. I was lucky enough to subsequently spend quality time with Modula-2 on the
8051 and Modula-3 on Ultrix (which was a really nice evolution of the
language). Shame that line of innovation has withered.

------
xradionut
"Mostly thanks to the regularity of the RISC instruction set, the size of the
compiler could be reduced significantly. It now measures less than 2900 lines
of program and compiles itself in about 3 seconds, which is proof of its
efficiency. The entire system compiles itself in less than 10 seconds."

Very nice indeed.

~~~
gruseom
Wirth had (has?) a famous heuristic where he would reject any optimization of
the compiler that didn't make it faster to compile itself. Since optimizations
add code and thus cost something to compile, this is a clever way of testing
cost/benefit.

------
unstable013
It's a small internet. I started the older version of this book yesterday
after this [
[https://www.youtube.com/watch?v=mFo6eyEsDoA](https://www.youtube.com/watch?v=mFo6eyEsDoA)
] talk on user interfaces referenced it.

So far it's a wonderful read, and a good example of thoughtful systems
design... Incidentally, it's also shows one of the real benefits of Literate
Programming, cause although the source itself doesn't really concern me, the
text is gold.

~~~
__mp
Yes, I'm totally impressed by the conciseness of the book and the added code.

------
nabla9
Many parts with Oberon system would have been perfect for passing code around
in the the Internet. The one pass compiler, for example, was lightening fast
and compact.

I think Oberon system is worth of study.

~~~
MaysonL
Yes: Michael Franz, one of Wirth's PhD students, now a professor at UC Irvine,
implemented such a system back in the 90's:
[http://www.jucs.org/jucs_4_5/open_standards_beyond_java/Fran...](http://www.jucs.org/jucs_4_5/open_standards_beyond_java/Franz_M.html)

------
xradionut
It would be nice to see Oberon ported to MIPS. maybe the PIC32 would be a good
target.

