notes icon indicating copy to clipboard operation
notes copied to clipboard

OpenType is not Turing Complete

Open mhosken opened this issue 10 months ago • 5 comments

I present the following sylogism to justify that an OpenType Engine however theoretical, is not Turing Complete. I would be very happy to be proven wrong.

An OpenType engine can only loop infinitely by growing the tape infinitely. A Turing machine can loop infinitely with a finite tape. An OpenType engine is therefore NOT Turing Complete.

mhosken avatar Feb 13 '25 02:02 mhosken

Thanks for the note.

My list is meant more as a collection of bizarre things people have done with systems that are assumed to not be very capable, than a definitive proof of each system's Turing completeness. You'll notice many of the demos don't even require the computational power of a Turing machine. For example, the entry for OpenType implements addition. I should be more precise about this, but this is how it currently is.

Since I'm not familiar with the workings of OpenType myself, I lean on what other people have written. If you've got something demonstrating this, I'll gladly link it.

thaliaarchi avatar Feb 19 '25 22:02 thaliaarchi

An OpenType engine can only loop infinitely by growing the tape infinitely.

[Citation Needed]

behdad avatar Feb 20 '25 15:02 behdad

My proof that OpenType shaping is Turing Complete, albeit with a caveat: the machine never halts:

https://www.youtube.com/watch?v=lK_myoawb0U

behdad avatar Feb 20 '25 15:02 behdad

I mean, looping infinitely is the easiest thing in OpenType: just a Contextual lookup that loops back to itself. No tape needed more than one entry.

behdad avatar Feb 20 '25 16:02 behdad

Also, for AAT morx fonts I think I also once proved that they are Turing Complete, despite looking like DFAs. It's because of the epsilon-transitions IIRC.

behdad avatar Feb 20 '25 16:02 behdad