Exotic architectures the standards committees care about
architecture, c, c++
Solution
Take a look at this one
Unisys ClearPath Dorado Servers
offering backward compatibility for people who have not yet migrated all their Univac software.
Key points:
- 36-bit words
- `CHAR_BIT == 9`
- one's complement
- 72-bit non-IEEE floating point
- separate address space for code and data
- word-addressed
- no dedicated stack pointer
Don't know if they offer a C++ compiler though, but they could.
And now a link to a recent edition of their C manual has surfaced:
Unisys C Compiler Programming Reference Manual
Section 4.5 has a table of data types with 9, 18, 36, and 72 bits.
Problem
I know that the C and C++ standards leave many aspects of the language implementation-defined just because if there was an architecture with other characteristics, a standard confirming compiler for that architecture would need to emulate those parts of the language, resulting in inefficient machine code. Surely, 40 years ago every computer had its own unique specification. However, I don't know of any architectures used today where: - `CHAR_BIT != 8` - `signed` is not two's complement (I heard Java had problems with this one). - Floating point is not IEEE 754 compliant (Edit: I meant "not in IEEE 754 binary encoding"). The reason I'm asking is that I often explain to people that it's good that C++ doesn't mandate any other low-level aspects like fixed sized types†. It's good because unlike 'other languages' it makes your code portable when used correctly (Edit: because it can be ported to more architectures without requiring emulation of low-level aspects of the machine, like e.g. two's complement arithmetic on sign+magnitude architecture). But I feel bad that I cannot point to any specific architecture myself. So the question is: what architectures exhibit the above properties? † `uint*_t`s are optional.