অন্য চূড়ান্ত বলতে দুটি প্রোগ্রাম সমান হয় যদি তারা একই ফাংশন গণনা করে (বা একই পরিবেশে একই পর্যবেক্ষণযোগ্য আচরণ দেখায়)। তবে এগুলি ভাল নয়: প্রাথমিকতা যাচাই করার জন্য সমস্ত প্রোগ্রাম এক নয়। আমরা ফলাফলের কোনও প্রভাব ছাড়াই কোডের একটি লাইন যুক্ত করতে পারি এবং আমরা এখনও এটি একই প্রোগ্রাম হিসাবে বিবেচনা করব।
এটি চূড়ান্ত নয়: পর্যবেক্ষণের ধারণার তুলনায় প্রোগ্রামের সমতাটি সংজ্ঞায়িত করতে হবে ।
পিএল গবেষণায় সর্বাধিক সাধারণ সংজ্ঞাটি প্রাসঙ্গিক সমতুল্যতা। প্রাসঙ্গিক সমতুল্যে, ধারণাটি হ'ল আমরা প্রোগ্রামগুলি বৃহত্তর প্রোগ্রামগুলির (কনটেক্সট) উপাদান হিসাবে ব্যবহার করে পর্যবেক্ষণ করি। সুতরাং যদি দুটি প্রোগ্রাম সকল প্রসঙ্গে একই চূড়ান্ত মান গণনা করে তবে তাদের সমান বলে গণ্য করা হয়। যেহেতু এই সংজ্ঞাটি সমস্ত সম্ভাব্য প্রোগ্রাম প্রসঙ্গে পরিসংখ্যান করে, তাই সরাসরি কাজ করা কঠিন। সুতরাং পিএল-তে একটি সাধারণ গবেষণা প্রোগ্রামটি রচনাগত যুক্তি নীতিগুলি সন্ধান করা যা প্রাসঙ্গিক সমতুল্যতা বোঝায়।
তবে এটি পর্যবেক্ষণের একমাত্র সম্ভাব্য ধারণা নয়। উদাহরণস্বরূপ, আমরা সহজেই বলতে পারি যে কোনও প্রোগ্রামের স্মৃতি, সময়, বা শক্তি আচরণ পর্যবেক্ষণযোগ্য। এই ক্ষেত্রে, কম প্রোগ্রামের সমতুল্যতা ধরে রাখে, যেহেতু আমরা আরও প্রোগ্রাম আলাদা করতে পারি (উদাহরণস্বরূপ, একীকরণ এখন কুইকোর্টের থেকে আলাদা)) আপনি যদি চ্যানেল আক্রমণগুলির সময় নির্ধারণের জন্য সুরক্ষিত ভাষাগুলি ডিজাইন করতে (বা বলার জন্য) চান, বা স্থান-সীমাবদ্ধ প্রোগ্রামিং ভাষাগুলি ডিজাইন করতে চান, তবে আপনার যা করতে হবে তা এটি।
এছাড়াও, আমরা গণনার কয়েকটি মধ্যবর্তী অবস্থার পর্যবেক্ষণযোগ্য হিসাবে বিচার করতে পারি। হস্তক্ষেপের সম্ভাবনার কারণে এটি সমবর্তী ভাষার জন্য সর্বদা ঘটে। তবে আপনি এমনকি এই অনুক্রমিক ভাষাগুলির জন্যও এই মতামতটি গ্রহণ করতে চাইতে পারেন --- উদাহরণস্বরূপ, আপনি যদি নিশ্চিত করতে চান যে কোনও গণনা মূল স্মৃতিতে এনক্রিপ্ট করা ডেটা সংরক্ষণ করে না, তবে আপনাকে অবশ্যই প্রধান মেমরিতে রাইটগুলি পর্যবেক্ষণযোগ্য হিসাবে বিবেচনা করতে হবে।
মূলত, প্রোগ্রামের সমতুল্যের কোনও একক ধারণা নেই; এটি সর্বদা আপনার পর্যবেক্ষণের ধারণার ধারণার সাথে সম্পর্কিত এবং এটি আপনার মনে থাকা প্রয়োগের উপর নির্ভর করে।