Ekorre

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 maj 2017; kontroller kräver 12 redigeringar .
Ekorre
Språkklass multiparadigm
Utförandetyp tolkat , JIT
Framträdde i 2003
Författare Alberto Demichelis
Släpp 3.2 (10 februari 2022 ) ( 2022-02-10 )
Blivit påverkad Lua , Python , Javascript , C++
Licens zlib/libpng-licens
Hemsida squirrel-lang.org

Squirrel (från  engelska  -  "squirrel") är ett tolkat programmeringsspråk designat speciellt för användning som skriptspråk i realtidsapplikationer som datorspel. Den är fritt distribuerad , öppen källkod.

Huvuddrag

Skillnader från Lua

Datatyper

Ekorre är ett språk med dynamisk datatypsbestämning  - typen av en variabel bestäms av värdet som den för närvarande lagrar och kan ändras när ett nytt värde tilldelas. Alla värden i Squirrel kan lagras i variabler, användas som argument för funktionsanrop och returneras som ett resultat av deras exekvering.

Värden i Squirrel kan vara av följande typer:

Programexempel

Faktoriell beräkning

funktionsfaktoriell ( x ) _ { om ( x == 0 ) { retur 1 ; } returnera x * faktoriell ( x - 1 ); }

Generator av slumptal:

funktion gen_slumpmässig ( max ) { local last = 42 ; lokal IM = 139968 ; lokal IA = 3877 ; lokal IC = 29573 ; för (;;) // oändlig loop { utbyte ( max * ( sista = ( sista * IA + IC ) % IM ) / IM ); } } lokal randtor = gen_random ( 100 ); för ( lokal i = 0 ; i < 10 ; i ++ ) print ( ">" + CV randtor + " \n " );

Klasser och arv:

klass BaseVector { konstruktör ( x , y , z ) { detta . x = x ; detta . y = y _ detta . z = z _ } x = 0 _ y = 0 _ z = 0 _ } klass Vector3 utökar BaseVector { function _add ( other ) // '+' operatoröverbelastning, se http://www.squirrel-lang.org/squirreldoc/reference/language/metamethods.html för detaljer { if ( annan instans av :: Vector3 ) return :: Vector3 ( x + annat . x , y + annat . y , z + annat . z ); annan kasta "fel parameter" ; } print () funktion { :: print ( x + ", " + y + ", " + z + " \n " ); } } lokal v0 = Vector3 ( 1 , 2 , 3 ); lokal v1 = Vector3 ( 11 , 12 , 13 ); lokal v2 = v0 + v1 ; v2 . print ();

Implementering

Källkoden kompileras till bytecode, som sedan exekveras på den virtuella maskinen. För tidskritiska uppgifter finns en JIT - kompilator.

Applikationer som använder

Spel

Icke-spelappar

  • Kod::Blockar [2]
  • Whatsapp för Windows

Se även

Anteckningar

  1. "Välkommen till Vice City Multiplayer-webbplatsen!" Arkiverad 30 mars 2015 på Wayback Machine . vicecitymultiplayer.com
  2. Biplab Kumar Modak. Skriptkod::Blocks // C++ Applikationsutveckling med Code::Blocks. - Packt Publishing Ltd, 2013. - ISBN 9781783283422 .

Länkar