Proquints are identifiers that are readable and pronounceable.
We propose encoding a 16-bit string as a proquint of alternating consonants and vowels as follows. Four-bits for consonants, and two-bits for vowels:
0 1 2 3 4 5 6 7 8 9 A B C D E F | 0 1 2 3 b d f g h j k l m n p r s t v z | a i o u
Separate proquints using dashes, which can go un-pronounced or be pronounced "eh".
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
con | vow | con | vow | con |
Here are some IP dotted-quads and their corresponding proquints.
127.0.0.1 lusab-babad | 147.67.119.2 natag-lisaf 63.84.220.193 gutih-tugad | 212.58.253.68 tibup-zujah 63.118.7.35 gutuk-bisog | 216.35.68.215 tobog-higil 140.98.193.141 mudof-sakat | 216.68.232.21 todah-vobij 64.255.6.200 haguz-biram | 198.81.129.136 sinid-makam 128.30.52.45 mabiv-gibot | 12.110.110.204 budov-kuras
Uxntal Implementation
A minimal encoder implementation of proquints in 77 bytes of Uxntal:
@proquint ( short* -- ) ( c1 ) DUP2 #0c ,&emit-con JSR ( v1 ) DUP2 #0a ,&emit-vow JSR ( c2 ) DUP2 #06 ,&emit-con JSR ( v2 ) DUP2 #03 ,&emit-vow JSR ( c3 ) #00 ,&emit-con JSR #20 EMIT JMP2r &emit-con SFT2 #000f AND2 ;&con ADD2 LDA EMIT JMP2r &con "bdfghjklmnprstvz &emit-vow SFT2 #0003 AND2 ;&vow ADD2 LDA EMIT JMP2r &vow "aiou
The previous encoder can be transformed into the following proquints:
favab bubum bumag pabip gahiv favab bimiv bumag pabag fisiv pabab bihiv pabab dobol kubuz pabab busus pabad fosum difab dobol kudaf kidak kitim konir kudit kunob lanog lidok lomuz pabab basus pabad hohum difab dobol kudad kojiz lihab