Använda JavaScript i dina C ++ -applikationer

När Google släppte sin Chrome-webbläsare inkluderade företaget en snabb implementering av JavaScript som kallas V8, skriptspråket på klientsidan som ingår i alla webbläsare. Tidigare antagare av JavaScript redan i Netscape 4.1-era gillade inte språket eftersom det inte fanns några verktyg för felsökning och varje webbläsare hade olika implementationer, och olika versioner av Netscape-webbläsare skilde sig också åt. Det var inte trevligt att skriva cross-browser-kod och testa den på många olika webbläsare.

Sedan dess kom Google Maps och Gmail med hela Ajax (Asynchronous JavaScript och XML) teknologier, och JavaScript hade haft ett stort comeback. Det finns nu anständiga verktyg för det. Googles V8, som är skriven i C ++, sammanställer och kör JavaScript-källkod, hanterar minnesallokering för objekt och skräp samlar objekt som det inte längre behöver. V8 är så mycket snabbare än JavaScript i andra webbläsare eftersom den kompilerar till inbyggd maskinkod, inte bytkod som har tolkats.

JavaScript V8V8 är inte bara för användning med Chrome. Om din C ++ -applikation kräver skript för att användare ska kunna skriva kod som körs vid körning kan du bädda in V8 i din applikation. V8 är en högpresterande JavaScript-motor med öppen källkod licenserad under den liberala BSD-licensen. Google har till och med gett en inbäddarguide.

Här är ett enkelt exempel som Google tillhandahåller - den klassiska Hello World i JavaScript. Det är avsett för C ++ -programmerare som vill bädda in V8 i en C ++ -applikation

int main (int argc, char * argv []) 
// Skapa en sträng med JavaScript-källkoden.
String source = String :: New ("'Hello' + ', World'");
// Samla det.
Manusmanus = manus :: kompilera (källa);
// Kör det.
Värderesultat = skript-> Kör ();
// Konvertera resultatet till en ASCII-sträng och visa det.
Sträng :: AsciiValue ascii (resultat);
printf ("% s \ n", * ascii);
retur 0;

V8 körs som ett fristående program, eller så kan det inbäddas i alla applikationer skrivna i C++.