FlightGear/Il linguaggio NASAL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 13:
* Le performance sono veramente interessanti, a livello di Garbage collection Nasal supera le applicazioni in Perl, mentre a livello di calcolo numerico è nettamente migliore rispetto al Python.
 
=Integrazione con FlightGear=
==Riferimenti==
 
L'integrazione di una applicazione Nasal avviene per mezzo di uno script XML ad esempio nella forma:
 
<source lang="Xml">
<binding>
<command>nasal</command>
<script>
print("Binding Invoked!");
</script>
</binding>
</source>
 
Ove il tag ''<binding>'' indica che ci sarà una unione (''binding'') tra i dati presenti nello script è il comando successivo che sarà espresso con uno script Nasal ovvero ''<command>nasal</command>''. A questo punto inizia lo script in Nasal ''<script>print("Binding Invoked!");</script>''.
 
==getprop() and setprop()==
 
Per comunicare i dati tra l'ambiente che invoca e lo script Nasal è possibile utilizzare diverse tecniche, la più semplice è di avvalersi dell'albero globale delle proprietà, ovvero di quella struttura accennata al cap (...) che contiene tutte le variabili globali definite nel programma FlightGear. Per fare questo si utilizzano due funzioni '''getprop()''' e '''setprop()'''. Ad esmepio:
 
<source lang="Xml">
setprop("/sim/bar", getprop("/sim/foo"));
</source>
 
Un esempio più complesso si può con questo esempio, ove la variabile temporanea ''ThisAircraft'' è una stringa che servirà a puntare le proprietà dell'velivolo. La funzione ''setprop'' in questo caso porrà nella proprietà ''rashed'' il valore ''0'', quindi avremo il seguente codice Nasal:
 
<source lang="Xml">
ThisAircraft = "/sim/my/aircraft/properties";
setprop(ThisAircraft, "crashed", 0);
</source>
 
==Riferimenti==
 
[http://plausible.org/nasal/ Nasal ('''''N'''ot '''a'''nother '''s'''cripting '''l'''anguage'') di Andy Ross]