Τι είναι ένα αρχείο NUT;
Το NUT αναφέρεται στο αρχείο NUT Open Container Format. Αυτή η μορφή αρχείου NUT ανήκει στη γλώσσα προγραμματισμού που είναι γνωστή ως Squirrel. Είναι μια αντικειμενοστραφή, υψηλού επιπέδου και επιτακτικής γλώσσας προγραμματισμού που χρησιμοποιείται κυρίως σε ενσωματωμένα συστήματα και βιντεοπαιχνίδια.
Η γλώσσα squirrel θεωρείται μια ελαφριά γλώσσα δέσμης ενεργειών που μπορεί εύκολα να προσαρμοστεί ανάλογα με το μέγεθος και το εύρος ζώνης. Περιλαμβάνει το πλεονέκτημα της αυτόματης καταμέτρησης αναφορών και της διαχείρισης των σκουπιδιών στη μνήμη.
Η σύνταξη της γλώσσας squirrel προσελκύει τους προγραμματιστές καθώς είναι C-όπως και περιλαμβάνει τη δυνατότητα της γλώσσας scripting. Ωστόσο, έχει αρκετά λιγότερα πλεονεκτήματα σε σύγκριση με άλλες πιο δημοφιλείς γλώσσες προγραμματισμού για αυτόν τον σκοπό.
Σύντομη Ιστορία
Σχεδιάστηκε από τον Alberto Demichelis το 2003. Ωστόσο, μια σταθερή έκδοση αυτής της γλώσσας κυκλοφόρησε το 2016. Σχεδιάστηκε με την άδεια του zlib/ libpng. Το 2010 η άδεια άλλαξε και μεταφέρθηκε στο MIT. Αυτή η γλώσσα θεωρείται ως μια εμπνευσμένη έκδοση του LUA (Γλώσσα προγραμματισμού). Υπάρχει μια λίστα με προτάσεις για την προηγούμενη γλώσσα στον ιστότοπο που σχεδιάστηκε από τον Alberto για να γίνει πιο συμφέρουσα.
Τεχνικές προδιαγραφές
Τα χαρακτηριστικά και οι προδιαγραφές της γλώσσας του σκίουρου είναι πολλαπλά. Παρέχει τη δυνατότητα δυναμικής πληκτρολόγησης, ιδιότητα ανάθεσης, πολλές χρήσεις κλάσεων και διεπαφών. Η σύνταξη αυτής της γλώσσας έχει ομοιότητα με τη σύνταξη της γλώσσας C. Εφαρμογές όπως το Enduro/X (διακομιστής εφαρμογών συμπλέγματος) χρησιμοποιούν αυτήν τη γλώσσα. Καθώς το Squirrel χρησιμοποιείται και για βιντεοπαιχνίδια, μερικά από αυτά είναι τα OpenTTD, GTA IV κ.λπ.
Η σταθερή έκδοση της γλώσσας είναι η 3.0.7. Ένα κιτ εργαλείων γνωστό ως MirthKit χρησιμοποιεί τη γλώσσα προγραμματισμού Squirrel για να παρέχει έναν ανοιχτό κώδικα και μια πολλαπλή πλατφόρμα για δισδιάστατα παιχνίδια. Η φύση αυτής της γλώσσας είναι δυναμική και τα περισσότερα από τα χαρακτηριστικά είναι παρόμοια με Python, LUA, κ.λπ. Περιλαμβάνει επίσης την υλοποίηση VM που βασίζεται σε καταχωρητές. Η απόδοση του Squirrel είναι πιο αργή σε σύγκριση με το LUA.
Υπάρχει επίσης ένας άλλος τύπος αρχείου επέκτασης “.nut”, γι’ αυτό θα πρέπει να εξετάσετε το μέγεθος του αρχείου για να μάθετε ποιο αρχείο NUT έχετε. Τα αρχεία NUT σεναρίου Squirrel είναι συνήθως μικρότερα από 1 MB, ενώ τα αρχεία βίντεο NUT είναι συνήθως μεγαλύτερα από 1 MB σε μέγεθος.
Παράδειγμα μορφής αρχείου NUT
function factorial(x)
{
if (x == 0) {
return 1;
}
else {
return x * factorial(x-1);
}
}
class BaseVector {
constructor(...)
{
if(vargv.len() >= 3) {
x = vargv[0];
y = vargv[1];
z = vargv[2];
}
}
x = 0;
y = 0;
z = 0;
}
class Vector3 extends BaseVector {
function _add(other)
{
if(other instanceof ::Vector3)
return ::Vector3(x+other.x,y+other.y,z+other.z);
else
throw "wrong parameter";
}
function Print()
{
::print(x+","+y+","+z+"\n");
}
}
local v0 = Vector3(1,2,3)
local v1 = Vector3(11,12,13)
local v2 = v0 + v1;
v2.Print();