Co je soubor NUT?
NUT odkazuje na soubor NUT Open Container Format. Tento formát souboru NUT patÅà do programovacÃho jazyka, který je známý jako Squirrel. Jedná se o objektovÄ orientovaný, na vysoké úrovni a imperativnà programovacà jazyk, který se použÃvá pÅevážnÄ ve vestavÄných systémech a videohrách.
Jazyk squirrel je považován za lehký skriptovacà jazyk, který lze snadno upravit podle velikosti a Å¡ÃÅky pásma. Zahrnuje výhodu automatického poÄÃtánà referencà a správy odpadků v pamÄti.
Syntaxe jazyka squirrel pÅitahuje vývojáÅe, protože je podobná C a zahrnuje rys skriptovacÃho jazyka. Ale pÅesto má mnohem ménÄ výhod ve srovnánà s jinými populárnÄjÅ¡Ãmi programovacÃmi jazyky pro tento úÄel.
StruÄná historie
Byl navržen Albertem Demichelisem v roce 2003. V roce 2016 vÅ¡ak byla vydána stabilnà verze tohoto jazyka. Byl navržen pod licencà zlib/libpng. V roce 2010 byla licence zmÄnÄna a pÅevedena na MPO. Tento jazyk je považován za inspirovanou verzi LUA (Programovacà jazyk). Na webových stránkách navržených Albertem, aby byl výhodnÄjÅ¡Ã, je seznam návrhů pro dÅÃvÄjšà jazyk.
Technické specifikace
Funkce a specifikace jazyka veverek jsou Äetné. Poskytuje možnost dynamického psanÃ, vlastnost delegovánÃ, nÄkolik použità tÅÃd a rozhranÃ. Syntaxe tohoto jazyka je podobná syntaxi jazyka C. Aplikace jako Enduro/X (klastrový aplikaÄnà server) použÃvajà tento jazyk. Protože se Squirrel použÃvá i pro videohry, nÄkteré z nich jsou OpenTTD, GTA IV atd.
Stabilnà verze jazyka je 3.0.7. Sada nástrojů známá jako MirthKit použÃvá programovacà jazyk Squirrel k poskytovánà open-source a multiplatformnÃch dvourozmÄrných her. Povaha tohoto jazyka je dynamická a vÄtÅ¡ina funkcà je podobná Pythonu, LUA atd. Zahrnuje také implementaci VM založených na registrech. Výkon Squirrel je pomalejšà ve srovnánà s LUA.
Existuje také dalšà typ souboru s pÅÃponou “.nut”, proto byste se mÄli podÃvat na velikost souboru, abyste zjistili, který soubor NUT máte. Soubory Squirrel script NUT jsou vÄtÅ¡inou menšà než 1 MB, zatÃmco soubory NUT videa jsou obvykle vÄtšà než 1 MB.
PÅÃklad formátu souboru 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();