In the UNIX V7 version of the C language (but not yet in the V6 version), there were the /\
(min) and the \/
(max) operators. In the source of the scanner part of the compiler,
case BSLASH:
if (subseq('/', 0, 1))
return(MAX);
goto unkn;
case DIVIDE:
if (subseq('\\', 0, 1))
return(MIN);
...
However, attempting to use them reveals that the corresponding part in the code generator is missing. Trying to compile
foo(a, b) { return a \/ b; }
results in
1: No code table for op: \/
Granted, using the otherwise "magic" backslash character for those operators was not a good choice, but why abandon things half-way? I don't remember any mention of them in the literature. What's the story behind them? (Ken Thompson was reported — on another mailing list where I linked to this question — as saying that the piece of code is news to him.)
In the Xinu7 source dated 1986, the MIN and MAX operators in the parser are still there, and the code generation table still lacks the implementation.
In the "PDP-11 3+2" source, dated 1983, they are also there.
foo(a, b) { return a \/ b; }
I get1: No code table for op: \/
; similarly for /\. Looks like an unfinished project whose traces lingered for years in the source.