
Комментарии 7
Примите меня в игру: а как тогда писать программы для данного эмулятора? Понимаю, что большинство языков программирования заточены именно под двоичную систему, но будет ли, например, компилятор Си для архитектуры Сетунь-70?
Ух, какой интересный вопрос, и сразу про всё :)
Если вопрос "как написать прямо сейчас", то ответ будет примерно такой: какого-то общего обучающего документа пока нет. Но в эмуляторе есть рудиментарный ассемблер и если скормить исходники эмулятора ИИ и попросить его разобраться с системой команд и что-то несложное написать, то вполне может выйти толк.
Вопрос насчет Си-подобного языка неоднократно поднимался и пока не кажется что это принципиально невозможно и компиляторе не может быть вообще, но надо будет приложить немало усилий, чтобы он получился. Однако, скорее всего он будет отличаться от своего исходного двоичного прародителя и потребуется ввести новые типы данных и научиться избавляться от искусственно введенных костылей, вроде функций abs(), которые не имеют особого смысла в троичной системе.
А вот взять и собрать какой-нибудь старый линукс для Сетуни 70, кажется невозможным или очень затруднительным и неизбежно потребует полной замены достаточного большого количества исходных функций, ориентированных на обработку двоичных форматов чисел и символов в кодировке ASCII. Из-за различия в представлении чисел перестанет работать вообще вся логика и арифметика использующая сдвиги, маски, логические И, исключающие ИЛИ и т.п. - результат их работы будет совсем не тем, что ожидается.
Но это ведь только если не думать об отрицательных числах (+1 разряд или еще больше)
не понял почему обязательно +1 разряд? дополнение до двойки вроде как не имеет отдельного знакового разряда?
Насколько я помню, в университете на первом курсе мы математически высчитывали максимально эффективную разрядность ЭВМ. И там получилось, что самыми эффективными будут вычисления по основанию e (2.72...), что ближе к 3, а не к 2. И Сетунь как раз и был прототипом, чтобы проверить это на практике. В итоге получилось, что сложность машины сильно перевешивала эффективность вычислений.
«Сетунь» вовсе не была прототипом, она выпускалась промышленно с 1962 по 1964 гг. Всего было произведено и поставлено около 50 экземпляров в разные регионы СССР. Кроме того машина появилась как своеобразный ответ на сложность и несовершенство двоичных машин того времени, и схемотехнически была не сложнее, а наоборот - проще, и кроме того надежнее двоичных ЭВМ аналогичного класса.
вопросом представления чисел в уравновешенной троичной системе счисления, то скорее всего знаете про два наиболее часто встречающихся варианта: «пара бит на один трит» и «знаковые слои» (что в принципе сводится к той же паре бит на один трит, но уже при иной организации).
А что мешает использовать основание 3^5=243 и по байтам распихать, 5 тритов в 1 байт. А для ALU использовать таблицы?
«Я Сетунь 70». Эмулятор троичного компьютера на Rust