COBOL ‘99 - The New Way
Having been intensely involved (along with Robson Eccentric) in the writing and production of the new COBOL 99 compiler, I am proud to announce its launch.
A shareware version of the new compiler can be downloaded by clicking Here. The shareware version is for home use only, and you must not distribute programs created using it. Business users may download it for inspection and trial purposes only.
Despite being one of the most popular programming languages of the seventies and eighties, COBOL has remained static since 1985. Many adherents of the language, with its rigid structure and unforgiving compiler, have despairingly turned to other, newer, friendly languages.
Despair no more; COBOL is back with a vengeance.
A new multi-level intelligent compiler, a new GUI, an on screen compiler with error reports that actually tell you how to fix the problem - and usually get it right, once the AI unit has learned your programming style - and new functions that do everything you wished earlier COBOL versions could do.
Even as you read this, Robson Eccentric, the main contractors for the new compiler, is addressing the last few details to make the compiler year 2000 compliant. Release of the Omega version is expected by July 2003.
The first thing that veteran COBOL programmers will notice is the lack of the Identification and Environment Divisions, which are replaced by the new Decision Division, linked to the AI unit which forms the core of all object programs. The DD sets preferences for style of intelligent interaction at run-time. At the lowest setting ("PROGRAM IS THICK" - who says that there is no humour in business programming?) the object program will be small and be able to do very little intuitive work for the user - much like a COBOL 85 program. On the highest setting ("PROGRAM IS WILD") the compiler performs a read-ahead of the program code, building a three-dimensional object map (the ‘perfect model’) of the program in memory, forgets what it has done, then compiles the program normally - comparing what it sees to the perfect model as it goes. By doing this, it can correct most syntax errors (bad punctuation, missing brackets, misspelled words) as it finds them.
The Perfect Model is saved in its entirety in the header of the executable file; so that it can be loaded into memory at run-time, from where it becomes the centre of the universe for the independent AI unit, which makes all command decisions.
User identification - for network users
The first major difference that a SOCIABLE application makes to a network is in the system’s security. COBOL’s AI unit knows for whom it works, knows who works for for whom it works, and knows what work those who work for for whom it works are allowed to work on. All programs, applications, and people on the system are considered as internal objects (INJECTS) to the system, and have their own properties, functions, and attributes.
The only way for an external object (hacker) to get in is by pretending to be one of the authorised internal objects, reproducing the functions and attributes of the original. These reproduced objects (REJECTS) are easily detected by COBOL (see details on User identification, below), and reacted against. Hackers will find their system hanging, and in the three seconds it takes them to react, everything that COBOL can burn out will be burnt out - starting with the hard drive partitions and ending with the CMOS, on the way out. I wish I had had that one a few years ago, when my system was invaded. Errors are rare, and the extra security given by the COBOL system administration is well worth the cost of a few replacement workstations a year.
By far the most innovative use of the AI Unit is in the field of user identification. Whereas in the past user involvement in the system has been limited, each user of a COBOL 99 program becomes an integral part of the system. The user, in effect, becomes a ‘Client’ whose interface protocols are governed by such elements as keyboard and mouse drivers.
Using software originally designed for musical instrument synthesisers, the AI unit is able to closely follow the keyboard usage, noting the hit rate, impact, and dwell of each individual keystroke. Keystroke clustering is also carefully monitored. The outcome of this scrutiny is that the AI unit will eventually - usually after about two minutes of continuous typing - come to recognise the typing style of the user. Similar procedures are carried out to examine the usage of the mouse, but it takes slightly longer for the AI unit to recognise the user’s Mouse ‘signature’.
When both keyboard and mouse signatures have been identified and classified, a message appears on the screen, telling the user that they have been identified, and asking if a confirmation test is desired.
Completion of the confirmation test, which takes around two minutes, locks the User ID. The confirmed user never again needs to log on. Within a few seconds of keyboard or Mouse usage, the system can identify the person operating the workstation, and instantly apply whatever permissions and configurations are relevant to that user.
A fun way of demonstrating this facility is by having several registered users take turns on the integral word processor, and watch the layout and toolbars change automatically to each user’s preferences, and documents appear and disappear as authorisation is given and retracted.
Far more important to most network administrators is the security element of this tool. It becomes impossible for non-authorised users to access information, because as soon as they use the Mouse or keyboard they are rejected by the system and allowed only non-critical access.
New Syntax Section.
The COME FROM Function
The IF UNCERTAIN Function
The PERFORM VARYING BY UNDETERMINED Function
The COLOR functions
WRITE <record name> FROM <identifier> AFTER ADVANCING <literal> COLOR IS <identifier/literal>.
The PERFORM UNTIL SATISFIED Procedure
The GOTO INDECISIVE Function
The REJECT <identifier> Function
The REORGANISE ON NEW KEY Function
The UNSORT ON ERROR Function
The OVERRIDE ON BAD DISPLAY Function
The IF… ELSE … ELSE IF UNSURE Function
The LOSE Function
The FILE ACCESS IS HOPEFUL Function
Download the shareware version. You'll never regret it!
© Dr. Mark Wallace & Prof. Alan Robson