Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Pregled





Squirrel je vrlo važan, objektima orijentisan programski jezik, dizajniran da bude lagan jezik za skriptovanje koji odgovara po veličini, memorijskom propusnom opsegu, zahtevima u stvarnom vremenu za aplikacije kao što su video igrice.” Iako Squirrel nudi širok spektar karakteristika kao što su:
  • MIT licenca otvorenog tipa
  • dinamičko kucanje
  • delegacija
  • klase & nasleđe
  • funkcije višeg reda
  • leksička studija
  • generatori
  • kooperativne teme (korutine)
  • trag rekurzije
  • baratanje sa izuzecima
  • automatsko upravljanje memorijom (CPU slobodno puca; mešoviti pristup ref. brojanju/GC)
  • i kompajler i virtualna mašina se uklapaju u oko 7k redova C++ koda i dodaju samo 100kb-150kb egzekutabilne veličine
  • opcione trake od 16bitnih karaktera
  • moćno uglavljivanje api-ja:
      • npr. funkcija/klase mogu biti definisane pomoću skripta ili u C
      • npr. objekti mogu da postoje u potpunosti u VM ili mogu biti vezani za originalni kod
      • npr. klase kreirane u C mogu se proširiti pomoću skripta i obratno
      • i još mnogo toga
Squirrel je inspirisan jezicima kao što je Python, Javascript i naročito Lua (API je veoma sličan i tabelarni kod je baziran na Lua)

Kako to izgleda?


Sintaksa Squirrel-a je slična C/C++/Javi itd...ali jezik je vrlo dinamične prirode kao Python/Lua itd...
local table = { a = "10" subtable = { array = [1,2,3] }, [10 + 123] = "expression index" } local array=[ 1, 2, 3, { a = 10, b = "string" } ]; foreach (i,val in array) { ::print("the type of val is"+typeof val); } ///////////////////////////////////////////// class Entity { constructor(etype,entityname) { name = entityname; type = etype; } x = 0; y = 0; z = 0; name = null; type = null; } function Entity::MoveTo(newx,newy,newz) { x = newx; y = newy; z = newz; } class Player extends Entity { constructor(entityname) { base.constructor("Player",entityname) } function DoDomething() { ::print("something"); } } local newplayer = Player("da playar"); newplayer.MoveTo(100,200,300);

Stadijum razvoja


Trenutno stabilno izdanje je 3.0.3
Projekat je bio sastavljen i pokrenut na Windowsu (x86 & x64), Linuxu (x86 & x64), Solarisu (x86 & x64), Mac OS X, FreeBSD-u, iOS-u i Androidu.
Testiran je sa sledećim kompajlerima:

MS Visual C++ 6.0, 7.0, 7.1, 8.0, 9.0 i 10.0 (x86 & x64)
MinGW gcc 3.2 (mingw specijalni 20020817-1)
Cygwin gcc 3.2
Linux gcc 3.x
Linux gcc 4.x
Solaris gcc 3.x
XCode 4


Dokumentacija mora biti poboljšana

Voleo bih da dobijem neke povratne informacije i možda da pomognem u njegovom dizajniranju/prenošenju/testiranju.

Rad u toku


U sledećem izdanju (3.1 stabilno):
  • poboljšanja api-ja
  • podešavanje performansi
  • dodatna dokumentacija

Dokumentacija


Squirrel 3.x

Squirrel 3.0 uputstvo za reference (PDF/HtmlHelp/Html Online)

Squirrel 3.0 uputstvo za standardne biblioteke (PDF/HtmlHelp/Html Online)

oba uputstva su uključena u distribuciju jezika

Squirrel 2.x

Squirrel 2.0 uputstvo za reference (PDF/HtmlHelp/Html Online)
Squirrel 2.0 uputstvo za standardne biblioteke (PDF/HtmlHelp/Html Online)
oba uputstva su uključena u distribuciju jezika.

Preuzmite

stabilno izdanje

Možete da preuzmete Squirrel 3.0.3 ovde
Objavljeno 19. juna 2012.

starije 2.x izdanje

Možete preuzeti Squirrel 2.2.5 ovde
Objavljeno 28. novembra 2011.

Autor


Zovem se Alberto Demichelis, a ako želite da saznate više o meni ovo je moja lična web stranica.




Published (Last edited): 06-08-2012 , source: http://squirrel-lang.org/index.htm