5 ms·
Project Oberon - The Design of an Operating System, a Compiler, and a Computer
- unstable013 13y agoIt'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 13y agoYes, I'm totally impressed by the conciseness of the book and the added code.
- DenisM 13y agoAlso, 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 13y agoUntil 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.
- lennel 13y agoWe also programmed in Oberon at varsity. I think oberon with scheme and c would be a great set of 3 languages to teach from school level through till end of undergrad at varsity.
- chokolad 13y agoModula-2 and Oberon-2 as first procedural and first OO language in my university as well (in Soviet Russia, no less :) )
- pmarin 13y agoI 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 13y agoMy 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.
- chokolad 13y agoBTW, as far as I understand Project Oberon uses Oberon language, not Oberon-2. Main thing - there is no inheritance and instance methods, they are achieved via aggregation and function tables.
- pjmlp 13y agoJava's VMs are just an implementation issue, there are plenty of native compilers to choose from. Having said this, I really enjoyed it working with Oberon, it showed to me how one can implement a fully working desktop system in a GC enabled systems programming language. I have used the original version, System 3 and Active Oberon aka AOS. Sadly the industry is still stuck in C land for such tasks.
- nabla9 13y agoMany 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 13y agoYes: 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/Franz_M.html http://www.jucs.org/jucs_4_5/open_standards_beyond_java/Fran...
- pjmlp 13y agoSpecially to learn that safe systems programming is possible, instead of spreading the school of C.
- justin66 13y agoWhat 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.
- kristianp 13y agoWow, such a small system, an ARM port would be nice.
- xradionut 13y agoThe ARM family is the problem in that case. There's so much variation among the different versions that drivers are an issue. There is a version of the Oberon language, Astrobe, that runs on the a few of the smaller chips, created by CFB Software, but it's not a full operating system. http://www.astrobe.com/default.htm http://www.astrobe.com/default.htm
- justin66 13y agoI can't offer a URL but I thought Wirth ported Oberon to some sort of ARM processor (in the last ten years or so) to control an RC airplane or some such.
- justin66 13y agoIf anyone cares about Oberon on ARM, look here, the linked articles with "Helicopter" in the title tell the tale: http://www.inf.ethz.ch/personal/wirth/Oberon/index.html http://www.inf.ethz.ch/personal/wirth/Oberon/index.html I suppose one could email Dr. Wirth asking for the source code but in reality, you'd be better off forking a newer version of Oberon. It should be as easy to port as a compiler can be.
- xradionut 13y ago"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 13y agoWirth 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.
- xradionut 13y agoIt would be nice to see Oberon ported to MIPS. maybe the PIC32 would be a good target.