Tersinir (r-Turing hesaplanabilir) fonksiyonlar için Lambda hesabı


19

Axelsen ve Glück (2011) tarafından tanımlanan "r-Turing bütünlüğü" kavramıyla ilgileniyorum . Bir sistem olup, r-dönülerek bu, bir tersinir Turing makinesi olarak aynı fonksiyon grubu hesaplamak eğer tamamlandıktan olmadan herhangi bir "çöp" verileri üretir. Bu, hem (a) hesaplanabilir hem de (b) yerinde olmayan her işlevi hesaplayabilme ile aynıdır.

Hesaplanabilir entelektüel fonksiyonların alanını hesaplamalı olarak araştırmak istiyorum. Bunu yapmak için "en minimal" geri dönüşümlü programlama dilini arıyorum - lambda hesabının Turing hesaplanabilirliği için oynadığı r-Turing hesaplanabilirliği için eşdeğer rol oynayabilecek bir şey.

İnsanların r-Turing'in tamamlandığını kanıtladıkları ve geliştirdikleri birçok tersine çevrilebilir dil olduğunu biliyorum. Bununla birlikte, bunlar pratik uygulamalar göz önünde bulundurularak geliştirilmektedir ve bu nedenle yazarları, onları en az yapmaktan ziyade etkileyici özellikler vermeye odaklanmaktadır.

Böyle asgari bir tersine çevrilmiş dilin tanımlanıp tanımlanmadığını veya böyle bir yönde herhangi bir araştırma olup olmadığını bilen var mı? Bu konuyla ilgili literatürde oldukça yeniyim, bu yüzden kolayca özleyebilirdim. Alternatif olarak, böyle bir dilin nasıl oluşturulacağına dair herhangi bir görüş var mı?

Aşağıda aradığım şeylerin bir özeti bulunmaktadır. Lambda hesabının kendisini değiştirerek yaratılabilir mi, yoksa tamamen farklı bir dilin kullanılması gerekip gerekmediğini bilmiyorum.

  • r-Turing complete language - tüm hesaplanabilir ters çevrilebilir işlevleri hesaplar ve yalnızca ters çevrilebilir işlevleri hesaplayabilir
  • Sözdizimi ve semantik mümkün olduğunca az. (Ör. Lambda hesabı yalnızca işlev tanımlarına ve uygulamalarına sahiptir ve başka hiçbir şeye sahip değildir.) Sözdiziminin veya anlambiliminin lambda hesabınınkilerle ilişkili olmasına rağmen gerekli değildir.
  • Program = veri. Yani, programlar başka herhangi bir veri türü yerine ifadeler üzerinde çalışır. Bu, bir programın çıktısının her zaman bir program olarak yorumlanabileceğini garanti eder. Bu muhtemelen onun zorunlu bir dil tarzı olmaktan ziyade işlevsel olması gerektiği anlamına gelir.
  • Bir programı tersine dönüştürmenin sistematik bir yolu vardır, bu da aslında ters hesaplamanın gerçekleştirilmesinden daha fazla hesaplama içermez. (Ters çevrilebilir dillerin tümü bu özelliğe sahip değildir, ancak bazıları bu özelliğe sahiptir.)

Axelsen ve Glück'in tersinir hesaplamaya yaklaşımının, (genel olarak tersine çevrilemez) bir programın çıktı ile birlikte bazı bilgiler döndürerek ters çevrilebilir hale getirildiği Bennett nedeniyle iyi bilinen yaklaşımdan oldukça farklı olduğunu vurgulamalıyım. r-Turing tamlığı, herhangi bir ek çıktı olmadan injektif fonksiyonları hesaplayabilmektir . Bennet'in anlamında tersine çevrilebilen "tersinir lambda taşı" varyasyonları adı verilen birkaç şey var - bunlar aradığım şey değil.


r-Turing complete nispeten yeni bir defneye benziyor ve konsepti diğer yazarlar tarafından tamamlama ve yorumlama / analiz ile aynı olmadığını kanıtlayan bir kanıt görmek faydalı olacaktır (& görüntüleme başına ödeme olmayan bağlantılar mümkün)
vzn

Yanıtlar:


4

Bölgeye çok aşina değilim, ancak programlama dilleri topluluğundan, izomorfizm tipindeki bir dili kısıtlama fikrine dayanarak ilginizi çekebilecek bazı yeni çalışmalar var. Özellikle,

  • Roshan P. James, Zachary Sparks, Jacques Carette ve Amr Sabry'nin Kesirli Türleri

Amr Sabry'nin web sitesinde bulabileceğiniz çeşitli ilgili yayınların yanı sıra .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.