Sure; one of the simplest languages possible, the binary lambda calculus [1] is Turing complete. It has no pointers, no variables, and no data type sizes. Only functions (from functions to functions). Everything else must be built out of functions.
Brainfuck with an unbounded tape length is similarly Turing complete.
I think less esoteric languages like Haskell and Scheme qualify too.
Comments
Sure; one of the simplest languages possible, the binary lambda calculus [1] is Turing complete. It has no pointers, no variables, and no data type sizes. Only functions (from functions to functions). Everything else must be built out of functions.
Brainfuck with an unbounded tape length is similarly Turing complete.
I think less esoteric languages like Haskell and Scheme qualify too.
[1] https://www.ioccc.org/2012/tromp/hint.html
but under the hood (the implementation of an actual programming language) it is all pointers - not?
The article admits that real machines have bounded memory, the argument is about language specifications only.