il linguaggio Lua: parte 3

segue dalla seconda parte Che fai tu luna in ciel ? : le funzioni Fino a che scriviamo script di poche righe, possiamo inserire le istruzioni nel programma principale, ma aumentando la complessità diventa necessario organizzare il codice in pezzi indipendenti e riutilizzabili; come in tutti gli altri linguaggi, in Lua è possibile definire funzioni; vediamo un esempio piuttosto classico: function fattoriale(n) local f=1 -- variabile locale alla funzione for i=2,n do f=f*i end return f Abbiamo definito la funzione fattoriale, che da ora in avanti possiamo richiamare nel nostro codice: ...

March 20, 2017 · Andrea Manzini

convert a binary file to ascii using hexdump

I have a binary file with data stored as two-byte big-endian 16-bit words. We need to extract the values in the file and print them in decimal ASCII format, so to obtain numbers in the 0-655535 range. let’s create the sample file: $ echo -en "\x01\x02\x03\x04\x05\x06\x07\x08" > file.bin and show its content in binary form: $ hexdump -C file.bin 00000000 01 02 03 04 05 06 07 08 |........| 00000008 to get the desired output we can use the powerful, but little documented format string option of hexdump: ...

October 20, 2016 · Andrea Manzini

il linguaggio Lua: parte 2

segue dalla prima parte Moonwalking: Tipi di dato Nello scorsa puntata abbiamo utilizzato due degli otto tipi disponibili: i numeri e le stringhe. Per semplicita’, Lua non distingue tra interi e floating point: tutti i valori numerici sono conservati come double, cioe’ in virgola mobile a doppia precisione. Nel caso la CPU non disponesse di unita’ FPU, è possibile cambiare una riga nel sorgente (per l’esattezza, #define LUA_NUMBER in lua.h) e ricompilare; questo si fa tipicamente nei sistemi embedded con processori a basse prestazioni. Le stringhe posso essere delimitate da apici singoli o doppi, nel qual caso vengono espanse le usuali sequenze di escape come \b e \n; usando invece i delimitatori [[ ]], possiamo scrivere stringhe su piu’ righe e disattivare l’interpolazione. Vediamo un paio di esempi, sfruttando l’opzione -e per eseguire codice da riga di comando: ...

May 24, 2016 · Andrea Manzini

il linguaggio Lua: prima parte

introduzione Ho sempre avuto un debole per il software leggero e snello: sara’ un retaggio di quando la memoria si misurava in Kb e lo storage era basato su… audiocassette! Lua e’ un linguaggio che incarna questa filosofia: occupa circa un centinaio di kbyte (meno di molte pagine web), ha una stupefacente rapidita’ di esecuzione, una sintassi chiara e, come bonus, gira su qualsiasi CPU per cui sia disponibile un compilatore C. ...

April 13, 2016 · Andrea Manzini