New Working Tool
So today I have ordered my new working tool, a 15” MacBook Pro. It should be here in about 2 weeks, I can’t hardly wait!

Lectures for the upcoming semester
SOEKRIS net4801
Yesterday I received a package from Belgium containing the new OpenBSD 3.9 release and the SOEKRIS net4801. This little board is very cool indeed. The main reason for getting one of those is to utilise them as an ADSL router at my parents house where a PC 486 DX was doing the job up until now where something more quiet (almost silent) and economic will replace that big and old computer.
I was especially surprised by the fact how easy it was to install OpenBSD on that box and how well it performs. I can’t wait to hook it up to the inet and watch it do its job….
BBC.co.uk website
Almost a month ago from now I have returned from a very pleasent year long stay in Britain. Well, among one of the things I was instantly missing the most was the BBC television channels – especially the UKTV History channel. Luckily enough for me, the british broadcasting corporation runs a website which makes many useful things accessible over the internet. Among my favourite are the local radio channels as well as daily news coverages.
...so for all of you interested in the diverse offerings, go visit the BBC website.
GNOME - Key Bindings
Using the Windows key in your GNOME desktop environment would be really nice. The setup of this is not always so straight forward. It works quite simple with GConf though. E.g. I wanted to map <ALT>F1 to WINDOWSKEY F1. Unfortunately this did not work with the graphical frontend for the configuration of keyboard shortcuts. Thus I opened GConf and under /apps/metacity/global_keybindings/ I changed the panel_run_dialog keybinding from <Alt>F1 to <Mod4>F1 and voila it works.
GNUplot and GNUplot-py
No matter if you want to plot functions, performance results, etc. – gnuplot is a very handy tool for that task. In a project I am working on I had tons of result data I had to go over and average results before feeding them to a plot utility like gnuplot.
I used the high level language Python to read through all the files, sum and average over the results, etc. That’s where gnuplot-py come in handy because it provides a Python interface to all the functions from gnuplot.
Suddenly generating graphs from loads of files in various formats is not a problem anymore! Well, have a look for yourself:- http://xen.bytelabs.org/results/mmap/graphs/ (graphs are in postscript format)
Type Checker for SL (Simple Language)
After two days of work I have finally completed my Type Checker for SL(SimpleLanguage). The specification of the language can be found here, but in order to make the language more usefull I have slightly modified and extended it (e.g. added return statements to procedures).
The scanner and parser had to be implemented with Coco/R, a compiler generator for LL(k) languages, which has been developed at the SSW Institute. What makes Coco/R somewhat special is the fact that it can process an attributed grammar of a source language. After having worked with Lex & Yacc and CUP, I have to say that I was positively surprised by the functionality Coco/R had to offer.
The only thing I was missing in the JAVA version of Coco/R is the ability to pass around Generics as attributes. That of course should be rather easy to fix but as of now I lived without it and put it on my @TODO list.
So the first part of the assignment is done. I am especially proud of the type checker though ;-). TPL was surely very helpful to provide the background and exercise which is necessary to implement typecheckers for such simple languages in short time.
The next goal is to implement code generation for the x86 architecture. Because of lack of time I will not transform the source language into an intermediate language, there will also be no or only very few and simple optimizations applied. Thus I will try the ad-hoc approach and emitt code while the parser is doing syntactical analysis.
But right now I will go home and work on other things since exams are coming up and I can not afford to devote all my time to this project (even though I would love to).
Charming Ruby Compiler
In the recent advent of interpreted dynamic object oriented languages, and the Rails framework, the programming language Ruby has gained widespread acceptance. Ruby has many cutting edge features inspired by programming languages like Eiffel and Ada, and its object system is inspired by Smalltalk.
Ruby in a few words:- is purely object oriented (everything is an object)
- supports duck typing
- supports closures via constructs called blocks
- support for exceptions
- ...
Now, as it has been stated in the first sentence of this article – Ruby is an interpreted object oriented language. Even though the Ruby interpreter is quite efficient (hey, otherwise no one would really use the language), there is no real industrial strength compiler for Ruby. One explanation for the fact that there is no compiler for Ruby may be that writing a compiler may be a substantially larger undertaking than writing an interpreter.
Both, compilers producing executable code and interpreters have advantages and disadvantages, but I do not want to go down that road in this article.
As I was looking around to see if someone has attempted to develop a compiler for Ruby I stumbled over the Charming Ruby Compiler.
The Charming Ruby Compiler is a proof of concept compiler from Ruby to C- (a compiler target language). Even though the Charming Ruby Compiler is NOT complete (i.e. it does not support everything the Ruby language has to offer), it is a very interesting project because it is useful for further study and analysis. I can really recommend the paper as an overview of how things have been done in order to engineer the compiler. In this context it is also worth taking a look at C-.
Information Aggregation 1
Compilers, computer architectures, programming languages…these topics make my pulse go up because despite the fact that there is never enough spare time to deeply delve into these topics as I wish there would be, I still try to spend every creative moment I have and feed my brain with this very fine nutrition around compiling techniques, architectures and programming languages. I am not trying to pretend to be a genious in these topics but what I have done is started to build up a collection of very delicate information which includes lots of very usefull links, papers, slides, etc. on these topics. Well, the reason I post this here because maybe someone out there may also find this usefull…
Pre-orders for OpenBSD 3.9 started
It is the time of the year again where you shall get out your CC and support a great project such as OpenBSD. Also check the undeadly post by Bob Beck.
All the new and fancy stuff is described here. I can’t wait to upgrade my current installation.



