David Madore's WebLog: A Unicode-obfuscated programming language proposal

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entry #0813 [older|newer] / Entrée #0813 [précédente|suivante]:

(Friday)

A Unicode-obfuscated programming language proposal

I'm feeling geeky today, so here's a very geeky post.

People have invented vast repertoires of obfuscated programming languages (one of my favorite is Shakespeare), but none, so far, seems to make use of Unicode's great resources for obfuscation (except perhaps, with a remarkable amount of foresight, the infamous APL). So here are a few suggestions for a language that I think someone (but not me!) should have the patience to implement. Let's call it Юᓂ곧⎔ (U+042E CYRILLIC CAPITAL LETTER YU / U+14C2 CANADIAN SYLLABICS NI / U+ACE7 HANGUL SYLLABLE GOD / U+2394 SOFTWARE-FUNCTION SYMBOL) so (1) nobody will know how to pronounce it (except simply Unicode, which is confusing), (2) nobody will have the fonts to write it properly because nobody ever has a Canadian unified aboriginal syllabics font and a Hangul font and a font with this strange SOFTWARE-FUNCTION SYMBOL (even Microsoft's supposedly all-inclusive Arial Unicode font does not recognize that symbol), (3) it says NI and GOD at once, (4) it's another of these obnoxious names which includes symbols (like Divx;-)), and (5) I'm sure nobody has ever used that particular combination of Unicode characters before me (and Google agrees, of course).

Now most programming languages up to quite recently had the rule that only ASCII characters are allowed in source code (they will give you some stupid error like illegal character if you try). Юᓂ곧⎔, on the contrary, does not allow ASCII characters in source files (except for line feed). For example, instead of using the * (U+002A ASTERISK) character to denote multiplication as is done in C, one uses × (U+00D7 MULTIPLICATION SIGN). And of course, one does not write digits with the usual “European/Arabic” digits (they are in ASCII), rather, one uses Mongolian digits, so, for example, the Юᓂ곧⎔ code to store the product of 42 and 1729 in the temporary variable 無 would be: 無 ← ᠔᠒×᠑᠗᠒᠙।. More generally, here are the basic syntax rules of Юᓂ곧⎔:

We conclude with the example of the usual Hello, world! program written in Юᓂ곧⎔:

⌂ «»

  писать «“⁌☱☱☰⁍⁌☱☴☵⁍⁌☱☵☴⁍⁌☱☵☴⁍⁌☱☵☷⁍⁌☰☵☴⁍⁌☰☴☰⁍⁌☱☶☷⁍⁌☱☵☷⁍⁌☱☶☲⁍⁌☱☵☴⁍⁌☱☴☴⁍⁌☰☴☱⁍␊”»।

↑Entry #0813 [older|newer] / ↑Entrée #0813 [précédente|suivante]

Recent entries / Entrées récentesIndex of all entries / Index de toutes les entrées