হ্যাক (প্রোগ্রামিং ভাষা)

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
হ্যাক
Hack
Hack (programming language) logo.svg
নকশাকারJulien Verlaguet, Alok Menghrajani, Drew Paroski, and others[১]
বিকাশকারীফেসবুক
প্রথম প্রদর্শিত২০১৪; ৮ বছর আগে (2014)
ধরণের শৃঙ্খলাStatic, dynamic, weak, gradual
ওএসCross-platform
লাইসেন্সMIT License[২]
ওয়েবসাইটhacklang.org
যার দ্বারা প্রভাবিত
পিএইচপি, OCaml, জাভা, C#, Scala, Haskell

হ্যাক হিপহপ ভার্চুয়াল মেশিন (এইচএইচভিএম) এর জন্য একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ। এটিকে পিএইচপি-র উপভাষা হিসাবে ফেসবুক তৈরি করেছে। ভাষা বাস্তবায়ন ওপেন-সোর্স, এমআইটি লাইসেন্সের আওতায় লাইসেন্সযুক্ত । [৩][৪]

হ্যাক প্রোগ্রামারকে গতিশীল টাইপিং এবং স্ট্যাটিক টাইপিং উভয়ই ব্যবহার করতে দেয়। এই ধরনের একটি সিস্টেমকে গ্রেডুয়াল টাইপিং বলা হয়, যা অন্যান্য প্রোগ্রামিং ভাষায় যেমন অ্যাকশনস্ক্রিপ্টেও প্রয়োগ করা হয়। [৫] হ্যাকের টাইপ সিস্টেমটি ফাংশন আর্গুমেন্ট, ফাংশন রিটার্ন মান এবং শ্রেণীর বৈশিষ্ট্যগুলির জন্য নির্দিষ্ট প্রকার করার অনুমতি দেয়। তবে স্থানীয় ভেরিয়েবলের প্রকারগুলি সর্বদা অনুমিত হয় এবং নির্দিষ্ট করা যায় না। [৩]

ইতিহাস[সম্পাদনা]

হ্যাক ২০ মার্চ, ২০১৪ সালে চালু হয়েছিল। [৬] নতুন প্রোগ্রামিং ভাষা ঘোষণার আগে ফেসবুক ইতোমধ্যে কোডটি প্রয়োগ করে এবং "ওয়েবসাইটের পরীক্ষিত" করা হয় যার জন্য এটি ফেসবুক ওয়েবসাইটের একটি বড় অংশে প্রয়োগ করেছে।

বৈশিষ্ট্য[সম্পাদনা]

হ্যাক পিএইচপি-র সাথে নির্বিঘ্নে আন্তঃসংযোগ স্থাপনের জন্য ডিজাইন করা হয়েছে। এটি একটি বহুল ব্যবহৃত ওপেন সোর্স স্ক্রিপ্টিং ভাষা যা ওয়েব বিকাশে আলোকপাত করে এবং এইচটিএমএলে এমবেড করতে পারে। বেশিরভাগ বৈধ পিএইচপি স্ক্রিপ্ট হ্যাকের ক্ষেত্রেও বৈধ। তবে, হ্যাকের জন্য অনেক কম ঘন ঘন ব্যবহৃত পিএইচপি বৈশিষ্ট্য এবং ভাষা নির্মাণ সমর্থন করে না। [৭]

হ্যাক পিএইচপি ৫ উপলব্ধ ইঙ্গিত প্রকারটি স্ট্যাটিক টাইপিংয়ের প্রবর্তনের মাধ্যমে প্রসারিত করে নতুন ধরনের ইঙ্গিতগুলি যুক্ত করে (উদাহরণস্বরূপ, স্কেলার জাতীয় ধরনের যেমন পূর্ণসংখ্যা বা স্ট্রিংয়ের জন্য) পাশাপাশি প্রকারের হিন্টগুলির ব্যবহার প্রসারিত করে (উদাহরণস্বরূপ, শ্রেণীর বৈশিষ্ট্য বা ফাংশন রিটার্ন মানগুলির জন্য)। তবে স্থানীয় ভেরিয়েবলের ধরন নির্দিষ্ট করা যায় না। [৮] যেহেতু হ্যাক ধীরে ধীরে টাইপিং সিস্টেম ব্যবহার করে, ডিফল্ট মোডে, টাইপ টীকাগুলি এমন স্থানে বাধ্যতামূলক হয় না যেখানে এমনকি সেগুলি অনুমান করা যায় না। টাইপ সিস্টেমটি ধরে নেবে লেখক সঠিক এবং কোডটি মেনে নিচ্ছেন। [৯]

সিনট্যাক্স এবং শব্দার্থবিদ্যা[সম্পাদনা]

মৌলিক ফাইল গঠন একটি হ্যাক স্ক্রিপ্ট অনুরূপ একটি পিএইচপি স্ক্রিপ্ট কয়েক পরিবর্তন সঙ্গে. একটি হ্যাক ফাইল অন্তর্ভুক্ত নয় <?পিএইচপি খোলার মার্কআপ ট্যাগ এবং ব্যবহার নিষিদ্ধ টপ লেভেল ঘোষণা.[১০] কোড মধ্যে স্থাপন করা আবশ্যক একটি entrypoint ফাংশন. এই আপনি স্বয়ংক্রিয়ভাবে মৃত্যুদন্ড কার্যকর করা হয়, তাহলে তারা এর মধ্যে শীর্ষ-পর্যায়ের ফাইল, কিন্তু না, তাহলে ফাইল অন্তর্ভুক্ত করা হয় এর মাধ্যমে অন্তর্ভুক্ত, প্রয়োজন, বা autoloader. বিশ্বের অন্যান্য কার্যাবলী মধ্যে হ্যাক, ফাংশন নাম অনন্য হওয়া আবশ্যক মধ্যে একটি প্রকল্প– অর্থাৎ প্রকল্পের সঙ্গে একাধিক entrypoints কল করতে পারবেন না উভয় প্রধান :

<<__EntryPoint>>
function main(): void {
  echo 'Hello, World!';
}

উপরের স্ক্রিপ্ট পিএইচপির অনুরূপ। যা কার্যকর করা হবে এবং নিম্নলিখিত আউটপুটটি ব্রাউজারে প্রেরণ করা হবে:

Hello, World!

ফাংশন[সম্পাদনা]

পিএইচপি ৭ এর মতো হ্যাক ফাংশন আর্গুমেন্ট এবং ফাংশন রিটার্ন ধরনের মানগুলির জন্য নির্দিষ্টকরণের অনুমতি দেয়। হ্যাকের ক্রিয়াকলাপগুলি নীচের মতো করে টীকায়িত হয়:

// Hack functions are annotated with types.
function negate(bool $x): bool {
  return !$x;
}

আরো দেখুন[সম্পাদনা]

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

  1. Bryan O'Sullivan (২০১৪-০৩-২৮)। "Where Credit Belongs for Hack"। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  2. "facebook/hhvm: hhvm / hphp / hack / LICENSE"github.comFacebook। ২০১৮-০৪-১১। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  3. Josh Lockhart (২০১৪-০৪-০৩)। "Facebook's Hack, HHVM, and the future of PHP"O'Reilly Media। ২০১৯-০১-০৭ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  4. Cade Metz (২০১৪-০৩-২০)। "Facebook Introduces 'Hack,' the Programming Language of the Future"Wired। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  5. Aseem Rastogi; Avik Chaudhuri (জানুয়ারি ২০১২)। "The Ins and Outs of Gradual Type Inference" (PDF)Association for Computing Machinery (ACM)। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  6. Verlaguet, Julien; Menghrajani, Alok (২০১৪-০৩-২০)। "Hack: a new programming language for HHVM"Facebook। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  7. "Inconsistencies: Introduction"docs.hhvm.com। ২০১৯-০৪-০৪ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০১৯-০৪-০৪ 
  8. "Hack Manual: Hack and HHVM – Type Annotations"docs.hhvm.com। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  9. "Hack Manual: Partial Mode"docs.hhvm.com। সংগ্রহের তারিখ ২০১৯-০২-০৬ 
  10. Emmott, Fred (২০১৯-০২-১১)। "HHVM 4.0.0"hhvm.com। সংগ্রহের তারিখ ২০১৯-০৫-০২ 

বহিঃসংযোগ[সম্পাদনা]