Просмотр Сообщения о языке вызвал вопрос:
а кто сказал, что в КП целые типы фиксированы? В том же Сообщении о языке естьосновнойраздел:
> -- Цитата:
> 6.1 Basic TypesThe basic types are denoted by predeclared identifiers. The associated operators are defined in 8.2 and the predeclared function procedures in 10.3. The values of the given basic types are the following:1.	BOOLEAN	the truth values TRUE and FALSE2.	SHORTCHAR	the characters of the Latin1 character set (0X .. 0FFX)3.	CHAR	the characters of the Unicode character set (0X .. 0FFFFX)4.	BYTE	the integers between MIN(BYTE) and MAX(BYTE)5.	SHORTINT	the integers between MIN(SHORTINT) and MAX(SHORTINT)6.	INTEGER	the integers between MIN(INTEGER) and MAX(INTEGER)7.	LONGINT	the integers between MIN(LONGINT) and MAX(LONGINT)8.	SHORTREAL	the real numbers between MIN(SHORTREAL) and MAX(SHORTREAL), the value INF9.	REAL	the real numbers between MIN(REAL) and MAX(REAL), the value INF10.	SET	the sets of integers between 0 and MAX(SET)
в котором нет указаний на разрядность числовых типов, и естьприложение, в котором это дело уточнено.

Прикладные программы должны писаться опираясь наосновнойраздел, как раз это - гарантия переносимости. А если кто-то при написании кода подглядывал в приложение - это его проблемы. Более того, если оставить жёсткую привязку типов, то мы и порушим переносимость, ибо начнём опираться не на основной закон, а на некие подзаконные акты.

Так что именно ради сохранения переносимости и универсальности мы должны сдвинуть целые типы, причём не добавляя новых типов (LONGINT->128, INTEGER->64, SHORTINT->32)! Если делать в духе Оберона, то нужно вводить псевдомодуль SYSTYPES, в котором и будет куча INTxx, REALxx, SETxx и беззнаковые. Тогда полностью переносимым будет считаться только тот код, который не использует SYSTYPES и SYSTEM.