Faculty of Information Technology Programming Languages and Systems
Skip to Content
QUT Home FIT Home PLAS Home Projects People Wiki Contacts
 
     

Mini Component Pascal

   

Mini Component Pascal

Mini Component Pascal is a series of four languages that represent increasingly complex extended subsets of Component Pascal. Each language definition consists of abstract syntax, formal type rules, and additional prose descriptions of the type system. Two compilers, targetting the .NET CLR, have been developed that collectively support all four of these languages.

The pseudo-Venn diagram above illustrates the interrelationships between the Mini Component Pascal languages and full Component Pascal, represented by the transparent oval.

Evolution and Goals of Mini Component Pascal

The goal of the Mini Component Pascal series of languages is to present a sequence of 'snapshots' of a language at various stages in its development. We have chosen to define increments at the stages in this process where substantial new features are added.

The foundations of the series of languages are established in Functional Mini Component Pascal (FMCP). FMCP takes an 'ultra-minimalist' approach and models only a few language features. (It is also not a proper subset of Component Pascal). Its purposes are to introduce important concepts that are used in the subsequent languages, and to serve as a possible basis for further formalisation work where the modeling of imperative constructs is not important.

The next language in the series is Imperative Mini Component Pascal (IMCP). IMCP models a substantial proper subset of Component Pascal and removes many restrictions imposed by FMCP.

Interfaces are a non-trivial extension to the official Component Pascal specification and are modelled in Imperative Mini Component Pascal with Interfaces (IMCPI). The lack of support for defining and implementing interfaces can be seen as a major deficiency of the original Component Pascal specification (although they are unofficially supported by the GPCP compiler). The purposes of IMCPI are to solidify the semantics of the extension, and to provide a basis for the generics extension.

The final and most complex language in the series is Imperative Mini Component Pascal with Generics (IMCPG). IMCPG builds on IMCPI to add support for type parameterisation (i.e. parametric polymorphism).

PLAS
Projects
  ActiveSheets
  Bioinformatics
  ConcernMaps
  ELP
  ELP.NET
  G2 Cluster Computing
  Generics
    Mini Component Pascal
    Background
      FMCP
      IMCP
      IMCPI
      IMCPG
      Cardelli type inferencer
    Online compilers
  Gardens Point Component Pascal
  Gardens Point Flow
  Gardens Point Modula
  Gardens Point Service Language
  Language Processing Tools
  Mentok
  Metaphor
  Mobilizer
  RikWik
  Ruby.NET
People
Wiki
Contacts