Re[7]: char, signed char, unsigned char
От: Erop Россия  
Дата: 22.02.17 19:17
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я не понимаю, зачем создатели Си оставили свободу разработчикам компилятора, делать char знаковым или нет. Впрочем, вряд ли мы узнаем ответ на этот вопрос.


Потому, что на разных архитектурах было удобно так или так...
Например на архитектурах, где использовался не двоичный дополненный код, а 7 бит + бит контроля чётности, который иногда мог использоваться и как знаковый...

Pzz>Но вот в языке Go, созданным примерно теми же людми, такого балагана уже нет.

Разве Go — это попытка написать переносимый ассемблер?

Pzz>Я слышал, что был компилятор Си для БЭСМ-6. Но мне удивительно, неужели кем-то он всерьез использовался? Все же, Си, как бы это не было кокетливо обойдено в спецификации языка, неявно предполагает, что отдельные байты в машине адресуемы, и что адресная арифметика — штука такая же быстрая, как арифметика целых чисел сравнимой разрядности...


А в чём проблема с Си для БЭСМ-6? На БЭСМ-6 памяти было не богато, так что там обычно СЧИТАЛИ, и для счёта там и С хорошо годился.
Другое дело, что иногда хотелось и немного с буквами поработать, там форматированный ввод/вывод, подсказки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: char, signed char, unsigned char
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.02.17 19:31
Оценка:
Здравствуйте, Erop, Вы писали:

Pzz>>Я не понимаю, зачем создатели Си оставили свободу разработчикам компилятора, делать char знаковым или нет. Впрочем, вряд ли мы узнаем ответ на этот вопрос.


E>Потому, что на разных архитектурах было удобно так или так...

E>Например на архитектурах, где использовался не двоичный дополненный код, а 7 бит + бит контроля чётности, который иногда мог использоваться и как знаковый...

Вот приведи мне пример архитектуры, где знаковый char удобнее беззнакового.

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

Pzz>>Но вот в языке Go, созданным примерно теми же людми, такого балагана уже нет.

E>Разве Go — это попытка написать переносимый ассемблер?

Ну сложно сказать. Go — прямой наследник Alef'а, а Alef в Plan9 — это как Си в UNIX. В Alef'е вообще нет char'а, есть только byte, и он беззнаковый.

E>А в чём проблема с Си для БЭСМ-6? На БЭСМ-6 памяти было не богато, так что там обычно СЧИТАЛИ, и для счёта там и С хорошо годился.

E>Другое дело, что иногда хотелось и немного с буквами поработать, там форматированный ввод/вывод, подсказки...

Фортрановские оптимизирующие компиляторы как-то всегда получались лучше, чем Сишные, для счета.
Re[9]: char, signed char, unsigned char
От: Erop Россия  
Дата: 22.02.17 20:01
Оценка:
Здравствуйте, Pzz, Вы писали:


Pzz>Вот приведи мне пример архитектуры, где знаковый char удобнее беззнакового.

Pzz>Использование старшего бита в качестве бита четности за ответ не канает, все равно у нас каждая буква имеет какой-то один определенный код.
Во-первых, в те времена в ASCII было тока 7 бит.
Во-вторых, как раз оч. канает. Я, например, как-то работал, на изделии, где был аппаратный битик контроля чётности, который использовался для отладки. Типа ставишь его (оно с консоли могло ставится, переключалкой, но програмно тоже могло) и попытка переслать число с неправильной чётностью авостит тачку и можно анализировать что там не так встало. А если этот битик не теребитьставить, можно было расширить диапазон на один бит.
Тока расширять его на значимый бит было неудобно, а на знаковый удобно...

Pzz>Фортрановские оптимизирующие компиляторы как-то всегда получались лучше, чем Сишные, для счета.

Это от счёт зависит. Если речь про тупую линейную алгебру, то есть библиотеки, а если о чём-то вроде адаптивных сеток и триангуляций, то структуры таки рулят
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: char, signed char, unsigned char
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 14.03.17 13:14
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Смысл в том, что возможны и даже были реализации, где char был МЕНЬШЕ минимального адресуемого аппаратурой слова.

Ты прямо сейчас за такой сидишь.
[КУ] оккупировала армия.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.