domenica 3 agosto 2008

Così tanta luce in un centimetro quadrato.

Avete mai pensato quanti byte contiene il più piccolo programma compilabile, linkabile e lanciabile scritto in C++ standard?
Bé, non è poi così difficile darsi una risposta. Basta aprire un editor qualsiasi, ad esempio TextEdit (A, tra l'altro, io uso Mac OS X, di Apple. Computers e sistemi per tempi più civilizzati come direbbe Obi-Wan Kenobi), scrivere: int main(){} , contare i caratteri ed accorgersi che sono esattamente 12.
Se ora provate a compilare e linkare la translation unit (che nel frattempo avrete creato salvando il file generato da TextEdit), ad esmpio con gcc, vi accorgerete che nessun errore o warning verrà segnalato.
Avete ora un mini programma completamente eseguibile. Ok, d'accordo, non è che questo programma faccia qualcosa di molto interessante, ma inizialmente ci siamo chiesti quanti byte avrebbe contenuto un programma minimale in C++ e non un programma minimale che facesse qualcosa.
Se ci fermiamo ora a riflettere un attimo, in soli 12 byte c'è tutta l'informazione necessaria ad un compilatore per eseguire un'analisi sintattica e semantica del codice e ad un linker per creare del codice macchina eseguibile.
Parafrasando quindi la frase tratta dall'opera prima di Marisha Pessl : ”Teoria e pratica di ogni cosa”, posso tranquillamente affermare: “Così tanta informazione in 12 byte”.

Luca Ciciriello

Nessun commento: