jump to navigation

Syntaxis de C, C++, JAVA y la cosa de Duff June 22, 2013

Posted by hackandfab in Uncategorized.
Tags: , , , ,
add a comment

Image

Durante una comida del trabajo me comentaron que la sintaxis y estructuras básicas de C, C++ y Java eran las mismas poniendo como ejemplo “el while y el case” y yo decia que no era asi. El caso más extremo práctico que no solo es una curiosidad academica es la cosa o dispositivo de Duff.

http://en.wikipedia.org/wiki/Duff%27s_device

Es un tipo de estructura muy usada en drivers para pasar datos entre registros.

Básicamente es un do_while dentro de un switch y esto se puede hacer en C y C++ pero no se puede hacer en JAVA. Es solo un ejemplo de que las estructuras son similares pero no idénticas. Es posible implementar lo mismo sin punteros, no es cuestion de que en JAVA no se puedan usar punteros sin más.

http://www.lysator.liu.se/c/duffs-device.html

send(to, from, count)
register short *to, *from;
register count;
{
        register n = (count + 7) / 8;
        switch(count % 8) {
        case 0: do {    *to = *from++;
        case 7:         *to = *from++;
        case 6:         *to = *from++;
        case 5:         *to = *from++;
        case 4:         *to = *from++;
        case 3:         *to = *from++;
        case 2:         *to = *from++;
        case 1:         *to = *from++;
                } while(--n > 0);
        }
}