Salah satu jenis tantangan favorit saya di situs ini adalah tantangan sumber terbatas . Tantangan-tantangan ini memberlakukan pembatasan yang dapat dilakukan komputer yang harus dilewati sumber jawaban potensial. Saya sangat menyukai tantangan ini sehingga saya telah mengerjakan bahasa golf yang dirancang untuk menang pada tantangan ini untuk beberapa waktu sekarang. Sekarang saya ingin menyampaikan tantangan kepada Anda. Tugas Anda adalah merancang bahasa untuk menyelesaikan berbagai tugas sumber terbatas. Anda akan memiliki waktu untuk merancang dan mengimplementasikan bahasa, di mana perubahan dan penambahan baru akan menjadi non-bersaing dan semua kiriman akan berhadapan langsung dalam tantangan tantangan sumber terbatas .
Mencetak gol
Sebelum tantangan diposting, saya akan membuat daftar tantangan sederhana untuk dipecahkan dan daftar pembatasan sumber untuk diikuti. Untuk setiap pencocokan tantangan dan pembatasan sumber bahasa Anda dapat menghasilkan antara 0 dan 2 poin. (Akan ada 10 tantangan dan 10 batasan yang mengarah ke 100 kombinasi total) A skor bahasa
- 1 poin jika bisa menyelesaikan tugas dengan batasan di bawah 150 byte
- 2 poin jika solusi tersebut merupakan solusi terpendek dari setiap bahasa yang bersaing (kedua bahasa akan mencetak 2 poin jika terjadi seri)
- 0 poin jika mereka tidak dapat membuat program yang menyelesaikan tugas di bawah batasan dalam kurang dari 150 byte.
Skor Anda akan menjadi jumlah dari semua poin yang diperoleh dalam setiap pertandingan yang memungkinkan. Tujuannya adalah untuk mendapatkan skor tertinggi. Orang lain dapat membantu Anda memberikan solusi untuk setiap tantangan dan meningkatkan skor Anda.
Saya akan mengungkapkan 4 item dari setiap daftar pada saat posting dan tambahan 8 satu minggu setelah jawaban kedua. Anda hanya akan diizinkan untuk skor 1 poin (pengiriman terpendek tidak masuk hitungan) dalam setiap pencocokan yang memiliki kedua bagian terungkap sebelum minggu pertama. Dengan cara ini Anda bisa mendapatkan gagasan tentang seberapa baik bahasa Anda menumpuk saat Anda mengerjakannya, tetapi Anda tidak dapat merancang bahasa Anda hanya untuk membangun semua tantangan dan batasan.
Saya akan menyertakan hash dari kategori yang dimaksud dengan pertanyaan sehingga Anda dapat yakin saya tidak mengubahnya selama seminggu untuk keuntungan pihak mana pun. Selain itu, saya tidak akan memberi tahu siapa pun parameter tersembunyi sampai minggu ini berakhir atau bersaing dalam tantangan itu sendiri.
Bahasa yang sudah ada sebelumnya
Tantangan ini terbuka untuk semua bahasa yang sudah ada tetapi jika Anda bukan penulis bahasa, harap jadikan jawaban Anda sebagai wiki komunitas sehingga anggota komunitas kami yang lain dapat berkontribusi untuk skor secara langsung. Bendera baris perintah tidak harus mematuhi batasan apa pun namun setiap program harus dijalankan dengan argumen baris perintah yang sama (yaitu Anda harus memilih satu dan tetap menggunakannya). Ini tidak menambah jumlah byte Anda.
Tantangan dan batasan
Pembatasan diberlakukan pada pengkodean ASCII dari binari Anda terlepas dari halaman kode yang Anda gunakan. Sebagian dari tautan ini ke pertanyaan yang ada di situs tempat mereka mewarisi persyaratan io mereka untuk tantangan dan sumber pembatasan. Anda dapat mengabaikan "larangan bawaan" apa pun atau mengabaikan konsensus meta yang ada pada salah satu tantangan terkait.
Sebagai kata peringatan: jangan mencoba untuk memerintah pengacara; Saya tahu ini adalah kompetisi tetapi karena pada dasarnya ada 100 tantangan sub-tantangan yang berbeda dan saya benar-benar tidak dapat menjamin bahwa semuanya akan sepenuhnya tidak bermasalah. Cobalah bersenang-senang saja.
Tantangan
Batasan
Bytes dalam urutan menaik (setiap byte lebih besar dari yang terakhir)
Kode sumber adalah palindrome
Kriteria yang tersisa memiliki hash sha512:
4de5eca33c6270798606cf1412820c4ce112d8b927ef02877f36795b2b15ffacca51ea598fa89b8d6bc9f4cde53810e0e7ade30e536e52e28f40a6a13841dfc5 -
sumber
Jawaban:
Lebar
Interpreter masih dalam proses (saya masih memiliki beberapa slot perintah yang tidak digunakan). Repo, dengan lebih banyak dokumentasi, dapat ditemukan di sini .
Dennis menambahkan Lebar ke TIO kurang dari satu menit yang lalu: Coba Online!
Lebar adalah bahasa berbasis tumpukan esoterik yang saya kembangkan baru-baru ini berdasarkan ide yang pertama kali saya masukkan dalam pertanyaan ini . Ini sepenuhnya didasarkan pada seberapa lebar, lebih atau kurang, huruf dalam font "biasa". Satu-satunya karakter yang melakukan apa saja adalah huruf, huruf besar dan huruf kecil. Semua karakter lain diabaikan. Saya membagi huruf menjadi 10 kategori lebar berbeda, yang membentuk 10 tindakan berbeda yang mungkin ada dalam Lebar:
2
,,5
dan6
memberikan akses ke perintah, yang sebagian besar berinteraksi dengan stack. Informasi lebih lanjut dapat ditemukan diinfo.txt
halaman di repo Github.Ini adalah kode Python dari penerjemah. Saya masih memiliki beberapa perintah untuk ditambahkan, dan saya sedang mempertimbangkan bagaimana bekerja dengan penanganan kesalahan, tetapi jika tidak, itu harus lengkap. (Saya juga akan menambahkan bendera di beberapa titik untuk memungkinkan pengujian dengan sintaksis yang lebih abstrak, karena kalau tidak bahasa ini adalah pekerjaan yang sangat merepotkan)
sumber