Uyarı: İlginç bulduğum herhangi bir cevaba lütuf vermeye hazırım.
Buradaki zorluk, Turing-complete tek bir talimat set bilgisayarı (OISC) tasarlamaktır :
Bir OISC sadece bir komut kullanan soyut bir makinedir - bir makine dili koduna olan ihtiyacı ortadan kaldırır. Tek bir talimat için mantıklı bir seçim ve sonsuz kaynaklar verilen bir OISC, çoklu talimatlara sahip geleneksel bilgisayarlarla aynı şekilde evrensel bir bilgisayar olma yeteneğine sahiptir.
İşte bir Turing-tam OISC yapmak tek komutların bazı örneklerdir.
Kurallar:
Bir yorum veya kanıt sağlamalısınız
Diliniz için bir tercüman sağlamalısınız. Bu tercüman yalnızca hafıza / zaman ile sınırlandırılmalıdır (örn. Kullanıcı tarafından kısıtlanan hiçbir kısıtlama olmamalıdır). Diliniz için bir tercüman sağlamazsanız (tembellikten başka herhangi bir nedenle) birinin yazılmasının mümkün olduğunu kanıtlamanız gerekir. Bir tercüman mümkün olmalıdır .
Turing'in eksiksiz olduğunu kanıtlamanız gerekir
Dilinizin Turing-tamamlandı olduğuna dair resmi bir kanıt eklemelisiniz. Bunu yapmanın basit bir yolu, bir başka Turing-tamamlama dili ile aynı davranışı yorumlayabileceğini veya bu davranışa sahip olduğunu kanıtlamaktır. Yorumlanacak en temel dil Brainf ** k olacaktır .
Örneğin, Brainf ** k ile aynı komutlara sahip normal bir dil (ve kullanıcı tarafından dayatılan bellek kısıtlamalarının aynısı) Turing-tamamlandı çünkü Brainf ** k'da uygulanabilecek herhangi bir şey dilde uygulanabilir. .
Uygulaması çok kolay olan Turing-komple dillerin bir listesi.
Ek OISC gereksinimleri
Bu OISC'nin yalnızca bir talimatı olmalıdır - bunlardan biri Turing-tamamlandıran birden fazla talimatı olamaz.
OISC'niz istediğiniz herhangi bir sözdizimini kullanabilir. Cevabınızda, talimatın ne olduğunu, verilerin ne olduğunu ve çalışmazamanın ne olduğunu tanımlamalısınız (örn. Boşluk). Yaratıcı ol!
Bağımsız değişkenlerin sadece tamsayı olmaları gerekmez. Örneğin, /// , Turing-complete OISC'nin güzel bir örneğidir.
Giriş ve çıkışların nasıl alındığı ve verilip verilmediği size bırakılmıştır. Çoğu OISC, belirli bellek konumlarıyla G / Ç uygular, ancak bunu yapmanın başka yolları da olabilir ve birini bulmanız önerilir.
Geçerli bir cevap OISC'nizde bazı yazılara, yazıya ekleyerek ya da dilde çözülen basit bir zorluğa bağlanarak sağlamalıdır.
oylama
Seçmenler, sıkıcı başvuruları telafi etmemeyi unutmayın. Örnekler:
- yüksek oranlarda konuşma -equivalents
- Mevcut bir OISC'nin uygulaması (cevaplayıcılar, lütfen kendinizinkini oluşturun!)
- İlk argümanın çağrılacak bir komut belirttiği bir "OISC" ( örnek )
Ancak, aşağıdaki gibi ilginç, yaratıcı gönderimleri oylamanız gerekir:
- Matematiksel bir denklem temelli bir OISC
- Bir Turing tamamlandı ZISC sinir ağına dayalı
- G / Ç çıkışının belirli bellek konumlarından başka şekillerde gerçekleştiği bir OISC
Kazanan
Olduğu gibi popülaritesi-yarışma En çok oyu alan cevap kazanır! İyi şanslar!