Skip to content

Javascript: Interpretatsion tilmi yoki Kompilyatsion?

Chop etilgan: at 08:53 AM

Kirish

Dasturlash tillari haqida gap ketganda, ularni odatda ikkita toifaga ajratishadi: kompilyatsion va interpretatsion tillar. Ba’zida esa bunday an’anaviy taqsimot zamonaviy tillarning ishlash mexanizmlarini to‘liq aks ettira olmaydi. Javascript ham shunday tillardan biri. Ushbu maqolada Javascriptning interpretatsion va kompilyatsion tillardan farqi, u qanday ishlashi va zamonaviy Javascript engine’lar bu jarayonni qanday amalga oshirishi haqida gaplashamiz.


Interpretatsion va Kompilyatsion tillar o‘rtasidagi farq

TavsifKompilyatsion Tillar (C, Go)Interpretatsion Tillar (Python, PHP)
Kod bajarilishidan oldinTo‘liq kompilyatsiya qilinadiTo‘g‘ridan-to‘g‘ri interpretatsiya qilinadi
Mashina kodiOldindan hosil qilinadiRuntime jarayonida ishlanadi
Ishga tushirish tezligiOdatda tezroqNisbatan sekinroq
MisollarC, Rust, GoPython, PHP, Ruby

Javascriptning dastlabki tabiati

Javascript dastlab 1995-yilda Brendan Eich tomonidan brauzerlar uchun interpretatsion til sifatida yaratilgan. Ya’ni, Javascript kodi brauzer tomonidan qatorma-qator o‘qilib, darhol bajarilib borilgan.

Ammo vaqt o‘tishi bilan veb-dasturlarning murakkablashishi, foydalanuvchi interfeysi va logikasi og‘irlashishi — Javascript’ning bajarilish tezligiga talabni oshirdi. Bu esa engine’larni takomillashtirishga olib keldi.


Zamonaviy Javascript: JIT (Just-In-Time) kompilyatsiya

Hozirgi kunda Google V8 (Chrome va Node.js uchun), SpiderMonkey (Firefox uchun) va boshqa Javascript engine’lari JIT kompilyatsiya texnologiyasidan foydalanadi.

JIT kompilyatsiya — bu interpretatsiya va kompilyatsiya jarayonlarini runtime (dastur ishga tushayotganda) paytida birlashtiradigan uslub.

Jarayon quyidagicha kechadi:

  1. Parsing — kod matni syntax tree (AST) ga aylantiriladi.
  2. Interpretatsiya — AST orqali dastur bajariladi.
  3. Hotspot analysis — eng ko‘p ishlatiladigan funksiyalar yoki kod bloklari aniqlanadi.
  4. JIT Compilation — aynan shu hotspot qismlar mashina kodiga aylantirilib, keyingi chaqiruvlarda tezroq bajariladi.

Bu uslub yordamida Javascript engine’lari dastur ish faoliyatini sezilarli darajada tezlashtira oldi.


Javascript — qaysi turkumga mansub?

Shu o‘rinda savol:
Javascript interpretatsion tilmi yoki kompilyatsion?

Javob:
Javascriptni to‘liq interpretatsion ham, to‘liq kompilyatsion ham deyish mumkin emas.

To‘g‘riroq ta’rif:

Javascript — bu JIT kompilyatsiya asosidagi hybrid til.

Ya’ni, runtime jarayonida avval kod interpretatsiya qilinadi, zarur qismlar esa JIT yordamida kompilyatsiya qilinib, mashina kodida tezroq ishlaydi.


Misol: C va Javascript farqi

C dasturida:

#include <stdio.h>

int main() {
    printf("Hello, world!");
    return 0;
}

Bu kod oldindan kompilyatsiya qilinib, bajariladigan .exe faylga aylantiriladi.

Javascript dasturida:

console.log("Hello, world!");

Bu kod esa brauzer yoki Node.js tomonidan runtime paytida o‘qilib, darhol bajariladi. Agar kodda ko‘p ishlatiladigan funksiya bo‘lsa, engine uni JIT bilan kompilyatsiya qilib tezlashtirishi mumkin.


Xulosa

Javascript dastlab interpretatsion til sifatida yaratilgan bo‘lsa-da, zamonaviy talablarga moslashgan holda JIT kompilyatsiya texnologiyasini o‘zlashtirgan. Shuning uchun uni faqat interpretatsion yoki faqat kompilyatsion til deyish to‘g‘ri emas.

Eng aniq ta’rif:

Javascript — bu runtime JIT kompilyatsiya asosidagi hybrid dasturlash tili.

Bu mexanizm orqali Javascript brauzer va server muhitida ham samarali va tez ishlash imkoniyatiga ega bo‘ldi.


Oldingi maqola
Virtual DOM nima? (ReactJS)
Keyingi maqola
JWT vs Session: Farqi va Afzalliklari