If you don't pay attention, I won't be very happy !  All Right !!! Who's responsible for this headline ???  
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 most remarkable changes for end-users can be seen in COBOL ’99 network applications.  The line ‘USER IS SOCIABLE’ in the DD tells the AI unit to add code blocks to the application which seek out network protocols and connections as soon as the application is activated.  COBOL ’99 network applications take absolute control of network administration on any network on which they are run.  If this sounds excessive, just think back to the comparatively trouble-free days before Microsoft and the like made networks unusable for business purposes by making them ‘fun’.  The extent of COBOL’s control is total, and a breath of fresh air to long-time network administrators.  The AI unit network controls are so complete that even the simplest of applications, if set to SOCIABLE, set all administration controls in motion.  Installing a SOCIABLE COBOL clock as part of a boot routine, for example, will mean that the network will benefit from all of COBOL’s network administration routines as soon as the system comes on-line (of course, such a clock would require 3.72GB hard drive space, 326KB main memory, and 11.83MB extended memory, so it is preferable to use a SOCIABLE application that actually does something useful, as well as running the system)

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 new additions to the programming language itself are too numerous to go into in great detail, but highlights include:

The COME FROM Function
The ultimate answer to interrupt-based programming.  One of the worst elements of interrupts is that very often the program is not ready to perform the task carried out by the button click or the User selection; so a large part of the debug phase involves going through the program to decide what to disable, and when.  COME FROM removes this operation altogether.
Using the PM & AI Unit, the system looks at the elements of a program that are being used; looks at the user; the most likely functions to be required by the user; and at the history of the application before deciding the best route to take to arrive at the COME FROM command.

identifier> UNLESS BAD GUESS
identifier> UNLESS BAD GUESS

The AI Unit is given control of the loop, intuitively deciding when to terminate.

The COLOR functions
Again, the intelligent features of COBOL 99 make this command a pleasure to work with.  Writing to a printer with the COLOR IS WHITE command acts like a run-time form of white-out.
COLOR IS IMPRESSIVE prints documents in Braille.
COLOR IS IMPLIED looks for points of reference to choose the most apt colour.
Other COLOR commands include:

SELECT <filename> COLOR IS <identifier/literal>.
record name> FROM <identifier> AFTER ADVANCING <literal> COLOR IS <identifier/literal>.

COBOL bases closure of the loop upon the preferences of the user.
This has found particular approval with female users.

COBOL decides what functions or procedures should be performed next.  Again, this is based on logic, machine intuition, and user ID; and makes the perfect decision every time, especially in such fields as choosing restaurants, cinemas, etc.

The REJECT <identifier> Function
This is a move towards emulating the Windows environment, and allows the system to hang or crash in much the same way as it does under Windows.

This is used by arrays only - use UNSORT on files.  It allows a database to forget what it was doing, and do something else – in much the same way as a user will forget what they were doing, and go off for a beer.

Unsort restores a sorted file to an unsorted state.
This is particularly useful for… Um…
Well, it is particularly useful, Ok?

Selects background and image styles and formats based on the tastes of the user.  Again, this changes automatically when the user changes, and COBOL 99 programs all come with a selection of backgrounds, etc.; from Beanie Babies to hard-core pornography.

Used mainly for secretarial applications, the function will dither, whine, and ask every other computer in the organisation if they know what it should be doing.

The LOSE Function
Again, this allows Windows users to feel more at home, as the COBOL 99 program will lose passwords, files, users, etc., for no good reason and totally at random.

Extremely useful for users who have forgotten what they were doing and which files they were supposed to be working on.

Download the shareware version.  You'll never regret it!


© Dr. Mark Wallace & Prof. Alan Robson

You have just been subjected to a page of