আজ আমরা ফাংশনাল প্রোগ্রামিং স্পর্শ করব. আরো সুনির্দিষ্টভাবে, আমরা ঘোষণামূলক এবং অপরিহার্য প্রোগ্রামিংয়ের মধ্যে পার্থক্য দেখব।

প্রথমত, চলুন দ্রুত পদের উপর যান. তারপরে আমরা এই প্রোগ্রামিং শৈলীগুলির তুলনা করব এবং দেখব তারা জাভাতে কীভাবে উপস্থিত হয় এবং ভাষা তাদের সুখী সহাবস্থানকে সমর্থন করে কিনা।

ফাংশনাল প্রোগ্রামিং হল একটি দৃষ্টান্ত যেখানে ফাংশনগুলিকে গাণিতিক ফাংশন হিসাবে বোঝা যায়, সাবরুটিন হিসাবে নয়, পদ্ধতিগত প্রোগ্রামিংয়ের মতো । অর্থাৎ, এই দুটি দৃষ্টান্তে "ফাংশন" শব্দটিকে ভিন্নভাবে ব্যাখ্যা করা হয়েছে। এটি মনে রাখবেন এবং তাদের বিভ্রান্ত করবেন না। জাভা আপনাকে বিভ্রান্ত হতে দেয় না, যেহেতু সাবপ্রোগ্রামগুলিকে "পদ্ধতি" হিসাবে উল্লেখ করা হয়, যেখানে ফাংশনগুলি গাণিতিক ফাংশনগুলিকে নির্দেশ করে (এছাড়াও: ল্যাম্বডা ফাংশন বা পদ্ধতির উল্লেখ)।

অনুশীলনে, পদ্ধতিগত প্রোগ্রামিংয়ে, ফাংশনগুলি শুধুমাত্র ইনপুট ভেরিয়েবলের উপর নির্ভর করে না, বাহ্যিক কারণগুলির উপরও (যেমন ফাংশন বা সিস্টেমের অবস্থার বাইরে অন্যান্য ভেরিয়েবল)। এর মানে হল যে একই ফাংশনকে একই আর্গুমেন্টের সাথে কল করা কিন্তু ভিন্ন প্রসঙ্গে ভিন্ন ফলাফল আনতে পারে। ফাংশনাল প্রোগ্রামিং-এ, যখন একই আর্গুমেন্টের সাথে একটি ফাংশন কল করা হয়, তখন এটি সবসময় একই ফলাফল দেয়, কারণ ফাংশনগুলি শুধুমাত্র ইনপুট ডেটার উপর নির্ভর করে।

কার্যকরী প্রোগ্রামিং এর সুবিধা

  • উন্নত কোড নির্ভরযোগ্যতা
  • সুবিধাজনক ইউনিট পরীক্ষা
  • সংকলনের সময় কোড অপ্টিমাইজেশানের সুযোগ
  • সঙ্গতি জন্য সুযোগ

কার্যকরী প্রোগ্রামিং এর অসুবিধা

কার্যকরী প্রোগ্রামিংয়ের অসুবিধাগুলি এই সমস্ত একই বৈশিষ্ট্য থেকে উদ্ভূত হয়:

  • কোন অ্যাসাইনমেন্ট বিবৃতি আছে. পরিবর্তে, নতুন মানগুলি নতুন ভেরিয়েবলগুলিতে সংরক্ষণ করা হয়, যার ফলে ক্রমাগত বরাদ্দ এবং স্বয়ংক্রিয়ভাবে মেমরি প্রকাশ করার প্রয়োজন হয়। ফলস্বরূপ, অত্যন্ত দক্ষতার সাথে আবর্জনা সংগ্রহ যে কোনও সিস্টেমের একটি অপরিহার্য অংশ যা কার্যকরী প্রোগ্রামগুলি সম্পাদন করে।

  • অ-কঠোর মূল্যায়ন মানে ফাংশন কলের ক্রম অপ্রত্যাশিত, যা অপারেশনের ক্রম গুরুত্বপূর্ণ হলে I/O সমস্যা তৈরি করে।

এটি কার্যকরী প্রোগ্রামিংয়ের আমাদের দ্রুত পর্যালোচনা শেষ করে। এখন প্রোগ্রামিং শৈলীতে এগিয়ে যাওয়া যাক।

ইম্পেরেটিভ প্রোগ্রামিং হল একটি প্রোগ্রামিং প্যারাডাইম যা নিম্নলিখিত বৈশিষ্ট্য দ্বারা চিহ্নিত:

  • প্রোগ্রামের সোর্স কোড নির্দেশাবলী (বিবৃতি) নিয়ে গঠিত।

  • নির্দেশাবলী ক্রমানুসারে অনুসরণ করা আবশ্যক।

  • পূর্ববর্তী নির্দেশাবলী কার্যকর করার মাধ্যমে উত্পন্ন ডেটা পরবর্তী নির্দেশাবলী দ্বারা মেমরি থেকে পড়া যেতে পারে।

  • একটি নির্দেশ কার্যকর করে প্রাপ্ত ডেটা মেমরিতে লেখা যেতে পারে।

এখানে অপরিহার্য ভাষার প্রধান বৈশিষ্ট্য রয়েছে:

  • বুলিয়ান ভেরিয়েবলের ব্যবহার।
  • অ্যাসাইনমেন্ট অপারেটরের ব্যবহার।
  • যৌগিক অভিব্যক্তির ব্যবহার।
  • সাবরুটিন ব্যবহার.

একটি আবশ্যিক প্রোগ্রাম প্রাকৃতিক ভাষায় আবশ্যিক মেজাজে প্রকাশিত আদেশের মতো। অন্য কথায়, একটি আবশ্যিক প্রোগ্রাম হল কমান্ডের একটি ক্রম।

অত্যাবশ্যক প্রোগ্রামিং ভাষায় C এবং C++ অন্তর্ভুক্ত।

ঘোষণামূলক প্রোগ্রামিং একটি প্রোগ্রামিং দৃষ্টান্ত যেখানে একটি সমস্যার সমাধান নির্দিষ্ট করা হয়। অর্থাৎ শেষ ফলাফল বর্ণনা করা হয়েছে, তা অর্জনের উপায় নয়। এইচটিএমএল একটি ঘোষণামূলক ভাষার উদাহরণ। এই ভাষায় ট্যাগ লেখার সময়, আমরা পৃষ্ঠায় উপাদানগুলি কীভাবে আঁকা হবে তা নিয়ে ভাবি না। পৃষ্ঠাটি কেমন হওয়া উচিত তা আমরা শুধু বর্ণনা করি।

আরেকটি ঘোষণামূলক প্রোগ্রামিং ভাষা হল SQL।

আসুন একটি বাস্তব জীবনের উদাহরণ বিবেচনা করে প্রোগ্রামিংয়ের দুটি শৈলীর তুলনা করি : কীভাবে আমরা একজন ব্যক্তিকে ব্যাখ্যা করব কীভাবে একটি নির্দিষ্ট জায়গায় যেতে হবে?

এই পরিস্থিতিটি কল্পনা করুন: একজন লোক রাস্তায় আমাদের কাছে আসে এবং জিজ্ঞাসা করে, "আমি কীভাবে যাদুঘরে যাব?"

একটি অপরিহার্য পদ্ধতির সাথে, আমরা তাকে কীভাবে পায়ে হেঁটে সেখানে যেতে হবে তার অ্যালগরিদম সরবরাহ করব:

  • এখানে ডান দিকে ঘুরুন
  • একটি সরল রেখায় 2 ব্লক হাঁটুন
  • ডানে ঘুর

একটি ঘোষণামূলক পদ্ধতির সাথে, আমরা কেবল ঠিকানাটি দেব এবং তারপরে ব্যক্তিটি নিজেরাই সঠিক জায়গায় পৌঁছে যাবে।

জাভা বর্তমানে একটি মাল্টি-প্যারাডাইম প্রোগ্রামিং ভাষা । মাল্টি-প্যারাডাইম মানে ভাষাটি বেশ কিছু প্যারাডাইমকে সমর্থন করে।

এর দীর্ঘ বিবর্তনের সময়, ভাষাটি তার অবজেক্ট-ওরিয়েন্টেড মডেলকে প্রসারিত করেছে যাতে এর ব্যবহারকারীদের বিভিন্ন সরঞ্জাম রয়েছে এবং তাদের নির্দিষ্ট কাজের জন্য সেরাটি বেছে নিতে পারে।

ফলস্বরূপ, জাভা বর্তমানে অপরিহার্য পদ্ধতি (যেমন পদ্ধতি কলের জন্য কোড লেখা) এবং ঘোষণামূলক পদ্ধতি (যেমন রানটাইমে উপলব্ধ টীকা) উভয়কেই সমর্থন করে।

আসুন সংক্ষিপ্ত করা যাক:

  • বিভিন্ন প্রোগ্রামিং প্যারাডাইম আছে।

  • ঘোষণামূলক এবং বাধ্যতামূলক পদ্ধতি আছে.

  • আপনার হাতে থাকা কাজের জন্য সবচেয়ে উপযুক্ত একটি বেছে নেওয়া উচিত।

  • জাভা একটি মাল্টি-প্যারাডাইম ভাষা যা উভয় পন্থাকে সমর্থন করে।