DEV Community

Cover image for Compiling JavaScript
Selvaraj Ganesan
Selvaraj Ganesan

Posted on

Compiling JavaScript

How JavaScript is Recognized?

Browser-க்கு உள்ள ஒரு Engine இருக்கும் (Example: Chrome-ல இருக்குற V8 Engine). இது ஒரு "Translator" மாதிரி வேலை செய்யும்.

நிஜத்துல JavaScript ஒரு JIT (Just-In-Time) Compiled language. அதாவது, நீங்க குடுக்குற code-ஐ browser உடனே run பண்ணாம, அதுக்குள்ள இருக்குற Engine (Example: Chrome-ல V8 engine) சில முக்கியமான steps-ஐ பண்ணும்

Tokenizing (வார்த்தைகளை பிரித்தல்):
நீங்க குடுக்குற code-ஐ (ஒரு நீளமான string-ஐ) browser-ஓட Engine படிச்சு, அதுல இருக்குற ஒவ்வொரு வார்த்தையையும் அதோட வேலைக்கு ஏத்த மாதிரி "Groups"-ஆ பிரிக்குறதுதான் Tokenizing.
நீங்க var name = "Dev"; அப்படின்னு code எழுதுனா, Engine முதல்ல அதை தனித்தனி துண்டுகளா (Tokens) பிரிக்கும்.

  • var — இது ஒரு Keyword.
  • name — இது ஒரு Identifier.
  • = — இது ஒரு Assignment operator.

Example :- ஒரு பெரிய மூட்டைய பிரிச்சு, அதுல இருக்குற சாமான்களை தனித்தனியா அடுக்கி வைக்கிற மாதிரி.

Parsing (Grammar செக் பண்றது):
அடுத்தது, இந்த Engine அந்த வார்த்தைகள் எல்லாம் சரியான வரிசையில (Order) இருக்கானு பார்க்கும். இததான் AST (Abstract Syntax Tree)-ன்னு சொல்லுவாங்க.
ஒருவேளை நீங்க var = name அப்படின்னு தப்பா எழுதுனா, "Syntax Error" அப்படின்னு திட்டும்.

Example :- நம்ம தப்பா இங்கிலீஷ் பேசுனா Teacher திருத்துவாங்கல்ல? அதே மாதிரிதான் இதுவும்.

Compilation - JIT (உடனுக்குடன் மொழிபெயர்த்தல்):
Modern Browsers எல்லாம் JIT (Just-In-Time) Compilation-ஐ யூஸ் பண்ணுது.
Computer-க்கு தெரிஞ்சது 0 and 1 மட்டும்தான்.
நீங்க குடுக்குற JavaScript code-ஐ இந்த Engine டக்குனு கம்ப்யூட்டருக்கு புரியுற Machine Code-ஆ மாத்திடும்.

Example :- நீங்க தமிழ்ல பேசுறத, அங்க இருக்குற ஒருத்தருக்கு புரிய வைக்க உடனே இங்கிலீஷ்ல Translate பண்ணி சொல்ற மாதிரி.

Why this is important?
நம்ம ஒரு தப்பான code எழுதுனா, Browser ஏன் வேலை செய்ய மாட்டேங்குதுன்னு புரிஞ்சுக்க இது ரொம்ப முக்கியம். இந்த "Compiler recognition" கரெக்டா நடந்தாதான் உங்க Website உயிரோட (Interactive) இருக்கும்!

Top comments (0)