Hexspeak

Da Wikipedia, l'enciclopedia libera.

Hexspeak è una forma di scrittura ideata da alcuni programmatori di computer. La sua particolarità è quella di utilizzare solo le cifre del sistema numerico esadecimale, ovvero le normali cifre da 0 a 9 e le lettere dell'alfabeto dalla A alla F. La cifra 0 viene usata al posto della lettera O, la cifra 1 al posto della I, e la cifra 5 al posto della S. Ovviamente il numero di parole rappresentabili usando solo queste lettere è piuttosto limitato.

La motivazione è che la rappresentazione esadecimale viene usata comunemente dai programmi che mostrano direttamente il contenuto della memoria. È entrata perciò nell'uso comune tra i programmatori l'abitudine di usare parole in Hexspeak come numeri magici per individuare facilmente certe condizioni durante l'attività di debugging.

Alcuni numeri magici[modifica | modifica sorgente]

(Il prefisso "0x" è usato in diversi linguaggi di programmazione per indicare i numeri esadecimali.)

  • 0xABADBABE (a bad babe, "una ragazza cattiva") è usato da Apple come numero magico per il "Boot Zero Block".
  • 0xBAADF00D (bad food, "cibo cattivo") è usato da Microsoft nella funzione LocalAlloc(LMEM_FIXED) per indicare memoria heap allocata ma non inizializzata.
  • 0xBADDCAFE (bad cafe, "caffè cattivo") è usato da OpenSolaris nella funzione watchmalloc per indicare memoria allocata ma non inizializzata.
  • 0xCAFEBABE (cafe babe, "ragazza del caffè") è usato da Mach-O ("Fat binary" nelle architetture 68k and PowerPC) per identificare file oggetto, e dal linguaggio Java per identificare file bytecode di classi.
  • 0xDEADBEEF (dead beef, "carne morta") è usato dai sistemi IBM RS/6000, PowerPC 32-bit e Commodore Amiga come numero magico di debug, e da Solaris per indicare memoria di kernel deallocata.
  • 0xDEFEC8ED (defecated, "defecato"; si noti l'uso del numero 8, eight in inglese, per il gruppo di lettere at che in questa parola si pronuncia allo stesso modo) è usato da OpenSolaris per i core dump.
  • 0xFEEDFACE (feed face) è usata come header nei file binari Mach-O, e come valore invalido di puntatore per watchmalloc in OpenSolaris.

Curiosità[modifica | modifica sorgente]

Una curiosità particolare di questo linguaggio è data dal numero 12237792, che, convertito in esadecimale, da come risultato "BABBE0", naturalmente leggibile solo da italiani e interpretando lo zero finale come una "O". Su questo fatto si basa una burla circolante per e-mail, che invita a digitare quel numero sulla calcolatrice di sistema di Windows, e interpretando il risultato convertito in esadecimale come una "prova" di avere il computer spiato dalla Microsoft.

Un altro numero che in italiano dà una parola di senso compiuto è 1041744, che corrisponde a "FE550", interprentando i due 5 come lettera "S" e lo 0 come lettera "O".