Proteus Data Sheets

The PROTEUS Configuration Language (PCL)

1. Introduction

The Proteus configuration language (PCL) is a notation for describing structural models of hardware/software systems and for annotating these models with information to support automated system building. PCL has been explicitly designed to allow system families (or version sets) to be described in a single model. Thus, as a system evolves, information about the resulting versions is captured in a single place.

PCL may be written simply as simple text prepared with any text editor. However, the language comes with a supporting toolset which provides a graphical structure editor for PCL, tools which build a version of a software system from a PCL description and a version management system (the Repository) which provides attributed identification of versions of files.

2. Technical Details

There are 6 basic types of entity in PCL:

Family entities are used to model the architecture of a set of systems or components with stable and variable parts. Variability may be represented using conditional expressions controlled by attribute values or through inheritance. Version descriptor entities are used in conjunction with family entities to define the architecture of a unique version of a system. The family entity is essentially a version set and the version descriptor entity defines a version within that set. When a version descriptor is associated with a family, the information in the version descriptor may be used to remove variability from the family description.

Every PCL family may have a number of associated physical objects (files) which themselves may be shared among several family entities. These represent the physical representation of the system as source code, etc. With tool descriptions, they are the main inputs to the system building process.