de Mayank Tripathi
Înțelegerea modului în care motorul Chrome V8 traduce JavaScript în codul mașinii
Înainte să ne scufundăm adânc în nucleul V8 al lui Chrome, mai întâi, să ne dăm jos fundamentele. Toate sistemele noastre sunt formate din microprocesoare, ceea ce stă în computerul dvs. chiar acum și vă permite să citiți acest lucru.
Microprocesoarele sunt mașini minuscule care funcționează cu semnale electrice și în cele din urmă fac treaba. Oferim instrucțiunilor microprocesoarelor. Instrucțiunile sunt în limbajul pe care microprocesoarele îl pot interpreta. Diferite microprocesoare vorbesc limbi diferite. Unele dintre cele mai frecvente sunt IA-32, x86-64, MIPS și ARM. Aceste limbi interacționează direct cu hardware-ul, astfel încât codul scris în ele se numește cod mașină. Codul pe care îl scriem pe computerele noastre este convertit sau compilat în cod mașină.
Așa arată codul mașinii:

Acesta constă din instrucțiuni care sunt efectuate la o anumită bucată de memorie din sistemul dvs. la un nivel scăzut. Trebuie să vă simțiți norocoși pentru că nu trebuie să scrieți toate acestea pentru a vă rula programul!
Limbile de nivel înalt sunt extrase din limbajul mașinii. În nivelul de abstractizare de mai jos, puteți vedea cât de departe este extras JavaScript de la nivelul mașinii. C / C ++ sunt relativ mult mai aproape de hardware și, prin urmare, mult mai rapid decât alte limbaje de nivel înalt.

Revenim la motorul V8: V8 este un motor Javascript puternic open source furnizat de Google. Deci, ce este de fapt un motor Javascript? Este un program care convertește codul Javascript în nivel inferior sau cod de mașină pe care microprocesoarele îl pot înțelege.
Există diferite motoare JavaScript, inclusiv Rinocer, JavaScriptCore, și Maimuta paianjen. Aceste motoare respectă standardele ECMAScript. ECMAScript definește standardul pentru limbajul de scriptare. JavaScript se bazează pe standardele ECMAScript. Aceste standarde definesc modul în care ar trebui să funcționeze limba și ce caracteristici ar trebui să aibă. Puteți afla mai multe despre ECMAScript Aici.

Motorul Chrome V8:
- Motorul V8 este scris în C ++ și utilizat în Chrome și Nodejs.
- Implementează ECMAScript așa cum este specificat în ECMA-262.
- Motorul V8 poate funcționa independent, îl putem încorpora cu propriul nostru program C ++.
Să înțelegem ultimul punct puțin mai bine. V8 poate rula independent și în același timp putem adăuga propria noastră implementare a funcției în C ++ pentru a adăuga noi caracteristici la JavaScript.

Deci, de exemplu: print('hello world')
nu este o declarație validă în Node.js. Va da eroare dacă o compilăm. Dar putem adăuga propria noastră implementare a funcției de imprimare în C ++ pe partea de sus a V8, care este open source la Github, făcând astfel funcția de imprimare să funcționeze nativ. Acest lucru permite JavaScript să înțeleagă mai mult decât ceea ce standardul ECMAScript specifică că JavaScript ar trebui să înțeleagă.
Aceasta este o caracteristică puternică, deoarece C ++ are mai multe caracteristici ca limbaj de programare în comparație cu JavaScript, deoarece este mult mai aproape de hardware, cum ar fi tratarea fișierelor și folderelor de pe hard disk.
Permițându-ne să scriem cod în C ++ și să-l punem la dispoziția JavaScript, îl facem astfel încât să putem adăuga mai multe caracteristici la JavaScript.
Node.js în sine este o implementare C ++ a unui motor V8 care permite programarea pe partea de server și aplicațiile de rețea.
Să vedem acum câteva dintre codurile open source din interiorul motorului. Pentru a face acest lucru, trebuie să mergeți la v8 / samples / shell.cc pliant.
Aici puteți vedea implementarea diferitelor funcții, cum ar fi Print
și Read,
care nu sunt nativ disponibile în Node.js.
Mai jos, puteți vedea implementarea programului Print
funcţie. Ori de câte ori print()
funcția este invocată în Node.js, va crea un apel invers și funcția va fi executată.
În mod similar, putem adăuga propria noastră implementare a diferitelor funcții noi în C ++ în V8, permițându-i să fie înțeleasă de Node.js.

Acest lucru este cu siguranță prea mult pentru a obține o declarație simplă și asta este cantitatea de lucru pe care o face motorul V8 sub capotă.
Acum trebuie să înțelegeți clar cum funcționează Node.js și ce este de fapt motorul Chrome V8.
Vă mulțumim că ați citit acest articol. Să continuăm Stare de nervozitate, Linkedin, Github, și Facebook.