Pascal ++

                        ANNOUNCEMENT


                A POWERFUL LANGUAGE SUPPORTING:


                      EXTENDED PASCAL

                       +          +

         CONCURRENCY                OBJECT ORIENTATION

                \                       /
                 v                     v

                        PASCAL++


Extended Pascal, which was issued by ISO in 1992, has resolved most of
the more obvious drawbacks of Standard Pascal, such as separate
compilation, dynamically determined types, mixing of definitions,
direct access files and character string manipulation.

However, the new standard has not taken into account the trends within
software development towards use of concurrency for structuring and
towards use of object oriented techniques for modelling.

Inspired by the language Pascal Plus, developed at Belfast university,
we have therefore defined Pascal++ as an extension of the new Pascal
Standard, to support concurrency.  In addition, we have incorporated
advanced features for object oriented programming, such as
inheritance, dynamic binding, encapsulation and redefinition of types:


    Virtual types (in addition to virtual procedures/functions).
    Virtual types allow generic types to be defined (e.g. lists, maps etc.)
    and to place such types in inheritance hierarchies like ordinary types.
    Despite being very useful, virtual types are only found in a few object
    oriented languages.

    Full subtype/supertype compatibility (polymorphism).
    Most object oriented languages allow a value of a subtype to be assigned
    to a value of its supertype. In Pascal++, it is also
    possible to assign a supertype value to a subtype variable.


    Multiple inheritance.
    A subtype can inherit from several supertypes.
    Name clashes are solved by hiding some of the names from one of the
    inherited supertypes.

    Exceptions as objects.
    Handlers can be set to catch exceptions. Whenever an exception occurs,
    an object of the exception object type (or a subtype thereof) can be
    created and passed to the handler.
    By specialising the exception type, any
    user defined information can be passed to the handler.

Why should you use Pascal++?
============================

    Pascal++ is a modern, powerful object oriented language with concurrency.

    It has strong typing allowing detection of most kinds of undefined
    situations, i.e.
    detection of static errors (such as type compatibility) by a compiler
    and detection of dynamic errors (such as validity of array indices)
    during execution.

    It is an extension of Pascal, making Pascal++ easy to learn for Pascal
    users.

    It is operating system independent (as opposed to e.g. Turbo Pascal) and
    it is a strict extension of the new Pascal standard.

You can now get a public domain version of the Pascal++ system
including limited user documentation (about 50 pages as ASCII-file).

The compiler front-end and interpreter including complete documentation
is also available as shareware on several different hardware
architectures, as described below.

The compiling system consisting of a front-end and an interpreter for
Pascal++ is available by FTP.  The system has passed about 1800 test
programs in many different environments, e.g. VMS, MS-DOS, MS-Windows,
and various Unix machines etc.

The system is available on different machine architectures such as:

        IBM PC,                  "MS-DOS"
        IBM PC,                  "MS-WINDOWS"
        DECstation 3100/5200,    "ULTRIX V4.2A (Rev. 47) System #1"
        SUN 3/60,                "SunOS Release 4.1 (UX)"
        DEC-VAX,                 "VAX/VMS V5.5"

If you have problems with the files please contact:

          FAVOR Software
          att: Anders Olsen
          Skelvej 7
          2900 Hellerup
          Denmark