Programın tersine çevrilmesi terimi , birçok anlam gölgesine sahiptir, ancak muhtemelen J. McCarthy'nin AI bağlamında Turing Makineleri tarafından tanımlanan işlevlerin tersine çevrilmesi çalışmasıyla başlamıştır . Şimdiye kadar, program ters çevirme ve diğer alanlar arasında birçok bağlantı keşfedilmiştir, örneğin, tersinir programlama (fiziksel ve mantıksal), kısmi değerlendirme, doğrulama, çift yönlü programlama, mantık programlama ve makine öğrenimi.
Programın ters çevrilmesi nedir? İlk yaklaşımda bu gibi o şey: Bir program Verilen tipi argümanlarını dinleyerek ve tip sonuçlarını dönen , bir program üretmek "bir şekilde" tersidir . Burada kasıtlı olarak belirsiz oluyorum, çünkü kavram çeşitli şekillerde netleştirilebilir (ve açıklanabilir): örneğin nesnel olmaması gerekir mi? Meli tüm iade veya sadece bazı bir şekilde P ( a ) = b ?
Bir programı tersine çevirmenin genel yolları vardır, örneğin McCarthy tarafından daha önce belirtildiği gibi köşegenleştirme veya kısmi değerlendirme kullanma, ancak bunlar etkili olma eğilimindedir. Ayrıca aşina olduğum program ters çevirme ile ilgili çoğu çalışma, tam üst düzey programlama dilleriyle (yani -calculi) ilgilenmiyor gibi görünüyor .
Referans talebi. -calculi'nin program tersine çevrilmesi için açık algoritmalarda en son teknoloji nedir (daha yüksek zorluk derecesi kısıtlaması olmadan)?