4 ms·
>the C preprocessor are Turing complete That's surprising, the C preprocessor is pretty crippled. It's creator intentionally made it so people won't abuse it t
by Banana699 5y ago
>the C preprocessor are Turing complete
That's surprising, the C preprocessor is pretty crippled. It's creator intentionally made it so people won't abuse it to create full blown mini languages.
Did you get things mixed up or is there actually a way the c preprocessor can be turing-complete ?
- namibj 5y agoCPP needs to feed into itself (pipe stdout into stdin), if you want it to be turing-complete.
- gpderetta 5y agoI believe that while you can't encode an infinite tape, you can very easily define an arbitrarily large tape, so, while not technically Turing complete, it is close enough.
- mtlmtlmtlmtl 5y agoNot sure whether this proves turing completeness of the preprocessor or not(probably not) but Simon Tatham has a great(and somewhat disturbing) write-up[1] on creating arbitrary control structures using macros in C. He even goes as far as providing a library of helper macros for doing things like making gensyms, etc. If nothing else, it does demonstrate that you can do a lot more in the preprocessor than you might think, and this is at least a significant subset of what true MP macros are used for in Lisp most of the time. Except much gnarlier... [1] https://www.chiark.greenend.org.uk/~sgtatham/mp/ https://www.chiark.greenend.org.uk/~sgtatham/mp/