JavaScript- ի օգտագործումը ձեր C ++ ծրագրերում

JavaScript- ի օգտագործումը ձեր C ++ ծրագրերում

Երբ Google- ը թողարկեց իր Chrome զննարկիչը, ընկերությունը ներառում էր JavaScript- ի արագ իրականացում, որը կոչվում է V8, հաճախորդի կողմից գրերի լեզուն, որն ընդգրկված է բոլոր զննարկիչներում: JavaScript- ի վաղ որդեգրողները Netscape 4.1 դարաշրջանում դեռ դուր չեն եկել լեզուն, քանի որ կարգաբերման գործիքներ չկային, և յուրաքանչյուր զննարկիչ ուներ տարբեր իրականացում, և Netscape բրաուզերների տարբեր տարբերակները նույնպես տարբերվում էին: Հաճելի չէր գրել խաչաձև զննարկչի կոդ և փորձարկել այն բազմաթիվ տարբեր զննարկիչների:

Այդ ժամանակվանից ի վեր Google Maps- ը և Gmail- ը եկան ՝ օգտագործելով Ajax (Asynchronous JavaScript և XML) տեխնոլոգիաները, և JavaScript- ը վայելում էր մեծ վերադարձ: Այժմ դրա համար կան պարկեշտ գործիքներ: Google- ի V8- ը, որը գրված է C ++ ով, կազմում և իրականացնում է JavaScript- ի աղբյուրի կոդը, ղեկավարում է օբյեկտների համար հիշողության հատկացումը, և աղբը հավաքում է այլևս անհրաժեշտություն չունեցող առարկաներ: V8- ը շատ ավելի արագ է, քան JavaScript- ը այլ զննարկիչներում, քանի որ այն կազմվում է հայրենի մեքենայի կոդով, այլ ոչ թե bytecode- ով, որը մեկնաբանվել է:

JavaScript V8V8- ը միայն Chrome- ի օգտագործման համար չէ: Եթե ​​ձեր C ++ հավելվածը պահանջում է գրություններ գրել, որպեսզի օգտագործողները կարողանան գրել կոդ, որն իրականացվում է գործադրման ժամանակ, ապա կարող եք V8 ներկառուցել ձեր դիմումում: V8- ը բաց աղբյուրի բարձրորակ JavaScript շարժիչ է, որն արտոնագրված է լիբերալ BSD լիցենզիայի ներքո: Google- ը նույնիսկ տրամադրել է ներդրողի ուղեցույցը:

Ահա մի պարզ օրինակ, որը Google- ը տրամադրում է ՝ դասական Բարև աշխարհը JavaScript- ում: Այն նախատեսված է C ++ ծրագրավորողների համար, ովքեր ցանկանում են V8 ներկառուցել C ++ հավելվածում

int main (int argc, char * argv)
// Ստեղծեք տող, որը պահում է JavaScript- ի աղբյուրը:
Լարային աղբյուր = լարային :: Նոր ("'Բարև' + ', աշխարհ'");
// Կազմել այն:
Սցենարի սցենար = Սցենար :: Կազմել (աղբյուր);
// Գործարկել այն:
Արժեքի արդյունքը = սցենար-> Գործարկել ();
// Արդյունքը վերափոխեք ASCII տողի և ցուցադրեք այն:
String :: AsciiValue ascii (արդյունք);
printf ("% s n", * ascii);
վերադարձ 0;
}

V8- ն աշխատում է որպես ինքնուրույն ծրագիր, կամ այն ​​կարելի է ներկառուցել C ++ ում գրված ցանկացած դիմում: