A given implementation of the TuringMachine abstraction must define certain architectural elements for sake of practicality. Some of those elements are things like word size (i.e. register size), stack-size, floating point, etc.
These choices will affect the types that the system makes available, and in practice how higher-level programming languages will define themselves and interface to the machine.
Architectural elements can be ignored by higher-level programming languages. That's part of what makes them higher-level. It is perfectly reasonable for a higher-level language to provide, say, a built-in integer type that is not a reflection of the underlying hardware, e.g., infinite precision.
See also ObjectArchitecture.