Ну будут программы, которые просто перекомпилируются, будут такие, что потребуют некоторой «обработки напильником» и будут новые, специально написанные под троичность - надо поддержать все три категории!
По типам мне мыслится так:
- слова signed и unsigned просто игнорируется (потом можно сделать опцию поддержки программной эмуляции переполнений)
- char - 6 тритов
- short - 12 тритов
- long - 24 трита
- long long - 48 тритов (будущее)
- float - 24 трита (будущее)
- double - 48 тритов (далёкое будущее)
- long double - 60 тритов (очень далёкое будущее)
- int по умолчанию будет равен short, но параметрами командной строки можно задать его равным char, long или даже long long
По идее можно сделать размер int выбираемым произвольно с шагом 6 тритов (6,12,18,24,30,36,42,48,54,60,66) - в этом случае появится возможность поддержки "тритовых" полей в существующих программах с битовыми полями, когда использовались либо 16-битные целые (тогда выбираем размер int равным 18 тритов), либо 32-битные целые (тогда выбираем размер int равным 36 тритов), либо 64-битные целые (тогда выбираем размер int равным 66 тритов)...
P.S. Кстааати! Тут можно попробовать реализовать мою старую идею про динамический размер типа int где размерность целых чисел растёт по мере вычислений, если нужно - причём для 3-тритной архитектуры можно идти даже с шагом в 3 трита, а первую триаду использовать как тэг с указанием размерности в триадах и в пределе размер может достигать 27*3=81 трит
P.P.S. Либо отвести 3 значения из 27 в тэге под возможность использования 1-тритного целого с сохранением его значения непосредственно в тэге, тогда максимальная размерность динамических целых может составлять 24*3=72 трита...