Differences between AlgolW and Algol 60

Still in development ...

Syntax Differences between AlgolW and Algol 60 in the same functionality

  • in AlgolW they use logical instead of boolean, in Pascal they return to boolean
  • brackets in arrays are rounded but not square, as in Algol60. In Pascal they return to square brackets
  • Using :: in array declaration instead of :
  • Using div instead of % for integer division
  • in AlgolW variables passed to procedures are declared inside argument brackets, not outside as in Algol60

Very important comment about Syntax Differences:

If these differences are reduced as much as possible (Algol60 programs can be translated by AlgolW compiler), it will make AlgolW much more popular! For example, AlgolW will accept boolean as synonym of logical

New functionality in AlgolW

  • New data types:

    • long real (standard real are 32 bits long)
    • complex
    • long complex
    • bits (32 bit array)
    • strings of fixed size <=256 (hidden arrays of symbols)
    • records (data structures) with references to record objects

  • new operations for new data types
  • assert statement for logical expression testing
  • underscore symbol '_' can be used in variable names
  • short comment %...%
  • new block type of expression
  • new iterative statement while (...) do ...
  • new version of statement for without step
  • possible use for-control variable without its declaration
  • statement case (similar to switch in C)
  • statement is for calculation of record object type
  • exceptions and their processing
  • operation rem for calculation of reminder in integer division
  • typed procedure returns last calculated value
  • set of predeclared variables for input/output formatting
  • set of predeclared mathematical constants
  • keyboard reading procedures read, readon, readcard
  • terminal output procedures write, writeon
  • new standard transfer procedures (15)
  • procedures for number to string transfer
  • new math calculus functions for long real type
  • time(mode) procedures
  • iocontrol procedure