अन्य चरम यह कहना है कि दो कार्यक्रम समान हैं यदि वे समान फ़ंक्शन की गणना करते हैं (या समान वातावरण में एक ही देखने योग्य व्यवहार दिखाते हैं)। लेकिन ये अच्छे नहीं हैं: प्राइमलिटी चेक करने वाले सभी प्रोग्राम समान नहीं हैं। हम परिणाम पर बिना किसी प्रभाव के कोड की एक पंक्ति जोड़ सकते हैं और हम अभी भी उसी कार्यक्रम पर विचार करेंगे।
यह एक चरम नहीं है: कार्यक्रम की समानता को अवलोकन की धारणा के सापेक्ष परिभाषित किया जाना चाहिए ।
पीएल अनुसंधान में सबसे आम परिभाषा प्रासंगिक तुल्यता है। प्रासंगिक तुल्यता में, विचार यह है कि हम बड़े कार्यक्रमों (संदर्भ) के घटकों के रूप में उनका उपयोग करके कार्यक्रमों का निरीक्षण करते हैं। इसलिए यदि दो कार्यक्रम सभी संदर्भों के लिए समान अंतिम मूल्य की गणना करते हैं, तो उन्हें समान होने का निर्णय लिया जाता है। चूंकि यह परिभाषा सभी संभावित कार्यक्रम संदर्भों पर निर्भर करती है, इसलिए सीधे काम करना मुश्किल है। इसलिए पीएल में एक विशिष्ट शोध कार्यक्रम रचनात्मक तर्क सिद्धांतों को खोजने के लिए है जो प्रासंगिक तुल्यता को दर्शाता है।
हालांकि, यह केवल अवलोकन की संभव धारणा नहीं है। उदाहरण के लिए, हम आसानी से कह सकते हैं कि किसी प्रोग्राम की मेमोरी, समय या शक्ति व्यवहार अवलोकनीय है। इस मामले में, कम प्रोग्राम तुल पकड़ते हैं, क्योंकि हम अधिक कार्यक्रमों को अलग कर सकते हैं (उदाहरण के लिए, मर्जसॉर्ट अब क्विकॉर्ट से अलग है)। यदि आप समय-समय पर चैनल हमलों के लिए, या स्पेस-बाउंड प्रोग्रामिंग भाषाओं को डिजाइन करने के लिए प्रतिरक्षा (डिजाइन) करना चाहते हैं, तो आपको इस तरह की चीज़ करनी होगी।
इसके अलावा, हम एक अभिकलन के मध्यवर्ती राज्यों में से कुछ को देखने के लिए चुन सकते हैं। यह हमेशा समवर्ती भाषाओं के लिए होता है, हस्तक्षेप की संभावना के कारण। लेकिन आप इस दृश्य को अनुक्रमिक भाषाओं के लिए भी ले जाना चाह सकते हैं --- उदाहरण के लिए, यदि आप यह सुनिश्चित करना चाहते हैं कि कोई भी संगणना मुख्य मेमोरी में अनएन्क्रिप्टेड डेटा को संग्रहीत न करें, तो आपको मुख्य मेमोरी को लिखने योग्य मानना होगा।
मूल रूप से, कार्यक्रम की समानता की कोई एकल धारणा नहीं है; यह हमेशा आपके द्वारा उठाए गए अवलोकन की धारणा के सापेक्ष है, और यह आपके द्वारा ध्यान में रखे गए अनुप्रयोग पर निर्भर करता है।