Il linguaggio di programmazione Squirrel è un linguaggio di programmazione imperativo / OO alto livello, progettato per essere uno strumento di scripting potente che si inserisce nella dimensione, larghezza di banda della memoria, e le esigenze in tempo reale delle applicazioni come giochi. Sebbene Squirrel offre una vasta gamma di caratteristiche come:
ย ท Open Source zlib / libpng licenza
ย ท tipizzazione dinamica
ย ท delegazione
ย ท funzioni di ordine superiore
ย ท generatori
ย ท discussioni cooperative (coroutine)
ย ท ricorsione in coda
ย ท gestione delle eccezioni
ย ท gestione automatica della memoria (CPU scoppia libero; conteggio approccio ref misto / GC)
ย ท sia compilatore e la macchina virtuale si incastrano in circa 6k righe di codice C ++.
ย ท caratteri 16bit opzionale stringhe
Squirrel è ispirato linguaggi come Python, Javascript e soprattutto Lua (L'API è molto simile e il codice tabella si basa sulla Lua uno).
sintassi di scoiattolo è simile a C / C ++ / Java, ecc ... ma il linguaggio ha un carattere molto dinamico come Python / Lua etc ...
matrice locale = [1,2,3, {a = 10, b = "string"}];
foreach (i, val in array)
{
:: Print ("il tipo di val è" + typeof val);
}
Entità
Cosa c'è di nuovo in questa versione:.
- sq_getcallee () è stato aggiunto nel API
- sq_getfreevariable () funziona anche per le chiusure native.
- sono state fatte ottimizzazioni minori.
- Diversi avvisi quando si compila con GCC 4.x sono stati rimossi.
- sono stati fissati alcuni errori nella documentazione.
- Un bug utilizzando intengers SQUSEDOUBLE e 32 bit è stato fissato.
- Un bug quando si richiama generatori con closure.call () è stato fissato.
Cosa c'è di nuovo nella versione 3.0 RC1:.
- la gestione degli errori è stata migliorata Metamethods
- Il & quot; isStatic & quot; parametro è stato aggiunto al metamethod _newmember.
- è stato aggiunto sq_getrefcount () per restituire il numero di refences da C ++.
- bug minori sono stati fissati.
Cosa c'è di nuovo nella versione 2.2.3:
- aggiunto sq_getfunctioninfo
- aggiunto compilazione bandiera SQUSEDOUBLE usare carri doppia precisione
- aggiunto fessura globale _floatsize_ int la lib di base per riconoscere precisione singola e doppia precisione costruisce
- sq_wakeupvm può ora riprendere il vm con un'eccezione
- aggiunto sqstd_format
- generatori possono ora essere istanziati chiamando sq_call () o closure.call ()
- corretto un bug in sqstd_printcallstack (thx takayuki_h)
- modulo fisso per zero (thx jup)
- enumerazioni negativi fisse e costanti
- fisso generatore incidente bug se invocato come chiamata di coda (thx Mr.Accident)
- fissa alcuni bug minori
I commenti non trovato