প্রোলগ একটি লজিক্যাল প্রোগ্রামিং ভাষা, যা লজিকাল সম্পর্ক, সিদ্ধান্ত গ্রহণ, এবং টার্ম কনস্ট্রাকশন এর মাধ্যমে সমস্যা সমাধান করে। প্রোলগে ব্যবহৃত অপারেটর এবং টার্ম কনস্ট্রাকশন এর মাধ্যমে তথ্যের সম্পর্ক তৈরি করা হয়, এবং এর মাধ্যমে কোডের কার্যকারিতা এবং লজিক্যাল সিদ্ধান্ত তৈরি করা হয়।
প্রোলগে সাধারণত যে সমস্ত অপারেটর ব্যবহৃত হয় তা নিম্নে দেওয়া হল:
১. প্রোলগের বেসিক অপারেটর:
:-(নিয়ম অপারেটর):
এই অপারেটরটি প্রোলগে নিয়ম বা শর্তযুক্ত সম্পর্ক নির্দেশ করতে ব্যবহৃত হয়। এটি একটি যদি-তাহলে সম্পর্ক নির্ধারণ করে। সাধারণভাবে, এটি প্রতিস্থাপন (substitution) বা ইনফারেন্স এর জন্য ব্যবহৃত হয়।উদাহরণ:
পিতা(X, Y) :- পিতা(Y, Z).এটি বলে যে, X যদি Y এর পিতা হয়, তবে Y এর পিতা Z হবে।
, (কমা)(কনজাংশ বা এবং অপারেটর):
কমা অপারেটর দুটি শর্তের মধ্যে লজিক্যাল AND এর মতো কাজ করে। এটি যখন দুইটি শর্ত একসাথে প্রযোজ্য হয়, তখন দুটি শর্তকে একত্রে পরীক্ষা করে।উদাহরণ:
পিতা(X, Y), মা(Y, Z).এখানে, প্রথমে X এর পিতা Y হতে হবে এবং তারপর Y এর মা Z হতে হবে।
; (সেমিকোলন)(ডিসজাংশ বা অথবা অপারেটর):
সেমিকোলন অপারেটর দুটি শর্তের মধ্যে লজিক্যাল OR এর মতো কাজ করে। এটি যখন দুইটি শর্তের মধ্যে একটিও সত্য হয়, তখন পুরো এক্সপ্রেশনটি সত্য হবে।উদাহরণ:
পিতা(X, Y); মা(X, Y).এখানে, X যদি Y এর পিতা হয় অথবা X যদি Y এর মা হয়, তবে শর্তটি সত্য হবে।
/ (ডিভাইড বা কলন অপারেটর):
এই অপারেটরটি লিস্ট বা অ্যাট্রিবিউট কে বিভক্ত করতে ব্যবহৃত হয়। প্রোলগে এটি একটি পদ্ধতির নাম এবং আর্গুমেন্ট বিভক্ত করার জন্য ব্যবহৃত হয়।উদাহরণ:
পিতা(অজিজ, রহমান).এখানে,
পিতাহচ্ছে পদ্ধতি এবং(অজিজ, রহমান)হল আর্গুমেন্ট।= (ইকুয়াল অপারেটর):
এটি দুইটি টার্মের মধ্যে ইকুয়ালিটি পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি চেক করে যে দুটি টার্ম একে অপরের সমান কি না।উদাহরণ:
X = Y.\= (নট ইকুয়াল অপারেটর):
এটি পরীক্ষা করে যে দুটি টার্ম সমান নয় কি না। যদি টার্ম দুটি সমান না হয়, তবে এটি সত্য হবে।উদাহরণ:
X \= Y.
২. টার্ম কনস্ট্রাকশন (Term Construction):
প্রোলগে টার্ম হল মৌলিক ডেটা ইউনিট যা বিভিন্ন প্রকারের হতে পারে। এটি সাধারণত ফ্যাক্ট, নিয়ম, ভেরিয়েবল, এবং লিস্ট এর মাধ্যমে গঠন করা হয়।
অ্যাটম (Atom):
একটি অ্যাটম সাধারণত একটি স্ট্রিং যা একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে। এটি সাধারণত ছোট হাতের অক্ষর দিয়ে শুরু হয় এবং শব্দ বা নাম হিসেবে ব্যবহৃত হয়। যেমন:রহমান,সোহেল,অজিজইত্যাদি।উদাহরণ:
পিতা(অজিজ, রহমান).নম্বর (Number):
প্রোলগে সংখ্যার একটি গঠন রয়েছে যা পূর্ণসংখ্যা বা ভগ্নাংশ হতে পারে। প্রোলগে সংখ্যার মাধ্যমে গাণিতিক অপারেশনও করা যেতে পারে।উদাহরণ:
X is 5 + 3.ভেরিয়েবল (Variable):
প্রোলগে ভেরিয়েবল সাধারণত বড় হাতের অক্ষর দিয়ে শুরু হয় এবং এটি পরবর্তীতে অ্যাটম বা নম্বর এর মান গ্রহণ করতে পারে। ভেরিয়েবলগুলির মান প্রোগ্রামের কার্যকরী সময়ে নির্ধারিত হয়।উদাহরণ:
X = রহমান. Y = সোহেল.লিস্ট (List):
প্রোলগে একটি লিস্ট একাধিক উপাদান (এলিমেন্ট) নিয়ে গঠিত। লিস্টের প্রথম উপাদানটি হেড (head) এবং বাকি উপাদানগুলো টেল (tail) হিসাবে বিবেচিত হয়।উদাহরণ:
[1, 2, 3, 4].স্ট্রাকচার (Structure):
প্রোলগে স্ট্রাকচার একটি কাস্টম টার্ম যা একাধিক অ্যাটম বা লিস্ট নিয়ে গঠিত হয়। এটি সাধারণত একটি ফাংশন এর মতো কাজ করে।উদাহরণ:
ছাত্র(রহমান, ১৮, সোহেল).এখানে,
ছাত্রএকটি স্ট্রাকচার যা তিনটি অ্যাটম নেয়:রহমান,১৮, এবংসোহেল।
সারসংক্ষেপ:
প্রোলগে বেসিক অপারেটর গুলি, যেমন :-, ,, ;, =, এবং \= ব্যবহার করে সম্পর্ক স্থাপন এবং সমস্যা সমাধান করা হয়। টার্ম কনস্ট্রাকশন এর মাধ্যমে বিভিন্ন ধরণের ডেটা যেমন অ্যাটম, নম্বর, ভেরিয়েবল, লিস্ট, এবং স্ট্রাকচার তৈরি করা হয় যা প্রোগ্রামের বিভিন্ন অংশে ব্যবহার করা যায়। এই অপারেটর এবং টার্ম কনস্ট্রাকশনগুলি প্রোলগে শক্তিশালী এবং নমনীয় লজিক্যাল সমস্যার সমাধান করতে সাহায্য করে।
Read more