Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Both sides next revision
alvis:introduction [2013/11/09 21:49]
marcin
— (current)
Line 1: Line 1:
-====== Introduction ====== 
  
-**Alvis** is a **formal modelling language** being developed at [[http://www.agh.edu.pl|AGH-UST in Krakow]], [[http://www.kis.agh.edu.pl|Department of Applied Computer Science]]. The main aim of the project is to provide a flexible modelling language for concurrent systems with possibilities of a formal models verification. Alvis combines advantages of high level programming languages with a graphical language for modelling interconnections between subsystems (called agents) of a concurrent system.  
- 
-Alvis uses a very small number of graphical items and language statements. Our goal was to provide a flexible language with a small number of concepts, but with a possibility of a formal verification of models. An Alvis model semantic finds expression in a LTS graph (//labelled transition system//). Execution of any language statement is expressed as a transition between formally defined states of such a model. 
- 
-The key concept of Alvis is **agent** that denotes any distinguished part of the system under consideration with defined identity persisting in time. An Alvis model is a system of agents that usually run concurrently, communicate one with another, compete for shared resources etc. Agents are divided into three groups: **active agents** can be treated as processing nodes, **passive agents** represent shared resources and **hierarchical agents** represent submodels. 
- 
-An Alvis model is composed of three layers: 
- 
-  - **Graphical layer** is used to define data and control flow among distinguished parts of the system under consideration that are called **agents**. The layer takes the form of a hierarchical graph called **communication diagram** and supports both  //top-down// and //bottom-up// approaches to systems development. 
-  - **Code layer** is used to describe the behaviour of individual agents. It uses both **Haskell** functional programming language and original **Alvis statements**. 
-  - **System layer** that is predefined and provides information about a running environment i.e. the hardware and/or operating system. It is necessary for the simulation and verification purposes.