43 points | by beefburger 17 hours ago
13 comments
I've been wondering for a while if anything in Unicode could accidentally compute. It turns out that UTS #35 transliteration rules are Turing-complete. I show how to compute Collatz with just 3 rewrite rules running on stock ICU.
Huh, very interesting find, and very lean website (:
At this point it feels more difficult to ensure that your format cannot compute than to ensure it can
Does this mean I could post some untransliterated text here in a comment and make your browsers all do these computations?
I could be wrong, but I don't think it's common for websites to just transliterate any text they're given. Let's check: ウィキペディア
reminded me of the PowerPoint Turing Machine
https://www.youtube.com/watch?v=uNjxe8ShM-8
Does the Latin-Katakana example given imply that some input value can cause it to not terminate?
reminds me of Word's autocorrect being turing-complete https://www.youtube.com/watch?v=jlX_pThh7z8 (3:57, but whole video is fun)
Who implements transliteration rules? I assume operating systems? Or text renderers?
The ICU library. It’s so ubiquitous that it’s somewhat difficult to avoid this library if you are doing anything advanced with human text.
And ICU uses data from CLDR, which is mentioned in the blog. Here, there are 380 xml files: https://github.com/unicode-org/cldr/tree/main/common/transfo...
Yes, ICU is ubiquitous. But, some NLP projects use various other libraries, such as uroman (just for romanization - to Latin script).
Waiting for someone to vibe a compiler targeting Unicode transliteration rules...
Does it work on modern OS or just PyICU ?
I've been wondering for a while if anything in Unicode could accidentally compute. It turns out that UTS #35 transliteration rules are Turing-complete. I show how to compute Collatz with just 3 rewrite rules running on stock ICU.
Huh, very interesting find, and very lean website (:
At this point it feels more difficult to ensure that your format cannot compute than to ensure it can
Does this mean I could post some untransliterated text here in a comment and make your browsers all do these computations?
I could be wrong, but I don't think it's common for websites to just transliterate any text they're given. Let's check: ウィキペディア
reminded me of the PowerPoint Turing Machine
https://www.youtube.com/watch?v=uNjxe8ShM-8
Does the Latin-Katakana example given imply that some input value can cause it to not terminate?
reminds me of Word's autocorrect being turing-complete https://www.youtube.com/watch?v=jlX_pThh7z8 (3:57, but whole video is fun)
Who implements transliteration rules? I assume operating systems? Or text renderers?
The ICU library. It’s so ubiquitous that it’s somewhat difficult to avoid this library if you are doing anything advanced with human text.
And ICU uses data from CLDR, which is mentioned in the blog. Here, there are 380 xml files: https://github.com/unicode-org/cldr/tree/main/common/transfo...
Yes, ICU is ubiquitous. But, some NLP projects use various other libraries, such as uroman (just for romanization - to Latin script).
Waiting for someone to vibe a compiler targeting Unicode transliteration rules...
Does it work on modern OS or just PyICU ?