Lua usa il subset comune di C e C++ e viene compilato tranquillamente da entrambi i compilatori di questi linguaggi, non è C puro...
Comunque se fa al caso tuo usalo!
Gli indici che partono da 1 sono una scelta dovuta anche al fatto che lua vorrebbe essere facilmente leggibile da persone non abituate alla programmazione che, come è noto, cominciano a contare da 1 e non da 0. Detto questo non mi sembra un grande problema: Un non programmatore andrà meglio, un programmatore deve solo saperlo e stare attento ai casi limite.
Comunque tecnicamente puoi usare array con base 0 è che tutte le librerie standard sono programmate per array in base 1 e dovresti scrivere quindi delle tue funzioni (che oltretutto non godrebbero dell'ottimizzazione della libreria standard, a meno tu non ti prenda la briga di scriverle in C/C++)
Il tipo nativo dei numeri in lua puoi deciderlo con un define in un header, puoi sostituire al double un long double o un long long o quel che vuoi a seconda del problema che stai affrontando. Questo non risolve totalmente il problema ma lo mitiga. Comunque se i dati che tratti entrano nel range dei double senza perdite di precisione sei apposto, sennò considera un alternativa.
Puoi anche pensare di integrare una qualsiasi libreria per il calcolo con range illimitati. non dovrebbe essere complicato e potresti farla risultare (quasi) totalmente nativa.
Dovresti comunque decidere tu la soluzione migliore dato che conosci direttamente il problema.
Mi è noto mruby per sentito dire, ma è alle fasi iniziali.
Mi è noto guile ma non ti saprei dire (da ciò che dice la pagina va su MinGW, quindi dovrebbe andare su winegcc).
Tcl.
Varie implementazioni di javascript (o come lo vuoi chiamare).
E poi svariati trigliardi di linguaggi o sperimentali o poco conosciuti/usati o mal supportati.
Io sono di parte e lua mi sta simpatico perciò non conto, ma ti direi lua.

Rispondi quotando