CAL (programming language)

CAL is a version of the seminal JOSS language with several cleanups and new features to take advantage of the SDS platform.

The Berkeley SDS was used for the development of the Tymshare commercial time-sharing platform and an improved version of CAL was offered as a programming environment to its customers in 1969.

Although CAL saw "almost no use", it had a lasting impact by influencing the design of Tymshare SUPER BASIC which copied a number of its features.

These terminals, based on the IBM Selectric typewriter, also included a custom character set that implemented common mathematical symbols like ≥ and ≠.

[2] The other noticeable differences were that CAL was all upper-case, as opposed to sentence casing in JOSS, and it did not require a period at the end of the line.

The later syntax was useful when there were many small subroutines as they could be implemented on a single line without an associated RETURN or similar concept.

In JOSS, this order was reversed, and such statements took the form "do this if this is true", for instance, Type "HELLO" if X=5.. CAL added some syntactic sugar to this basic concept by adding the new modifier UNLESS, which, depending on the context, led to more obvious code; TYPE "IT IS NOT EQUAL TO FIVE" UNLESS X=5.

[10] A more important change to CAL's functions was the ability to call subroutines from the definitions using TO, as in DEFINE F(X,Y) : TO PART 5.

[13] While in direct mode, the user could STEP by a single line at a time to trace the execution of the program.

This had been optional in direct mode in JOSS but was required in program statements, and the 1967 version of CAL followed this rule.