Ekstrem lainnya adalah dengan mengatakan dua program setara jika mereka menghitung fungsi yang sama (atau menunjukkan perilaku yang dapat diamati sama di lingkungan yang sama). Tapi ini tidak baik: tidak semua program memeriksa keaslian adalah sama. Kami dapat menambahkan baris kode tanpa efek pada hasilnya dan kami masih akan menganggapnya sebagai program yang sama.
Ini bukan ekstrem: kesetaraan program harus didefinisikan relatif terhadap gagasan pengamatan.
Definisi paling umum dalam penelitian PL adalah kesetaraan kontekstual. Dalam kesetaraan kontekstual, idenya adalah bahwa kita mengamati program dengan menggunakannya sebagai komponen program yang lebih besar (konteks). Jadi jika dua program menghitung nilai akhir yang sama untuk semua konteks, maka keduanya dinilai sama. Karena definisi ini mengkuantifikasi semua konteks program yang mungkin, sulit untuk dikerjakan secara langsung. Jadi program penelitian tipikal dalam PL adalah menemukan prinsip-prinsip penalaran komposisi yang menyiratkan kesetaraan kontekstual.
Namun, ini bukan satu-satunya gagasan pengamatan yang mungkin. Sebagai contoh, kita dapat dengan mudah mengatakan bahwa memori, waktu, atau perilaku kekuatan suatu program dapat diamati. Dalam hal ini, lebih sedikit kesetaraan program berlaku, karena kita dapat membedakan lebih banyak program (misalnya, mergesort sekarang dapat dibedakan dari quicksort). Jika Anda ingin (mengatakan) merancang bahasa yang kebal terhadap serangan saluran waktu, atau merancang bahasa pemrograman terbatas ruang, maka ini adalah hal yang harus Anda lakukan.
Selain itu, kami dapat memilih untuk menilai beberapa kondisi perantara dari suatu komputasi yang dapat diamati. Ini selalu terjadi untuk bahasa yang berbarengan, karena kemungkinan gangguan. Tetapi Anda mungkin ingin mengambil tampilan ini bahkan untuk bahasa berurutan --- misalnya, jika Anda ingin memastikan bahwa tidak ada perhitungan yang menyimpan data yang tidak terenkripsi di memori utama, maka Anda harus menganggap penulisan ke memori utama sebagai yang dapat diamati.
Pada dasarnya, tidak ada gagasan tunggal tentang kesetaraan program; itu selalu relatif terhadap gagasan pengamatan yang Anda pilih, dan itu tergantung pada aplikasi yang ada dalam pikiran Anda.