একমাস্ক্রিপ্ট
এই নিবন্ধের সঙ্গে ইসিএমএস্ক্রিপ্ট নিবন্ধটি একীভূত করার প্রস্তাব করা হলো। (আলোচনা করুন) প্রস্তাবের তারিখ: মে ২০২৫। |
| প্যারাডাইম | Multi-paradigm: prototype-based, functional, imperative |
|---|---|
| নকশাকার | Brendan Eich, Ecma International |
| প্রথম প্রদর্শিত | ১৯৯৭ |
| টাইপিং পদ্ধতি | weak, dynamic |
| ওয়েবসাইট | www |
| মুখ্য বাস্তবায়নসমূহ | |
| JavaScript, ActionScript, JScript, QtScript, InScript, Google Apps Script | |
| যার দ্বারা প্রভাবিত | |
| Self, HyperTalk, AWK, C, CoffeeScript, Perl, Python, Java, Scheme | |
| ফাইলনাম এক্সটেনশনs |
.es |
|---|---|
| ইন্টারনেট মাধ্যমের ধরন |
application/ecmascript |
| নির্মাণে | Sun Microsystems, Ecma International |
| প্রাথমিক মুক্তি | জুন ১৯৯৭ |
| সর্বশেষ প্রকাশ | Edition 14 (জুন ২০২৩) |
| বিন্যাসের ধরন | Scripting language |
| ওয়েবসাইট | Standards |
ইসিএমএস্ক্রিপ্ট বা একমাস্ক্রিপ্ট [১] হল জাভাস্ক্রিপ্ট, জেস্ক্রিপ্ট, একশনস্ক্রিপ্ট ইত্যাদি স্ক্রিপ্টিং ভাষাসমূহের জন্য প্রণীত একটি আদর্শ মান। এই আদর্শ মানটি সবচেয়ে বেশি পরিচিত জাভাস্ক্রিপ্টের বিভিন্ন ব্রাউজারে ওয়েব পেজের আন্ত ব্যবহারযোগ্যতা সংরক্ষণের একটি আদর্শ হিসেবে। [২] ইসিএমএ-২৬২ নথির মাধ্যমে এই আদর্শটিকে একমা ইন্টারন্যাশনাল প্রমিতকরণ করেছে।
একমাস্ক্রিপ্ট সাধারণত ওয়ার্ল্ড ওয়াইড ওয়েবে ক্লায়েন্ট-সাইড স্ক্রিপ্টিংয়ের জন্য ব্যবহৃত হলেও বর্তমানে নোড.জেএস,[৩] ডিনো [৪] এবং বান [৫] এর মত রান-টাইম পরিবেশের মাধ্যমে এর ব্যবহার সার্ভার-সাইড কাজেও বৃদ্ধি পাচ্ছে।
একমাস্ক্রিপ্ট, ইসিএমএ-২৬২, জাভাস্ক্রিপ্ট
[সম্পাদনা]ইসিএমএ-২৬২, একমাস্ক্রিপ্ট ভাষাকে সংজ্ঞায়িত করে যাকে শুধুমাত্র একমাস্ক্রিপ্ট নামে অভিহিত করা হয়। [৬] ইসিএমএ-২৬২ কেন্দ্রীয় অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই)'এ শুধুমাত্র ভাষাটির পদবিন্যাস (সিনট্যাক্স) ও শব্দার্থবিন্যাস (সিমানটিকস) কেমন হবে সেটি ব্যাখ্যা করে, যেমন অ্যারে, ফাংকশন ইত্যাদি। তবে ইনপুট/আউটপুট এবং ফাইল সিস্টেমের মত বৈধ কার্যক্রম জাভাস্ক্রিপ্ট থেকে সংযুক্ত করা হয়েছে।
ইতিহাস
[সম্পাদনা]নেটস্কেপের প্রকৌশলী ব্র্যান্ডন আইখের তৈরি একটি স্ক্রিপ্টিং ভাষাকে প্রমিতকরণ করার উদ্দেশ্যে একমাস্ক্রিপ্ট বিবরণী প্রস্তুত করা হয়েছিল। ভাষাটি প্রাথমিকভাবে মোচা, এরপরে লাইভস্ক্রিপ্ট ও সর্বশেষ জাভাস্ক্রিপ্ট নামে নামকরণ করা হয়েছিল। [৭] ১৯৯৫ সালের ডিসেম্বর মাসে সান মাইক্রোসিস্টেম্স ও নেটস্কেপ একটি সংবাদ বিজ্ঞপ্তিতে জাভাস্ক্রিপ্টকে উপস্থাপন করে। [৮] ১৯৯৬ সালে নেটস্কেপ একটি সংবাদ বিজ্ঞপ্তি প্রচার করে যেখানে জাভাস্ক্রিপ্ট প্রমিতকরণে একমা ইন্টারন্যাশনাল মানদন্ড অর্জন করার ঘোষণা দেয়। [৯] ১৯৯৭ সালের জুন মাসে ইসিএমএ-২৬২ একমা সাধারণ পরিষদে গৃহীত হয়। পরবর্তীতে এই ভাষা বিবরণীর একাধিক সংস্করণ প্রকাশিত হয়। প্রমিতকরণ উদ্যোগে প্রথমদিকের অধিবেশনে মাইক্রোসফট ও নেটস্কেপের বিভিন্ন মত পার্থক্য ও ভাষা বিবরণী তৈরিতে যুক্ত বিভিন্ন সংস্থার আপত্তিতে এই ভাষা বিবরণীটির নাম জাভাস্ক্রিপ্ট না রেখে "একমাস্ক্রিপ্ট" বা "ইসিএমএস্ক্রিপ্ট" করা হয়েছিল। ভাষাটির উদ্ভাবক আইখ এ সম্পর্কে মন্তব্য করে বলেন, "শুনতে চর্মরোগের মত লাগে একমাস্ক্রিপ্ট নামটি সবসময়ই একটা অবাঞ্চিত ব্যবসায়িক নাম হয়েই থাকবে।" [১০] নিরাপত্তা বিশ্লেষণ এবং প্রমিতকরণের জন্য স্ট্যানফোর্ড বিশ্ববিদ্যালয় এবং ইম্পেরিয়াল কলেজ লন্ডনের কম্পিউটার অনুষদের সহযোগিতায় অপারেশনাল সিমানটিকস পদ্ধতির মাধ্যমে ইসিএমএসস্ক্রিপ্টকে আনুষ্ঠানিকভাবে বিধিবদ্ধ করা হয়। [১১] একমার শব্দের ইসিএমএ হল "ইউরোপীয় কম্পিউটার ম্যানুফ্যাকচারার এসোসিয়েশন" নামের আদ্যক্ষর দিয়ে বানানো। যেটি ১৯৯৪ সাল পর্যন্ত এই নামেই ছিল।
বৈশিষ্ট্য
[সম্পাদনা]একমাস্ক্রিপ্ট ভাষায় স্ট্রাকচারড, ডাইনামিক, ফাংকশনাল এবং প্রোটোটাইপ-ভিত্তিক বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে। [১২]
আবশ্যিক এবং কাঠামোগত
[সম্পাদনা]একমাস্ক্রিপ্ট জাভাস্ক্রিপ্ট ভাষাটি সি-এর মত স্ট্রাকচারড প্রোগ্রামিং সমর্থন করে। পূর্বে জাভাস্ক্রিপ্ট শুধুমাত্র var কীওয়ার্ড ব্যবহার করে ফাংশন স্কোপিং করত, কিন্তু একমাস্ক্রিপ্ট ২০১৫ let এবং const কীওয়ার্ড যোগ করে, ফলে জাভাস্ক্রিপ্ট ব্লক স্কোপিং এবং ফাংশন স্কোপিং উভয় কাজই করার সক্ষমতা অর্জন করে। জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে লাইনের শেষে সেমিকোলন যুক্ত করে ফলে জাভাস্ক্রিপ্টে সি এর মত সব লাইনের শেষে সেমিকোলন সংযুক্ত করার দরকার পড়ে না। [১৩]
সি-ধাঁচের ভাষাসমূহের মতো, জাভাস্ক্রিপ্টে কন্ট্রোল ফ্লো করা হয় while, for, do / while, if / else, এবং switch স্টেটমেন্ট দিয়ে। ফাংশনসমূহের টাইপ এখানে দুর্বল ফলে এরা যেকোনো টাইপের ডেটা গ্রহন ও রিটার্ন করতে পারে। আর্গুমেন্টসমূহ স্বয়ংক্রিয়ভাবে undefined এ থাকে না।
দুর্বলভাবে টাইপ করা
[সম্পাদনা]ECMAScript দুর্বলভাবে টাইপ করা। এর মানে হল যে কাজটি ভাষাটিকে দিয়ে করানো হচ্ছে সেটির প্রকৃতির উপর ভিত্তি করে ভ্যারিয়েবলসমূহের ডেটা টাইপ নির্ধারিত হয়। জাভাস্ক্রিপ্টে এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে রুপান্তরের প্রক্রিয়ায় কিছু সমস্যা আছে। এই সমস্যাগুলো নিয়ে ওয়াট নামে একটি ভিডিও লেকচার আছে। [১৪][১৫]
গতিশীল
[সম্পাদনা]একমাস্ক্রিপ্ট গতিশীলভাবে টাইপ করা। অর্থাৎ এই ভাষার একটি ভ্যালু একটি মানের সাথে সম্পর্কযুক্ত কোনো অভিব্যক্তির সাথে নয়। একমাস্ক্রিপ্টে অবজেক্টসমূহের টাইপ পরীক্ষা করার জন্য বিভিন্ন পদ্ধতি আছে যেমন ডাক টাইপিং। [১৬]
সামঞ্জস্য
[সম্পাদনা]| স্ক্রিপ্টিং ইঞ্জিন | রেফারেন্স আবেদন(গুলি) | সামঞ্জস্য [১৭] | |||
|---|---|---|---|---|---|
| ES5 [১৮] | ES6 (2015) [১৯] | ES7 (2016) [২০] | নতুন (2017+) [২০][২১] | ||
| আমার মুখোমুখি | ফায়ারফক্স 94 | 100% | 98% | 100% | 100% |
| V8 | গুগল ক্রোম 95, মাইক্রোসফ্ট এজ 95, অপেরা 80 | 100% | 98% | 100% | 100% |
| জাভাস্ক্রিপ্ট কোর | সাফারি 15 | 100% | 99% | 100% | 90% |
আরো দেখুন
[সম্পাদনা]- XML (E4X) এর জন্য ECMAScript
- ECMAScript ইঞ্জিনের তালিকা
তথ্যসূত্র
[সম্পাদনা]- ↑ Stefanov, Stoyan (২০১০)। JavaScript Patterns। O'Reilly Media, Inc.। পৃ. ৫। আইএসবিএন ৯৭৮১৪৪৯৩৯৬৯৪৭। ১০ জুন ২০১৬ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ১২ জানুয়ারি ২০১৬।
- ↑ Wirfs-Brock, Allen; Eich, Brendan (২ মে ২০২০)। "JavaScript: The First 20 Years": ১–১৮৯। ডিওআই:10.1145/3386327।
{{সাময়িকী উদ্ধৃতি}}: উদ্ধৃতি journal এর জন্য|journal=প্রয়োজন (সাহায্য)উদ্ধৃতি শৈলী রক্ষণাবেক্ষণ: তারিখ এবং বছর (লিঙ্ক) - ↑ https://nodejs.org/en/docs/es6
- ↑ https://www.infoworld.com/article/3644460/deno-joins-javascript-standards-effort.html
- ↑ https://bun.sh/docs#:~:text=or%2C%20more%20formally%2C-,ECMAScript,-)%20is%20just%20a bun
- ↑ Guo, Shu-yu (১৪ ফেব্রুয়ারি ২০২২)। "ECMAScriptÂŽ 2022 Language Specification"। tc39.es। Tc39.es। ৮ মে ২০২০ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ১৪ ফেব্রুয়ারি ২০২২।
- ↑ Krill, Paul (২৩ জুন ২০০৮)। "JavaScript creator ponders past, future"। infoworld.com। InfoWorld। ২০ সেপ্টেম্বর ২০১৪ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৩১ অক্টোবর ২০১৩।
- ↑ "Netscape and Sun announce JavaScript, the Open, Cross-platform Object Scripting Language for Enterprise Networks and the Internet"। Netscape.com। Netscape। ৪ ডিসেম্বর ১৯৯৫। ৬ জুন ২০০২ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৪ নভেম্বর ২০১৯।
- ↑ Press Release (১৫ নভেম্বর ১৯৯৬)। "Industry Leaders to Advance Standardization of Netscape's JavaScript at Standards Body Meeting"। Netscape.com। Netscape। ৩ ডিসেম্বর ১৯৯৮ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৩১ অক্টোবর ২০১৩।
- ↑ Eich, Brendan (৩ অক্টোবর ২০০৬)। "Will there be a suggested file suffix for es4?"। mozilla.org। Mail.mozilla.org। ২১ জুন ২০২০ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৫ মে ২০২১।
- ↑ Maffeis, Sergio; Mitchell, John C. (৩ জানুয়ারি ২০২০)। "An Operational Semantics for JavaScript" (পিডিএফ)। stanford.edu। Association for Computing Machinery। ৩ জানুয়ারি ২০২০ তারিখে মূল থেকে আর্কাইভকৃত (পিডিএফ)। সংগ্রহের তারিখ ৩ জানুয়ারি ২০২০।
- ↑ "About"। ECMAScript। ২ আগস্ট ২০১২ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ১৭ ডিসেম্বর ২০০৯।
- ↑ David Flanagan (১৭ আগস্ট ২০০৬)। JavaScript: The Definitive Guide: The Definitive Guide। "O'Reilly Media, Inc."। পৃ. ১৬। আইএসবিএন ৯৭৮-০-৫৯৬-৫৫৪৪৭-৭। ১ আগস্ট ২০২০ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ১১ নভেম্বর ২০১৯।
- ↑ Bernhardt, Gary। Wat। Destroy All Software। ২৮ অক্টোবর ২০১৯ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ১৮ আগস্ট ২০২১।
- ↑ Gilbertson, Scott (২৬ জানুয়ারি ২০১২)। Wired https://www.wired.com/2012/01/jokes-for-nerds-wat-moments-in-programming/। ২৩ আগস্ট ২০২০ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ২২ আগস্ট ২০২১।
{{ম্যাগাজিন উদ্ধৃতি}}:|title=অনুপস্থিত বা খালি (সাহায্য) - ↑ "JavaScript data types and data structures – JavaScript | MDN"। Developer.mozilla.org। ১৬ ফেব্রুয়ারি ২০১৭। ১৪ মার্চ ২০১৭ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ২৪ ফেব্রুয়ারি ২০১৭।
- ↑ ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.
- ↑ "ECMAScript 5 compatibility table"। kangax.github.io (ইংরেজি ভাষায়)। ১৯ নভেম্বর ২০১৮ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৮ নভেম্বর ২০১৮।
- ↑ "ECMAScript 6 compatibility table"। kangax.github.io (ইংরেজি ভাষায়)। ১৭ নভেম্বর ২০১৮ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৮ নভেম্বর ২০১৮।
- 1 2 "ECMAScript 2016+ compatibility table"। kangax.github.io (ইংরেজি ভাষায়)। ২৪ নভেম্বর ২০১৮ তারিখে মূল থেকে আর্কাইভকৃত। সংগ্রহের তারিখ ৮ নভেম্বর ২০১৮।
- ↑ Composite score that includes new features from ES7 through next edition drafts