W jakim języku programowania powstało użycie znaku procentu (%) w celu oznaczenia modulo / reszta?

16

W jakim języku programowania powstało użycie znaku procentu (%) w celu oznaczenia modulo / reszta?

Poprzedni post 1 wyjaśnia, że ​​symbol% ​​został prawdopodobnie wybrany, ponieważ zawiera ukośnik, sprytny dla operacji związanej z dzieleniem. Wspomina także wpływ użycia symbolu przez C. Nie jestem jednak pewien, czy pochodzi on z C. Język programowania B był prekursorem C i znalazłem przewodnik użytkownika dla B (PDF, strona 12), który stwierdza:

Operator% oznacza modulo. Jeśli oba operandy są dodatnie, wynik jest poprawny. Nie jest inaczej zdefiniowane.

Podręcznik użytkownika pochodzi jednak z 1972 r., Mniej więcej w momencie pojawienia się C. To sprawia, że ​​teoretycznie możliwe jest, aby pochodzić z C, ale następnie przeniesiono z powrotem do B. Nie byłem jeszcze w stanie znaleźć specyfikacji dla innych języków przed tym wskazaniem użycia symbolu%.


  1. Pytanie to nie jest duplikatem: pytam, dlaczego działanie modulo jest fundamentalne, pytam o to, kiedy konkretnie ten symbol wydawał się oznaczać modulo.
DPenner 1
źródło
3
BCPL był poprzednikiem zarówno B, jak i C. Operatorem modułu w BCP był rem. eah-jena.de/~kleine/history/languages/... Podobnie Algol-W również zastosował rem.
BobDalgleish,

Odpowiedzi:

10

Najwcześniejsze wzmianki znajdę się od „B” język programowania opracowany przez Kena Thompsona Dennis Ritchie około 1969. B Reference

Ponieważ było to wdrożenie / ulepszenie BPCL, muszę założyć, że operator był częścią BPCL, ale nie mogę znaleźć konkretnego odniesienia do tego.

James Anderson
źródło
4
Najwyraźniej było to „rem” w BPCL (patrz komentarz BobDalgleish)
James Anderson
Na podstawie linku nie mogło być 1969 r. JEŻELI przedstawione wdrożenie było pierwsze. Honeywell kupił GE Computer Division dopiero w 1970 roku, a artykuł zdecydowanie odwoływał się do komputera H6070. Ritchie i Thompson pracowali nad Projektem MAC w latach 60-tych multicians.org/unix.html .
dbasnett,
Another Multics BCPL ref. multicians.org/mgb.html#BCPL
dbasnett