Bu mücadelede, yaptığım basit bir dil için bir tercüman yazacaksınız. Dil, tam olarak bir bayt uzunluğunda olan tek bir akümülatör A'ya dayanmaktadır. Bir programın başında, A = 0'dır. Bunlar dil talimatlarıdır:
!: Ters çevirme
Bu talimat, akümülatörün her bir ucunu basitçe tersine çevirir. Her sıfır bir olur ve her biri sıfır olur. Basit!
>: Sağa Kaydır
Bu komut A'daki her biti sağa kaydırır. En soldaki bit sıfır olur ve en sağdaki bit atılır.
<: Sola kay
Bu komut A'daki her biti sola kaydırır. En sağdaki bit sıfır olur ve en soldaki bit atılır.
@: Değişen Nybbles
Bu komut, A'nın ilk dört bitini, alt dört bit ile değiştirir. Örneğin, A ise 01101010ve siz yürütüyorsanız @, A olacaktır 10100110:
____________________
| |
0110 1010 1010 0110
|_______|
Tüm talimatlar bu! Basit değil mi?
kurallar
- Programınız başlangıçta bir kez girişi kabul etmelidir . Bu bir kod satırı olacaktır. Bu etkileşimli bir tercüman değil ! Girdiyi yalnızca bir kez kabul edebilirsiniz ve bu satır yürütüldüğünde başa geri dönmeniz gerekmez.
- Programınız sözü geçen girişi değerlendirmelidir. Yukarıda belirtilmeyen her karakter göz ardı edilir.
- Ardından programınız akümülatörün nihai değerini, ondalık olarak yazdıracaktır.
- Geçerli programlama dilleri için olağan kurallar geçerlidir.
- Standart boşluklara izin verilmez.
- Bu kod golf , en küçük bayt sayısı kazanıyor.
Gönderilerinizi test etmek için bazı küçük programlar. Ok koddan önce, beklenen sonuçtan sonra:
!->255!>>->63!<@->239!nop!&6*!->255
Keyfini çıkarın!



! -> 255burada bayt başına 8 bit kullanacağız. Soru açık değil.