• # Interpréteur Java

    Posté par . En réponse à la dépêche GCC 3.3 est sorti. Évalué à 10.

    La traduction française de la news est foireuse. "The bytecode interpreter is now direct threaded and thus faster" new veut pas du tout dire "L'interpréteur java intègre directement les threads et est donc plus rapide." Direct threaded code est une technique de simulation de code visant à stocker des pointeurs directement vers le label débutant un handler d'opcode. Par exemple: #include <stdio.h> #define DISPATCH_NEXT(ip) goto **ip++ int main(void) { void *prog[] = { &&add, &&sub, &&stop }; void **ip = prog; DISPATCH_NEXT(ip); add: printf("add\n"); DISPATCH_NEXT(ip); sub: printf("sub\n"); DISPATCH_NEXT(ip); stop: printf("stop\n"); return 0; } C'est une vieille technique, c.f. un article de Bell73 par exemple. De nos jours, la variante est améliorée en copiant carrément le code. Voir notament "Improving direct threaded code with selective inlining" de Ian Piumarta, 1998 (titre de mémoire, approximatif). Plus récemment, voir qemu de Fabrice Bellard.