Check my code

März 2, 2010 um 8:23 pm | Veröffentlicht in GNU/Linux, Programmieren | Hinterlasse einen Kommentar

Dieser Heise-Artikel hat mich auf ein cooles Projekt hingewiesen welches einen maximal 256 Zeilen langen Sourcecode auf häufige Fehler und potenzielle Bugs hin untersucht. Check my code heißt diese interessante Idee und ist zur Zeit noch im Beta-Stadium.

Zustande kam das Projekt an der Universität Saarland indem die Linux-Distribution Gentoo einer vollständigen Analyse unterzogen wurde. Deshalb heißt es im Untertitel der Webseite auch: "compare your code with the wisdom of Linux". Im Genauen wurden knapp 16 Millionen Regeln erkannt welche dann wiederum miteinander verglichen und nach ihrer Auftrittshäufigkeit gewichtet wurden. Das Projekt geht davon aus, dass häufiger auftretende Vorgehensweisen auch richtiger sind. (Ob der Umkehrschluss, dass eine unique Lösung per se falsch ist stimmt kann ich nicht sagen.)

Nach den Angaben des Projektes wurden die Regeln anhand von C-Code festgestellt. Da nichts über die Sprachen geschrieben steht die man zum Vergleich eingeben kann nehme ich an, dass vorerst auch nur C-Code verglichen werden kann. Da ich in meistens in C++ programmiere und keine Erfahrung mit aufwändigerem C-Code habe kann ich die Qualität des Service (noch) nicht testen. Ich habe jedoch die C++-Implementation einer selbstgeschriebenen Klasse durch den Parser gejagt. Ob die Tatsache, dass keine Abnormalitäten gefunden wurden jetzt darauf hinweist, dass ich ein guter Programmierer bin (ich versuche sehr auf Les- und Wartbarkeit zu achten) oder der Parser mit dem Dokument einfach nichts anfangen konnte kann ich nicht sagen.

Die Betreiber des Projektes schreiben selbst, dass der Parser nicht die Syntax sondern Abnormalitäten zu den gefundenen Vorgehensweisen im untersuchten Code bemängelt. Aus unbekannten oder selten verwendeten Vorgehensweisen soll nach der Philosophie des Projektes eine höhere Chance für Bugs hervorgehen. Jedoch ist auch Check my code kein Allheilmittel und nur begrenzt überhaupt zur Fehlersuche einsetzbar. Denn bestimmte Probleme wie das Terminieren von Schleifen bzw. Rekursionen u.a. sind ja von Automaten eher unlösbar.

Falls C++ im aktuellen Stand noch nicht unterstützt wird wäre es schön wenn dem eines Tages so wäre. Genauso wie Java ist C++ heute ja immer noch eine wichtige Sprache. Grundsätzlich finde ich aber den Ansatz schon sehr interessant.

Creative Commons License
This work by Stefan Ohri is licensed under a Creative Commons Attribution-ShareAlike 3.0 Austria License

=-=-=-=-=
Powered by Blogilo

Schreibe einen Kommentar »

RSS feed for comments on this post. TrackBack URI

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Bloggen auf WordPress.com.
Entries und Kommentare feeds.

%d Bloggern gefällt das: