KvikKalkul 95, the New LanguageOn April 1, 1995, the following announcement was posted to an unknown group, perhaps the newsgroup alt.folklore.computers, the central meeting place for the burgeoning Kvikkalkul community. This announcement follows: In 1957 the Swedish Navy developed the language 'kvikkalkul' for real-time control in submarines. This language has long been top secret, but thanks to Phil Hyatss (real name Carl Christofferson) most people outside Sweden know of its existence. Carl Christofferson worked for the Swedish Navy from 1957 to 1958 and in 1965 he moved to the U.K. where he worked for MI5 and MI6 (home and foreign intelligence service). His name became Phil Hyatss. In 1994 he sent a few anonymous postings about 'kvikkalkul' to alt.folklore.computers. Thanks to our friend Ronny (we don't mention his last name, but let's call him Butthead Sect Leader) we all know how easy it is to get the real identity of anonymous posts. So the Swedish authorities finally nailed him down and now he is in prison. The story of 'kvikkalkul' does not end here. Now that the secret has been broken, the Swedish military authorities finally decided to declassify and commercialize 'kvikkalkul'. The new modernized language is called KvikKalkul '95 (note the BiCapitalization). It is still a language without letters, though it is not entered in Baudot code on paper tape anymore. The only available data type is still the fixed point binary fractional number between -1 and +1. These concepts are the key points of the strength of the language and changing them would take the soul out of it. What's new is that the language is object oriented. Even COBOL goes OO, so KvikKalkul had to follow the trend. The next code sample demonstrates how you define a class with 1 instance variable and 3 methods. The I.D. of the class is 4444. Everything between the first line and ?? is method declaration. Below is the code for the methods themselves. There are three methods, one to retrieve the value of the instance variable to register 0, one to store the value of register .0 into the instance variable and one to add the value of register .0 into the instance variable. 4444? 1 4445: 4446: 4447: Now that the class has been declared, we want to declare an object of that class. 3360! 4444 1 This reserves space for 1 object with I.D. 4444 at data label 3360. Finally we can use the object. The first line assigns 1/3 to register 0. The second line sets the subroutine return address to 2222. The third line makes the data pointer /0 point to the object. The next line calls method 2 (store register .0 into the instance variable). .0 (- ,33333333333 There are also ways to define subclasses, but these are beyond the scope of this short explanation. Many new library functions and O.S. services have been added since the last official standard from 1988. The new language comes in two versions, the civilian version and the military version. The military version is fully compatible with all previous versions, but in the civilian version some of the more arcane library routines have been removed. Further the CLASSIMATH rules are not followed for the mathematical functions. In the early days of computing the mathematical functions like sqrt and log had significant inaccuracies. These have become an essential part of many military algorithms. These algorithms would not work with the standard high accuracy values of these functions. Of course the exact nature of these inaccuracies is still classified and is part of the military version of the KvikKalkul standard. One of the world's leading software companies (headed by Guillaume Portes) has promised to release Visual KvikKalkul as one of the development environments for Windows '95. Visual KvikKalkul is an implementation of KvikKalkul '95 that is encapsulated in a user-friendly programmer-hostile window environment in which you have to wear out a mouse or two to write a trivial application that requires 16MByte to run and that takes 5 minutes just to load. But you do have sculpted 3D buttons for 'Abort Retry Ignore' if there is a disk read error. The user interface management code is automatically generated by Visual KvikKalkul and you have to add only the code to do the data processing. That needn't be much in the average application and a few errors in the math are not that disastrous. Kids find it funny to experiment with Visual KvikKalkul. "Kids are like cats, they both like mice", a spokesman of the software company says. The funny smiley-like KvikKalkul syntax is rendered in cute colors and kids tend to like that too. The syntax directed editor helps kids write code that will compile first time. The fact that kids probably won't understand what they write and make a few semantic errors, that is of much lesser importance. Take the Windows calculator as an example. The shape and the rendering of the buttons, that's what impresses people. Nobody cares what 2.01 - 2 really is.
Return to Main Page |
|