PASCAL AND ITS RELATION TO OTHER LANGUAGES. ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß It has already been indicated that Pascal was developed from Algol, in as much as it is a structured, typed language using free-format. Other languages have retained these features, whilst attempting to improve on weaknesses. In the 1970s, it was recognised that the difficulty of producing programs seemed to increase with the square of the program length (not linearly) and this led to the concept of modularization to reduce the difficulty and hence the cost of programs. The Turbo Pascal Unit illustrates this concept. The language MODULA, amongst others, is another example of modularization, whilst Ada (1980) was the winner of a language design competition initiated by a working group for the US Department of Defense. In Ada, expressions, statements and types are very similar to Pascal but the declaration part is different, particularly as regards 'package' and 'task', both of which declare modules. Tasks are distinguished from packages in their ability to execute concurrently with other tasks. Ada also uses a fully bracketed syntax, so that the different compound structures have distinguishable starts and finishes, instead of the standard 'begin' and 'end' of Pascal. Typical examples are: loop...end loop if...end if case...end case record...end record The main disadvantage to Ada is its size, coupled to the fact that the US Department of Defense will not allow a subset of the language, on the grounds that this would mitigate against portability. This could well limit the use of this language, even though it will undoubtedly influence the developers of future languages. Further information on Ada and other languages such as FORTRAN, Algol, Pascal, LISP, Smalltalk and PROLOG can be found in 'Principles of Programming Languages' by Bruce J. MacLennan, published by Holt, Rinehart and Winston (1983). Perhaps the most attractive alternative language to a Pascal programmer is C. It is a structured, typed language with free-format, but unlike Ada it is a very small language. It was developed by Dennis Ritchie at the Bell Laboratories in 1972, and was based on another language called B, itself derived from BCPL (Basic Combined Programming Language). The language C is associated with the operating system UNIX, which is recommended by government and much used by universities. Both UNIX and the C compiler are designed for portability. Although UNIX itself requires a larger memory than the 640KB of ordinary PCs, UNIX (or XENIX) could well become the operating system of the future for 386 machines with 4 MB of memory. C is a very flexible language, because any program is composed of functions which can be easily modified and extended and then stored on disk for use by other programs. Although the syntax of C is different to Pascal, the style is similar and all statements are terminated by semi-colons (;). Braces, { and }, are used to indicate the start and end of the statements within a function, instead of the begin and end used in Pascal. Comments are placed within /* and */ instead of the braces used in Pascal. As with Pascal, control loops eliminate the need to use GOTO statements. They are similar to Turbo Pascal as indicated below: if (expression) statement1; else statement2; while (expression) statement; or in the case of compound statements while (expression) { statement1; ... statementr; } for(expression1; expression2; expression3) statement; where expression1 relates to the initial condition expression2 relates to the end condition and expression3 act as the adjuster or counter. There is also a 'Switch-Case' statement similar to the Case statement in Pascal. Each function, including an obligatory one called 'main', must have open and closing brackets following the function name, e.g. main() and then have braces enclosing the statements of that function. The brackets may enclose parameters, but must still be used even if there are no parameters. The data types in C are: int float char short long double These are declared as shown below: int a,b,c; char z; etc. Unsigned integers, arrays and pointers may also be used. The size and precision of data types is machine dependent. Assignments are indicated with the equal sign only (=), whilst == indicates 'equal to'. There are a number of other operators, such as ++ which is used to increment a variable, so that ++a means a = a + 1 . % is used for modulus, whilst && means logical and. Appropriate references should be consulted for further details, but for a modest text that enables a Pascal programmer to convert to C, 'The Big Red Book of C' by Kevin Sullivan, published by Sigma Press (1983) is recommended. The definitive text is 'C Programming Language 2nd Ed.' by Kernighan and Ritchie, published by Prentice-Hall. ADA&C.TXT 1.3.90