একমাস্ক্রিপ্ট

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
ECMAScript
প্যারাডাইমMulti-paradigm: prototype-based, functional, imperative
নকশাকারBrendan Eich, Ecma International
প্রথম প্রদর্শিত১৯৯৭; ২৭ বছর আগে (1997)
টাইপিং পদ্ধতিweak, dynamic
ওয়েবসাইটwww.ecma-international.org/publications-and-standards/standards/ecma-262/
মুখ্য বাস্তবায়নসমূহ
JavaScript, ActionScript, JScript, QtScript, InScript, Google Apps Script
যার দ্বারা প্রভাবিত
Self, HyperTalk, AWK, C, CoffeeScript, Perl, Python, Java, Scheme
ECMAScript (file format)
ফাইলনাম এক্সটেনশনs
.es
ইন্টারনেট মাধ্যমের ধরন
application/ecmascript
নির্মাণেSun Microsystems,
Ecma International
প্রাথমিক মুক্তিজুন ১৯৯৭; ২৬ বছর আগে (1997-06)
সর্বশেষ প্রকাশ
Edition 14
(জুন ২০২৩; ১০ মাস আগে (2023-06))
বিন্যাসের ধরন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 ইঞ্জিনের তালিকা

তথ্যসূত্র[সম্পাদনা]

  1. Stefanov, Stoyan (২০১০)। JavaScript Patterns। O'Reilly Media, Inc.। পৃষ্ঠা 5। আইএসবিএন 9781449396947। ২০১৬-০৬-১০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৬-০১-১২ 
  2. Wirfs-Brock, Allen; Eich, Brendan (২০২০-০৫-০২)। "JavaScript: The First 20 Years": 1–189। ডিওআই:10.1145/3386327অবাধে প্রবেশযোগ্য 
  3. https://nodejs.org/en/docs/es6
  4. https://www.infoworld.com/article/3644460/deno-joins-javascript-standards-effort.html
  5. https://bun.sh/docs#:~:text=or%2C%20more%20formally%2C-,ECMAScript,-)%20is%20just%20a bun
  6. Guo, Shu-yu (২০২২-০২-১৪)। "ECMAScriptÂŽ 2022 Language Specification"tc39.es। Tc39.es। ২০২০-০৫-০৮ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২২-০২-১৪ 
  7. Krill, Paul (২০০৮-০৬-২৩)। "JavaScript creator ponders past, future"infoworld.com। InfoWorld। ২০১৪-০৯-২০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৩-১০-৩১ 
  8. "Netscape and Sun announce JavaScript, the Open, Cross-platform Object Scripting Language for Enterprise Networks and the Internet"Netscape.com। Netscape। ১৯৯৫-১২-০৪। ২০০২-০৬-০৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৯-১১-০৪ 
  9. Press Release (নভেম্বর ১৫, ১৯৯৬)। "Industry Leaders to Advance Standardization of Netscape's JavaScript at Standards Body Meeting"Netscape.com। Netscape। ১৯৯৮-১২-০৩ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৩-১০-৩১ 
  10. Eich, Brendan (২০০৬-১০-০৩)। "Will there be a suggested file suffix for es4?"mozilla.org। Mail.mozilla.org। ২০২০-০৬-২১ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২১-০৫-০৫ 
  11. Maffeis, Sergio; Mitchell, John C. (২০২০-০১-০৩)। "An Operational Semantics for JavaScript" (পিডিএফ)stanford.eduAssociation for Computing Machinery। ২০২০-০১-০৩ তারিখে মূল (পিডিএফ) থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২০-০১-০৩ 
  12. "About"। ECMAScript। ২০১২-০৮-০২ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০০৯-১২-১৭ 
  13. David Flanagan (১৭ আগস্ট ২০০৬)। JavaScript: The Definitive Guide: The Definitive Guide। "O'Reilly Media, Inc."। পৃষ্ঠা 16। আইএসবিএন 978-0-596-55447-7। ১ আগস্ট ২০২০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ১১ নভেম্বর ২০১৯ 
  14. Bernhardt, Gary। WatDestroy All Software। ২০১৯-১০-২৮ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২১-০৮-১৮ 
  15. Gilbertson, Scott (২৬ জানুয়ারি ২০১২)। Wired https://web.archive.org/web/20200823123837/https://www.wired.com/2012/01/jokes-for-nerds-wat-moments-in-programming/। ২৩ আগস্ট ২০২০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২২ আগস্ট ২০২১  |শিরোনাম= অনুপস্থিত বা খালি (সাহায্য)
  16. "JavaScript data types and data structures – JavaScript | MDN"Developer.mozilla.org। ২০১৭-০২-১৬। ২০১৭-০৩-১৪ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৭-০২-২৪ 
  17. ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.
  18. "ECMAScript 5 compatibility table"kangax.github.io (ইংরেজি ভাষায়)। ২০১৮-১১-১৯ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৮-১১-০৮ 
  19. "ECMAScript 6 compatibility table"kangax.github.io (ইংরেজি ভাষায়)। ২০১৮-১১-১৭ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৮-১১-০৮ 
  20. "ECMAScript 2016+ compatibility table"kangax.github.io (ইংরেজি ভাষায়)। ২০১৮-১১-২৪ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৮-১১-০৮ 
  21. Composite score that includes new features from ES7 through next edition drafts