Memahami Cara Mesin Chrome V8 Menerjemahkan JavaScript ke dalam Kode Mesin

Sebelum mendalami inti dari Chrome V8, pertama-tama, mari kita pelajari dasar-dasarnya. Semua sistem kami terdiri dari mikroprosesor, sesuatu yang ada di dalam komputer Anda sekarang dan memungkinkan Anda untuk membaca ini.

Mikroprosesor adalah mesin kecil yang bekerja dengan sinyal listrik dan akhirnya melakukan pekerjaan itu. Kami memberikan petunjuk kepada mikroprosesor. Instruksi dalam bahasa yang dapat diinterpretasikan oleh mikroprosesor. Mikroprosesor yang berbeda berbicara bahasa yang berbeda. Beberapa yang paling umum adalah IA-32, x86–64, MIPS, dan ARM. Bahasa-bahasa ini berinteraksi langsung dengan perangkat keras sehingga kode yang tertulis di dalamnya disebut kode mesin. Kode yang kita tulis di komputer kita diubah atau dikompilasi menjadi kode mesin.

Seperti itulah kode mesin itu:

Ini terdiri dari instruksi yang dilakukan pada bagian tertentu dari memori di sistem Anda pada level rendah. Anda pasti merasa beruntung karena tidak harus menulis semua ini untuk menjalankan program Anda!

Bahasa tingkat tinggi disarikan dari bahasa mesin. Pada level abstraksi di bawah, Anda dapat melihat seberapa jauh JavaScript diabstraksi dari level mesin. C / C ++ relatif lebih dekat ke perangkat keras dan karenanya jauh lebih cepat daripada bahasa tingkat tinggi lainnya.

Sekarang kembali ke mesin V8: V8 adalah mesin Javascript open source yang kuat yang disediakan oleh Google. Jadi apa sebenarnya Mesin Javascript? Ini adalah program yang mengubah kode Javascript menjadi level yang lebih rendah atau kode mesin yang dapat dipahami oleh mikroprosesor.

Ada berbagai mesin JavaScript termasuk Rhino, JavaScriptCore, dan SpiderMonkey. Mesin ini mengikuti Standar ECMAScript. ECMAScript mendefinisikan standar untuk bahasa scripting. JavaScript didasarkan pada standar ECMAScript. Standar ini menentukan bagaimana bahasa harus bekerja dan fitur apa yang harus dimiliki. Anda dapat mempelajari lebih lanjut tentang ECMAScript di sini.

Mesin Chrome V8:

  • Mesin V8 ditulis dalam C ++ dan digunakan di Chrome dan Nodejs.
  • Ini mengimplementasikan ECMAScript sebagaimana ditentukan dalam ECMA-262.
  • Mesin V8 dapat berjalan mandiri, kita dapat menyematkannya dengan program C ++ kita sendiri.

Marilah kita memahami poin terakhir sedikit lebih baik. V8 dapat berjalan secara mandiri dan pada saat yang sama kita dapat menambahkan implementasi fungsi kita sendiri di C ++ untuk menambahkan fitur baru ke JavaScript.

Jadi misalnya: print('hello world')bukan pernyataan yang valid di Node.js. Akan muncul error jika kita kompile. Tapi kita bisa menambahkan implementasi kita sendiri dari fungsi print di C ++ di atas V8 yang merupakan open source di Github, sehingga membuat fungsi print bekerja secara native. Hal ini memungkinkan JavaScript untuk memahami lebih dari apa yang harus dipahami oleh standar ECMAScript.

Ini adalah fitur yang kuat karena C ++ memiliki lebih banyak fitur sebagai bahasa pemrograman dibandingkan dengan JavaScript, karena lebih dekat dengan perangkat keras seperti menangani file dan folder pada hard drive.

Mengizinkan kita untuk menulis kode dalam C ++ dan membuatnya tersedia untuk JavaScript membuatnya sehingga kita dapat menambahkan lebih banyak fitur ke JavaScript.

Node.js sendiri adalah implementasi C ++ dari mesin V8 yang memungkinkan pemrograman sisi server dan aplikasi jaringan.

Sekarang mari kita lihat beberapa kode sumber terbuka di dalam mesin. Untuk melakukan ini, Anda harus pergi ke folder v8 / samples / shell.cc.

Di sini Anda dapat melihat implementasi dari berbagai fungsi seperti Printdan Read,yang secara native tidak tersedia di Node.js.

Di bawah ini, Anda dapat melihat implementasi Printfungsinya. Setiap kali print()fungsi dipanggil di Node.js, itu akan membuat panggilan balik dan fungsi akan dijalankan.

Demikian pula, kita dapat menambahkan implementasi kita sendiri untuk berbagai fungsi baru di C ++ di dalam V8 yang memungkinkannya untuk dipahami oleh Node.js.

Itu tentu saja terlalu berlebihan untuk pernyataan sederhana dan itulah jumlah pekerjaan yang dilakukan mesin V8 di bawah kapnya.

Sekarang Anda harus memiliki pemahaman yang jelas tentang cara kerja Node.js dan apa sebenarnya mesin Chrome V8 itu.

Terima kasih telah membaca artikel ini. Mari kita tindak lanjuti di Twitter , Linkedin , Github , dan Facebook .