Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Both sides next revision
alvis:introduction [2013/11/09 21:54]
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. 
- 
-**[[:alvis:manual|Go back]]**