More on Kvikkalkul
Shortly after revealing the first public details about Kvikkalkul, the anonymous programmer posted another message to alt.folklore.computers responding to e-mail he received from interested wonks.
This second message follows:
In the previous article I introduced the principles of kvikkalkul to the world. So far the Swedish government hasn't bombed the location in Finland where the anon server is located and they didn't even arrest Swedish people who had the document on their computers.
First there were questions about the name of the language. It's indeed not Swedish but rather Norwegian. Well, there were some Norwegians in the team that developed the language. The name kvikkalkul was believed to be a pun on Plankalkuel, the first high level language that was developed by Konrad Zuse. Kvikkalkul has hardly anything in common with Plankalkuel, but both were high-level languages and the only high-level languages in the world at that time.
As far as I know kvikkalkul was developed for the Swedish Nuclear Arms program that never became reality. In 1957 everyone I spoke still believed that Sweden would have nukes in less than two years. I don't know for sure that Sweden had a nuclear arms program, but the rumors I heard suggested that. It would explain much of the secrecy around kvikkalkul. Another explanation was that if the Russians ever stole a program tape, they would think it was encrypted text or downright gibberish and they would never suspect it to be software. Well, Russians, if you have tapes with things like .5 (: ,33 -) :8 you have Swedish source code!
My kvikkalkul handbook from 1956 shows one construct that was removed from the language by the time I started in 1957. It was the probabilistic jump.
would always jump, the statement
would only jump if register 9 was at least 1/2, The statement
would jump with a probability of 1/3. This particular form was deleted.
Now comes the most interesting part. If the number in front of the -) was negative, the jump would be taken in the reverse direction. It was as if there was a jump with the corresponding positive probability at the destination label of the jump and that jump jumped to the location of the jump statement. Sounds like COME FROM, doesn't it? A pity they didn't keep it :-(
When they deleted the probabilistic jump, they added the random number channel, so you could do
to jump with a probability of 1/2. No substitute for COME FROM though. As the random number channel was unreliable, one would use
This is: call subroutine 314 to compute a pseudorandom number and to 2000 if the result in register 0 is greater than or equal to 0.
Back in 1957 computers were rare and extremely expensive. We were taught by an instructor who had a really funny explanation of the word 'transistor' (the computer that we used was one of the first transistor computers). He said, "You know, transistor means small. A transistor radio is a small radio that is not as powerful as a real radio, but that you can take with you when traveling. SABINA is a transistor computer. It is small, not as powerful as a real computer and we will take it with us on our submarines." Operating a computer was comparable in cost to flying an airplane. You wouldn't make a flight in a bomber for fun and neither would you run any program for fun.
Playing games with the computer was just UNTHINKABLE. One would only compile and run programs that were approved by one's supervisor.
From the description in my previous posting you might think that the computer was used interactively because it was connected to a teletype.
Nothing could be further from the truth. We used Siemens teletypes with built-in paper tape units. We would never touch the computer at all, we delivered all stuff on paper tape. Neither would we submit anything without the approval of our supervisor. The supervisor would occasionally print the tape on his own tty to see that what we submitted was really the same as our listing. He would check any program for errors as erroneous compiler runs were costly! Compiled binaries were on paper tapes of a different color and they never left the computer room.
Programs we typed ourselves were on white tape.
Runnable binaries (compiler output) were on green tape.
System programs (the compiler itself and the libraries) were on orange tape.
888 tapes (initialization dumps) were on pink tape.
Input data that we typed was on yellow tape.
Output data of computer programs was on blue tape.
It was really interesting to watch the operator while he was working. You could see whether a compile job, an initialization job or a production job was running by the colors of the tapes. Sometimes there were circuit boards of torpedo launchers or radars in the computer room. In that case the computer controlled submarine hardware was tested.
The fact that kvikkalkul didn't allow for comments was a feature of the language that was highly emphasized. Some assemblers did allow for comments and you could write code that did X and write in the comments that it really did Y. That could be dangerous. Therefore kvikkalkul had no comments and one had to study the code itself rather than relying on comments. Further the language was designed such that it did not allow for self-modifying code.
Our supervisors were really paranoid about programs that modified their own code and grew wild. That could happen with assembler and not with kvikkalkul. Kvikkalkul was not designed to make it easy to write programs, but rather to make it next to impossible to write programs that more or less appeared to work without thinking. It was believed that a friendly language would make sloppy programmers and in fact this turned out to be true....
To find out more about the anon service, send mail to firstname.lastname@example.org. Due to the double-blind, any mail replies to this message will be anonymized, and an anonymous id will be allocated automatically. You have been warned. Please report any problems, inappropriate use etc. to email@example.com.
Return to Main Page