X'in basit bir dil olduğu "X'i yorumla" diyen birçok zorluk var. Bence bu çok sıkıcı. Tüm erteleyen insanlara internetteki ilginç şeyler yapmak için bu zorluğu deneyebilirsiniz:
Meydan okuma
Bir dil seçiniz $LANG
. $LANG
herhangi bir turing tam programlama dili veya bir programlama dilinin turing tam bir alt kümesi olabilir. Dilinizi $LANG
yorumlama için bir özelliğini atlarsanız , gönderiminiz de yazılı olması gerektiğinden, kendi programınız için kullanmamalısınız $LANG
.
İçin $LANG
yazılmış bir derleyici / tercüman yazın $LANG
. eval
Bu derleyiciyi yazmak için kullanabileceğiniz dildeki tüm olanakları ( ve arkadaşlarınız dahil ) kullanabilirsiniz. Görevi daha zorlaştırmak için bir kısıtlama var: Programınız $LANG
, tercüman / derleyiciniz dışındaki tüm geçerli programları yorumlayabilmeli / derleyebilmelisiniz . Yorumlanacak / derlenecek programın tercümanınız veya derleyicinin kendisi olduğu (dosya adından bağımsız olarak) ortaya çıkarsa, programınız tercüman veya derleyicinin işlevselliği ile tamamen ilgisiz bir şey yapmalıdır (çentikleme veya baskı gibi Hello, world!
).
Bu görevi daha da karmaşık hale getirmek için, programınız derlenirken veya yorumlanırken kendi kaynağını okumamalıdır.
Özellikler
- Bu görev kod golfü. Doğru olan en az karakter içeren gönderim kazanır. Beraberlik durumunda ilk verilen çözüm kazanır.
- Programınız / betiğiniz bir dosyadan yorumlanacak programı okumalıdır. Yolunu ve adını kodlayabilirsiniz. Dosya okunduğunda, dosyayı başka bir dosyaya (sisteminizde çalıştırılabilir olması gerekir) derleyebilir veya doğrudan çalıştırabilirsiniz. Eğer
$LANG
dosya okuma yetenekleri yoksun sen uyan bu kodu okumak için başka bir yol seçebilir$LANG
.$LANG
Başka bir dilin altkümesi olarak değil, dosya okuma yetenekleri kaldırılmış olarak seçebilirsiniz . - Her zamanki kod golf kuralları geçerlidir. Şöyle ki: Sadece bu zorluğu çözmek için oluşturduğunuz kişisel evcil hayvan diliniz, çözümü kullanarak önemsiz hale gelirse (örneğin, çözümü tam olarak uygulayan tek bir char programı tanımlamak gibi) yasaktır. Kuralların kötüye kullanılması teşvik edilir.