Saturday, September 10, 2005

 

Duff's Device

I spent Tuesday to Thursday this week teaching a tailored course on C++, Optimizations and Patterns for Embedded / Real-Time software. The first day I mentioned the Duff's Device as an interesting, non-obvious way of unrolling a loop. The code itself is short but weird - it's not even obvious it should compile properly. It's pure C, no C++ magic. Have a look at this explanation from Tom Duff himself, who invented the technique.

Comments:
Non credo che avrò mai occasione di utilizzare questo tip... Sono rimasto veramente sopreso nel constatare che compila anche con MS-VC ed ho dovuto concentrarmi un poco per capirne la logica. Sempre interessanti i tuoi spunti. Toglimi una curiosità. I tuoi link sembrano fuoriuscire dalle pieghe di internet. Te ne vai in giro come lo "scooter" di Altavista oppure li acquisisci da altre fonti?

Fra i tuoi tips, quello che nel tempo mi ha giovato di più è stato:

//*---
...
//--*/

che permette di (s)commentare un blocco di codice al prezzo di +/- uno slash...

Se vorrai deliziarci con qualche altra curiosita...
 
Nel caso concreto, non ricordo bene dove ho appreso il Duff's Device, ma volendo raccontarlo qui ho cercato semplicemente un buon link con google. La maggior parte dei link che trovate qui nascono nello stesso modo: parlando di un argomento ricordo qualcosa, che ho letto da qualche parte (non necessariamente online), e cerco al volo una [buona] fonte online. Solo raramente il link mi arriva direttamente: ad esempio, l'articolo sull'overloading era segnalato in una newsletter dell'ACM.

Per i trucchi piu' o meno [in]utili, pur conscio di alimentare un branco di pervertiti :-))), tengo presente l'invito a scrivere [anche] qualcosa di piu' compilatoreccio :-).

PS
Non ho ignorato la tua domanda su Microsoft, prima o poi qualcosa in proposito scrivo...
 
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?