Utilizarea JavaScript în aplicațiile dvs. C ++

Când Google a lansat browserul Chrome, compania a inclus o implementare rapidă a JavaScript numită V8, limbajul de scripturi din partea clientului inclus în toate browserele. Adaptorii timpurii ai JavaScript în epoca Netscape 4.1 nu le plăceau limba, deoarece nu existau instrumente pentru depanare și fiecare browser avea implementări diferite, iar versiunile diferite ale browserelor Netscape diferă de asemenea. Nu a fost plăcut să scrieți codul browserului și să îl testați pe o mulțime de browsere diferite.

De atunci, Google Maps și Gmail au venit prin utilizarea întregii tehnologii Ajax (Asynchronous JavaScript și XML), iar JavaScript s-a bucurat de o revenire majoră. Acum există instrumente decente pentru aceasta. V8 Google, care este scris în C ++, compilează și execută codul sursă JavaScript, gestionează alocarea memoriei pentru obiecte și gunoiul colectează obiecte de care nu mai are nevoie. V8 este mult mai rapid decât JavaScript în alte browsere, deoarece compilează codul auto original, nu bytecode care a fost interpretat.

JavaScript V8V8 nu este utilizat numai cu Chrome. Dacă aplicația dvs. C ++ necesită scripturi pentru ca utilizatorii să poată scrie cod care se execută în timpul rulării, atunci puteți încorpora V8 în aplicație. V8 este un motor JavaScript de înaltă performanță open source licențiat sub licența liberală BSD. Google a furnizat chiar și un ghid încorporat.

Iată un exemplu simplu pe care Google îl oferă clasicul Hello World în JavaScript. Este destinat programatorilor C ++ care doresc să încorporeze V8 într-o aplicație C ++

int main (int argc, char * argv []) 
// Creați un șir care conține codul sursă JavaScript.
String source = String :: New ("'Hello' + ', World'");
// Compilați-l.
Script script = Script :: Compile (sursa);
// Rulați-l.
Valoare rezultat = script-> Run ();
// Convertiți rezultatul într-un șir ASCII și afișați-l.
String :: AsciiValue ascii (rezultat);
printf ("% s \ n", * ascii);
returnare 0;

V8 rulează ca un program autonom sau poate fi încorporat în orice aplicație scrisă în C++.