У якій мові програмування походить використання знаку відсотка (%) для позначення модуля / залишку?


16

У якій мові програмування походить використання знаку відсотка (%) для позначення модуля / залишку?

У попередньому дописі 1 пояснюється, що символ%, ймовірно, був обраний, оскільки він включає косу рису, спритну для операції, пов'язаної з поділом. Він також згадує про вплив використання символу С. Однак я не впевнений, що він походить з C. Мова програмування B була попередником C, і я знайшов посібник користувача для B (PDF, стор. 12), де зазначено:

Оператор% позначає модуль. Якщо обидва операнди позитивні, результат правильний. Інакше не визначено.

Посібник користувача датований 1972 роком, приблизно, коли з'явився C. Це робить теоретично ще можливим виникнення у C, але потім повернуто до B. Я також ще не зміг знайти специфікації для інших мов до цього, що вказує на використання символу%.


  1. Я вважаю, що це питання не є повторюваним: коли я задаю питання, чому операція модуля є основоположним, я запитую про те, коли цей символ, зокрема, означав модуль.

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 Project у 60-х роках multicians.org/unix.html .
dbasnett

Ще одна мультика Multic BCPL ref. multicians.org/mgb.html#BCPL
dbasnett
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.