Here, you can find the materials for my speech hold at 21c3. Currently, all information is available in English, but only the abstracts in German.
Hier finden Sie Online-Material zu meinem Vortrag auf dem 21c3. Derzeit sind die Folien und das Paper leider noch nicht auf Deutsch erhältlich, nur die Abstracts.
Due to a request from a project developer, I want to inform you that my OpenMDX examples do not reflect the current code base. I knew that the version I commented was not the current release, therefore I noted the version number. I was now told that all the issues I mentioned are fixed in the current code. No offence meant!
Like in the last year, examples of strange programming (art)work will be shown. In addition to the funny and sportive disciplines known from last year, some examples of weird production code will be presented.
Wie letztes Jahr werden wieder beispielhaft grenzwertige Programmier- (kunst)werke beleuchtet. Neben den spassig-sportlichen "Disziplinen" werden diesmal auch eigenwilige Beispiele von Produktivcode vorgestellt.
Der erste Teil des Vortrages beleuchtet - ähnlich wie der letztjährige Vortrag - die spassig-sportlichen Disziplinen der Programmierkunst. Neben den bereits im letzten Jahr beleuchteten Disziplinen wie obfuscated Programming und shortest Code stehen auch Core Wars und Demo Coding auf dem Programm.
In den Core Wars laufen viele Programme gleichzeitig im selben Speicher. (Also eine typische Von-Neumann Maschine mit multitasking, aber ohne Speicherschutz.) Das Ziel ist es, dass das eigene Programm solange wie möglich überlebt, gleichzeitig aber die anderen Programme möglichst schnell aus dem Speicher löscht.
Beim Demo Coding geht es darum, aus einer bestimmten (oft veralteten) Hardware durch ausgefuchste Software möglichst viel herauszuholen, und so unerwartete Effekte und überraschende Ergebnisse zu erreichen. Auf sogenannten Demo-Partys werden diese dann vorgestellt, und oft sogar mit hohen Preisen dotiert. Preisträger sind dann z. B. 3D-Ballerspiele in 64k oder Video-Clips mit Sound in 4k.
Im zweiten Teil werden wieder kreativ gestaltete Programmiersprachen kurz vorgestellt. Hier werden insbesondere auch die im Chaosumfeld entstandenen Projekte "Argh!" und "repsub" vorgestellt.
Argh! und sein Abkömmling Aargh! sind - ähnlich BeFunge - "zweidimensionale" virtuelle Maschinen, die allerdings besonders auf die Bedürfnisse unter Unix üblicher Text-Terminals angepasst sind.
Repsub hat das Ziel, eine demokratische Programmiersprache zu sein, bei der alle Speicherstellen gleichberechtigt sind und hochparallel gleichzeitig bearbeitet werden können. Für diese auf Mustererkennung und Ersetzung basierende Sprache wurde der Beweis der Touring- Vollständigkeit erbracht.
Im dritten Teil schliesslich werden besonders seltsame Beispiele aus produktivem Code vorgestellt. Eine schöne Quelle dafür sind einige Projekte, die ursprünglich kommerziell entwickelt wurden, und dann als Open Source veröffentlicht werden. Diese erwecken beizeiten den Eindruck, die Entwickler würden ihrem eigenen Code nicht mehr Herr und suchen in der Community den Ausweg aus dem Wartungsalbtraum.
Der ErfA-Kreis Ulm plant auch wieder, begleitend zum Congress einen Shortest C Coding Contest durchzuführen - diesmal mit deutlich vereinfachten Regeln.
The first part of the presentation will - similar to last years presentation - shed some light on the funny and sportive disciplines of the art of programming. Besides new examples in disciplines that were presented last year, like obfuscated programming and shortest code, core wars and demo coding are new in the agenda.
In core wars, we have a bunch of programmes running in parallel in the same memory. (This is a typical Von-Neumann machine with multitasking, but without memory protection.) The goal is to create a program that survives as long as possible, but at the same time quickly erases the other programs from memory.
Demo coders try to exploit a given, limited (and often legacy) hardware through the use of crafty software, and thus create unexpected effects and surprising results. On so-called demo partys, those programs are presented, and sometimes even some high valued prices are put up. The winners are e. G. 3D first person shooters in 64k and video clips with sound in 4k.
In the second part of the lessons, some creatively designed programming languages will be introduced. Especially, the two projects "Argh!" and "repsub" will be presented. Both of them evolved in the orbit of the CCC.
Argh! and its derivative Aargh! are somehow similar to BeFunge in that they are two dimensional virtual machines. Argh! and Aargh! were both adjusted to fit the special needs of customary unix text mode terminals.
Repsub has the high ideal to be a democratic programming environment. All memory cells enjoy equal rights, and can be processed highly parallel. It is mathematically proved that this pattern-matching and replacement based programming language is touring complete.
Finally, the third part will introduce some extra interesting examples of production code. A fertile source for those are some commercially developed projects that were open-sourced afterwards. From time to time, those create the impression that the developers lost control of their own code. They now hope the community will help them to find the way out of their maintainance nightmare.
The CCC ErfA Group Ulm is planning to hold another shortest C coding contest on this Congress. We learned our lession from the last years contest, so the rules will be much simplified.
(C) 2004 Markus Schaber