differ only in details. The most obvious change at first glance is that JOSS is case-insensitive and outputs keywords in mixed-case whereas JOSS was upper-case only. Additionally, JOSS statements end with a period, making them look like written statements, whereas JOSS has no required line-ending. One major difference is that JOSS included a complete set of comparison operations and a boolean logic system that operated within and constructs. Furthermore, branches and loops could be applied to any statement, in contrast to FOCAL, where the only operation either could carry out was the equivalent to a goto. For example, in JOSS, one could: 1.10 Type A if X>10. 1.20 Type i for i=1(1)10. The first line optionally prints A based on the value of X, and the second prints the numbers 1 to 10. In contrast, FOCAL lacked the ability to compare values, and loops were applied by skipping to the next line when they completed. The equivalent code in FOCAL would be: 1.10 IF (X-10) ,,1.30 1.20 TYPE A! 1.30 FOR I=1,1,10;TYPE I,! JOSS' implementation makes common constructs easier to build and more closely match a programmer's intentions, at the cost of making the runtime more complex. For example, JOSS allowed ranges in loops to be described in a flexible fashion like 1,2,3,10(5)50,75,78. This flexibility comes at a cost; in FOCAL the start, stop, and step can be written in a custom in-memory structure and easily updated as the loop is performed, whereas JOSS requires it to reevaluate an expression that may be, but often isn't, more complex. In order to make the code terser in FOCAL, changes were relatively minor. For example, JOSS' becomes the slightly smaller FOCAL , while becomes . Command keywords were also shortened where possible, so JOSS' becomes FOCAL's , both to make it shorter and to allow the letter D to be uniquely used for . To simplify the parser, some FOCAL options were removed. For example, JOSS could perform multiple assignments with while in FOCAL these had to be made individual statements, . Likewise, JOSS' , used to format output, was combined into FOCAL's with the . Comparison with BASIC Comparisons between FOCAL and BASIC were inevitable since both languages were common on minicomputers of the same era, and the two languages have much in common in syntax and structure. In most cases, there is a direct conversion of FOCAL code to and