На каком языке программирования возникло использование знака процента (%) для обозначения по модулю / остатку?

16

На каком языке программирования возникло использование знака процента (%) для обозначения по модулю / остатку?

Этот предыдущий пост 1 объясняет, что символ%, вероятно, был выбран, потому что он включает косую черту, умную для операции, связанной с делением. В нем также упоминается влияние использования символа С. Однако я не уверен, что он возник на языке C. Язык программирования B был предшественником языка C, и я нашел руководство пользователя для B (PDF, стр. 12), в котором говорится:

Оператор% обозначает по модулю. Если оба операнда положительны, результат верный. Это не определено иначе.

Это руководство пользователя датируется 1972 годом, примерно, когда появился С. Это по-прежнему теоретически возможно сделать из C, но затем перенести обратно в B. Я также еще не смог найти спецификации для других языков до того, как это указывало бы на использование символа%.


  1. На что я считаю, что этот вопрос не является дубликатом: тот, кто спрашивает, почему операция по модулю является фундаментальной, я спрашиваю о том, когда символ, в частности, имел в виду по модулю.
DPenner1
источник
3
BCPL был предшественником B и C. Оператор модуля в BCP был rem. eah-jena.de/~kleine/history/languages/… Точно так же Algol-W также используется rem.
BobDalgleish

Ответы:

10

Самое раннее упоминание я могу найти от «B» языка программирования , разработанный Кеном Томпсоном с Деннисом Ритчи около 1969. B Reference

Поскольку это была реализация / улучшение BPCL, я должен предположить, что оператор был частью BPCL, но я не могу найти конкретную ссылку для этого.

Джеймс Андерсон
источник
4
По-видимому, это было "rem" в BPCL (см. Комментарий от BobDalgleish)
Джеймс Андерсон
Судя по ссылке, это не могло быть 1969, ЕСЛИ представленная реализация была первой. Honeywell не покупала GE Computer Division до 1970 года, и в документе определенно упоминался компьютер H6070. Ричи и Томпсон работали над проектом MAC в 60-х гг . Multicians.org/unix.html .
dbasnett
Другой Multics BCPL исх. multicians.org/mgb.html#BCPL
dbasnett