Javascript Engine In Bengali JavaScript Series ⇾ Chapter 10
Scope and Closure chapter-10
দেখতে দেখতে আমরা চলে আসলাম চ্যাপ্টার ১০ এ ।এই চ্যাপ্টার এ আমরা দেখব জাভাস্ক্রিপ্ট এর খুবই গুরুত্বপূর্ণ কিছু কনসেপ্ট । জানব কিভাবে জাভাস্ক্রিপ্ট বিহাইন্ট দা সিন্ কাজ করে।
আমরা এই চ্যাপ্টার এর নামকরণ করেছি স্কোপ এবং ক্লোসার ।জাভাস্ক্রিপ্ট নিয়ে কাজ করতে গেলে এই দুইটা চ্যাপ্টার খুব ভালোভাবে বুঝার দরকার আছে ।এই কনসেপ্ট দুইটা বুজতে পারলে আমরা যে কোন জাভাস্ক্রিপ্ট কোড বুজতে পারব ।এই দুই কনসেপ্ট এর উপর ডিপেন্ট করে কোডের কোথায় আমরা ভ্যারিয়েবল ডিক্লার করতে পারব ,কোথায় একটা ফাঙ্কশন এর এক্সসেস পাব কোথায় একটা ভ্যারিয়েবল এর একসেস পাব ।কোথায় মূলত ডাটা ভিসাবল কোথায় ভিসাবল না ।
জাভাস্ক্রিপ্ট ইঞ্জিন কি?
জাভাস্ক্রিপ্ট ইঞ্জিন হল একটি প্রোগ্রাম বা ইন্টারপ্রেটার যা জাভাস্ক্রিপ্ট কোড execute করে।
প্রোগ্রাম বা ইন্টারপ্রেটার কি ?
যে অনুবাদক প্রোগ্রাম হাই লেভেল ল্যাঙ্গুয়েজে লিখিত প্রোগ্রামের সোর্স কোডকে এক লাইন এক লাইন করে মেশিনের ভাষায় অনুবাদ করে, কোন ভুল থাকলে তা সংশোধন করে পরবর্তী লাইনে কাজ করে তাকে ইন্টারপ্রেটার বলে। একটি লাইন এক্সিকিউশন শেষ হলে ইন্টারপ্রেটার একইভাবে উৎস প্রোগ্রামের পরবর্তী লাইনে গিয়ে মেশিন ভাষায় অনুবাদ করে তা এক্সিকিউট করে।
জাভাস্ক্রিপ্ট ইঞ্জিন কিভাবে কাজ করে?
একটি জাভাস্ক্রিপ্ট ইঞ্জিন জাভাস্ক্রিপ্ট কোড parsing এবং interpret করে কাজ করে।
ইঞ্জিনটি প্রথমে জাভাস্ক্রিপ্ট কোডটিকে একটি Abstract সিনট্যাক্স ট্রি (AST) রূপান্তর করে tree-like structure যা কোডের সিনট্যাক্সকে rerepresent করে।ইঞ্জিনটি তারপরে AST দিয়ে চলে এবং প্রতিটি নোড দ্বারা Presented কোডটি executes করে। ইঞ্জিনটি জাভাস্ক্রিপ্ট কোডকে মেশিন কোডে রূপান্তর করতে Just-In-Time (JIT) compilation ব্যবহার করে।
Just-In-Time (JIT) compilation কি?
JIT compilation এমন একটি কৌশল যা সময়ের আগে নয় বরং রানটাইমে কোড compiles করে, যার ফলে দ্রুত সম্পাদন হয়।
JIT compilation দুটি ধাপে ঘটে:
ইঞ্জিনটি প্রথমে কোডে একটি "hot" compilation করে কোডটিকে low-level intermediate representation রূপান্তর করে যেন দ্রুত execute করা যায়। ইঞ্জিনটি তারপরে কোডের execution monitor করে এবং সর্বাধিক frequently execution অংশগুলি সনাক্ত করে, যাকে "hot spots." বলা হয়।এই hot spot গুলি এর পরে highly optimized machine কোডে পুনরায় execute হয় ।
JIT compilation জাভাস্ক্রিপ্ট ইঞ্জিনগুলিকে maintaining flexibility এবং development সহজতা বজায় রেখে high performance achieve করতে দেয় যাকিনা জাভাস্ক্রিপ্ট নিজে অফার করে।
অনেক companies এবং organization তাদের নিজস্ব জাভাস্ক্রিপ্ট ইঞ্জিন তৈরি করেছে।
জনপ্রিয় জাভাস্ক্রিপ্ট ইঞ্জিনগুলির মধ্যে কয়েকটি হল:
V8: Developed by Google and used in Google Chrome and Node.js. V8 তার high performance জন্য পরিচিত এবং দ্রুততম জাভাস্ক্রিপ্ট ইঞ্জিনগুলির মধ্যে একটি হিসাবে বিবেচিত |
SpiderMonkey: Developed by Mozilla and used in Mozilla Firefox.
SpiderMonkey প্রথম জাভাস্ক্রিপ্ট ইঞ্জিন এবং এর long history ইতিহাস রয়েছে।
JavaScriptCore: Developed by Apple and used in Apple Safari.
জাভাস্ক্রিপ্টকোর ওয়েব স্ট্যান্ডার্ডগুলির সাথে সম্মতি এবং বাকি ওয়েব প্ল্যাটফর্মের সাথে এর integration জন্য পরিচিত।
Chakra: Developed by Microsoft and used in Microsoft Edge and Internet Explorer.
Chakra তার high performance এবং Just-In-Time (JIT) compilation এর মতো উন্নত বৈশিষ্ট্যগুলির সমর্থনের জন্য পরিচিত।
Nitro: Developed by Webkit team, now part of Safari and used in Apple iOS, macOS, watchOS and tvOS.
Nitro তার high performance এবং Just-In-Time (JIT) compilation এর মতো উন্নত বৈশিষ্ট্যগুলির সমর্থনের জন্য পরিচিত।
Hermes: Developed by Facebook and used in Facebook's mobile apps.Hermes lightweight জাভাস্ক্রিপ্ট ইঞ্জিন যা অ্যান্ড্রয়েড ডিভাইসে রিঅ্যাক্ট নেটিভ অ্যাপ্লিকেশনগুলির performance উন্নত করার জন্য ডিজাইন করা হয়েছে।