The “<” in my sentence was a “suck”. Somewhat obscure, but I HAVE heard people in UNIX environments occasionally use “suck” and “blow” for < and >, and it’s listed in the jargon files, as you will note.
I have never understood why that is, since the french word virgule means comma.
Strictly speaking, in typesetting, the less-than sign and angle brackets are not the same. Compare < and ‹ (the difference shows up better in some fonts than others). The angle brackets are alt+0139 and alt+0155. I first head “bra” in a sense like this in relation to the vectors invented by Dirac: ‹A| is a bra vector, and |B› is a ket vector. I suspect the hackers borrowed from this use.
sdimbert says
Are you thinking of Victor Borge’s phonetic punctuation routine?
Arnold: Both languages borrowed the word from the Latin virgula, “little rod”. To me, the slash looks more like a little rod than the comma does.
Note the smiley and the reference to Befunge–I was kidding! I know the story behind the…I’m sorry, I can’t call it a programming language…the brainf*** that is INTERCAL. I also have trouble making myself capitalize it, since it’s not an acronym (damn Woods and Lyons). INTERCAL is one of those jokes that you laugh at, then realize that your laughter has forever branded you a geek…
Note that the brainf*** reference above has no relation to the “programming language” of the same name.
It had almost disappeared until a few years ago. a friend of mine started tinkering with it, fixed a long standing bug to get it working under Linux and wrote a floating point library for INTERCAL.
Sorry for the hijack, but if you could all see Balance’s face when he reads this…
This is a real program in INTERCAL. Decipher if you can.
(10) PLEASE DON'T GIVE UP
(1) DO .2 <- '?.1$#64'~'#0$#65535'
DO .2 <- '&"'.1~.2'~'"?'?.2~.2'$#32768"~"#0$#65535"'"$".2~.2"'~#1
DO .3 <- '?#91$.1'~'#0$#65535'
DO .3 <- '&"'#91~.3'~'"?'?.3~.3'$#32768"~"#0$#65535"'"$".3~.3"'~#1
DO (11) NEXT
DO (2) NEXT
DO (12) NEXT
(11) DO (13) NEXT
PLEASE FORGET #1
DO (12) NEXT
(13) DO (14) NEXT
PLEASE FORGET #2
DO (12) NEXT
(14) DO STASH .1
DO .1 <- .3
DO (1000) NEXT
DO .1 <- .3
DO .2 <- #1
PLEASE DO (1000) NEXT
DO RETRIEVE .1
PLEASE RESUME .3
(12) PLEASE FORGET #1
DO .2 <- '?.1$#96'~'#0$#65535'
DO .2 <- '&"'.1~.2'~'"?'?.2~.2'$#32768"~"#0$#65535"'"$".2~.2"'~#1
DO .3 <- '?#123$.1'~'#0$#65535'
DO .3 <- '&"'#123~.3'~'"?'?.3~.3'$#32768"~"#0$#65535"'"$".3~.3"'~#1
PLEASE DO (15) NEXT
PLEASE DO (3) NEXT
DO (16) NEXT
(15) DO (17) NEXT
PLEASE FORGET #1
DO (16) NEXT
(17) DO (18) NEXT
PLEASE FORGET #2
DO (16) NEXT
(18) PLEASE STASH .1
DO .1 <- .3
DO (1000) NEXT
DO .1 <- .3
DO .2 <- #1
DO (1000) NEXT
PLEASE RETRIEVE .1
PLEASE RESUME .3
(16) PLEASE FORGET #1
DO RESUME #1
(2) DO .2 <- #65
DO (1010) NEXT
PLEASE .1 <- .3
PLEASE .2 <- #13
DO (1000) NEXT
DO STASH .3
DO .1 <- .3
DO .2 <- #26
DO (1040) NEXT
DO .1 <- .3
DO (1030) NEXT
DO .2 <- .3
DO RETRIEVE .3
DO .1 <- .3
DO (1010) NEXT
DO .1 <- .3
DO .2 <- #65
DO (1000) NEXT
DO .1 <- .3
DO RESUME #1
(3) DO .2 <- #97
DO (1010) NEXT
DO .1 <- .3
DO .2 <- #13
DO (1000) NEXT
DO STASH .3
DO .1 <- .3
DO .2 <- #26
DO (1040) NEXT
DO .1 <- .3
DO (1030) NEXT
DO .2 <- .3
DO RETRIEVE .3
DO .1 <- .3
DO (1010) NEXT
DO .1 <- .3
DO .2 <- #97
DO (1000) NEXT
DO .1 <- .3
DO RESUME #1
DO COME FROM (10)
DO .4 <- #0
DO .5 <- #0
DO STASH .4 + .5
DO ,1 <- #1
DO COME FROM (33)
DO WRITE IN ,1
DO .1 <- ,1 SUB #1
DO (31) NEXT
PLEASE DO .6 <- #1
PLEASE DO (34) NEXT
(32) PLEASE RESUME '?.1$#256'~'#256$#256'
(31) DO (32) NEXT
DO FORGET #1
DO .6 <- #0
PLEASE DO (34) NEXT
(33) DON'T GIVE UP
(34) DO .6 <- "?!6'$#1"~#3
DO (40) NEXT
DO GIVE UP
(40) DO (41) NEXT
PLEASE FORGET #1
DO (42) NEXT
(41) DO RESUME .6
(42) DO FORGET #1
DO RETRIEVE .4
DO .2 <- .4
DO (1000) NEXT
DO .4 <- .3~#255
DO .3 <- .4
DO STASH .4
DO .1 <- .3
DO (1) NEXT
DO .3 <- !1~#15'$!1~#240'
DO .3 <- !3~#15'$!3~#240'
DO .2 <- !3~#15'$!3~#240'
DO .1 <- .5
DO (1010) NEXT
DO .5 <- .2
DO ,1 SUB #1 <- .3
PLEASE READ OUT ,1
PLEASE RESUME #1
This was gotten off of this site: http://www.ugcs.caltech.edu/~jlm/intercal.html, which gives some explanation of INTERCAL.
Good work, Derleth. For a minute there I thought it was structured INTERCAL, but then I saw the COME FROM statement.
/ (and ) were spider legs.
You can’t see my real face, so here :eek:
Floating point INTERCAL running under Linux is surely a Sign of the End Times. What was he smoking?!
(BTW, given that “?” is a “quizzer” in some programming circles, the punctuation construct “?!” can be pronounced as “quiz-bang”. I encourage the practice.)
Derleth, I think it does a normal rot-13 character shift, as the name implies–but I’m not sure by any means. I’m certainly not going to compile it and test it! (Oops, did I just admit to having a compiler?)
That block of code up there is perhaps the most polite piece of programming ever. I mean, it uses the word ‘please’ like it was asking the compiler for a favor. It’s a wonder more compilers don’t demand such courtesy. But seriously, perhaps the most worthless language ever written and actually used is called Brainfuck. (I’m justified in using curse words because it’s the dang language’s name, gol-darn it.) Here’s ‘99 bottles of beer on the wall’ (the song) in Brainfuck:
>+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>>
[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+<
-]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<<
[>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++
+++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-
]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+
++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]>
>>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++
+>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------
---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++
++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++
[<---------->-]<++.>++++++++[<++++++++++>-]<++++.-----------
-.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-.
>++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]<
-----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++
+[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.
><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++
++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++
+++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++
+++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]<
-.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++.
------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-.
-.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>-
]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-]
<++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++
+++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<----->
-]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[<
++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++
.>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.----
---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[
-]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]
>[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]<
<+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]<
<-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+
<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++>
-]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..---
-----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++
.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<-
-.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-]
<.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[
<+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++
++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+.
>++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++
..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<]
Yeah, a human being wrote that. I’m beginning to suspect the author was either a masochist or a genius. Perhaps both. Brainfuck, in all fairness, is a rather interesting concept language. It’s based directly on the classic Turing Machine. It’s explained here: The Brainfuck Programming Language .
Derleth! Breadbox is the guy I was talking about! I’ve known him for 15 years. I’ll do a little follow-up on that masochist/genius dichotomy thing.
The ; seems to inspire people too. My book gives ‘semicolon’, ‘semi’, ‘weenie’, ‘hybrid’ and ‘pit-thwong’.
Some INTERCAL compilers have built-in politesse checking. If you use “please” with less that 1/5 of your statements, the compile aborts because the program is rude; if more than 1/3 of the statements are prefaced with “please”, the compiler rejects the code as stilted. Ratios may vary with compiler and are seldom documented.
Indeed, it was Brainfuck that I referenced in my self-referential denial of reference above. It’s like INTERCAL (caps-locked in deference to Robot Arm) on really heavy drugs–but not as heavy as the drugs you need after writing something in it. Even worse is Rube–I don’t know that anyone has every managed to write a nontrivial program in Rube. A perverse, twisted, thought: take chunks of Nethack maps and run them through a Rube interpreter, just to see what happens.