Ini secara tangensial terkait dengan pencarian saya untuk menciptakan bahasa pemrograman esoterik .
Tabel angka biner 0 .. 15 dapat digunakan untuk mengimplementasikan Fungsi Biner Universal menggunakan operasi pengindeksan. Diberikan dua input 1-bit X dan Y, semua 16 fungsi yang mungkin dapat dikodekan dalam opcode 4-bit.
X Y F|0 1 2 3 4 5 6 7 8 9 A B C D E F
- - - - - - - - - - - - - - - - - -
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
- - - - - - - - -
0 ~X ~Y ^ & Y X | 1
ZERO NOT-Y AND OR
NOT-X XOR ONE
Jadi set 16 fungsi ini dapat diterapkan ke input biner sebagai fungsi
U (f, x, y): (f >> ((x << 1) | y)) & 1 ,
atau
U (f, x, y): (f / 2 ^ (x × 2 + y))% 2 ,
atau dengan pengindeksan atau partisi matriks.
Akan bermanfaat untuk mengetahui cara yang paling ringkas untuk mewakili atau menghasilkan tabel nilai sedemikian untuk bahasa apa pun yang mungkin dibangun di atas jenis operasi biner ini.
Target:
Hasilkan keluaran teks persis ini:
0101010101010101
0011001100110011
0000111100001111
0000000011111111
Itu dia! Kemenangan kode terpendek.