kiltera is a language for concurrent, interacting, real-time, mobile and distributed systems. It has a readable syntax and a solid foundation (based on a timed variant of the so-called pi-calculus.) It is suitable for a number of applications such as business process modelling, digital circuit design, network protocol design, traffic simulation, or multi-agent system modelling.

Broadly speaking the main features of the language are:
  • Concurrency: a system consists of many active components called processes which proceed independently.
  • Interaction: processes communicate with each other by asynchronous message passing over named channels.
  • Real-time: processes can specify time constraints for their activities; they can delay the execution of actions, schedule events, set timeouts for the occurrence of events and observe the passage of time. The time-base is the real numbers, and therefore, there is no minimum time-advance or clock "ticks". While the notion of time is real, execution itself can proceed either in virtual-time or actually real physical time.
  • Mobility: events and channels are interchangeable. They are first-class values which means that they can be passed around between processes, making the topology of the communications network change dynamically.
  • Distribution: processes can be executed in logical sites (which may or may not be associated to different physical locations). Site names are first-class values, allowing processes to exchange information about the distributed environment.
The kiltera simulator provides a mechanism to explore the behaviour of modelled systems by providing event traces. Simulation can proceed in both real-time or virtual-time. The simulator can be run in two modes: sequential and distributed. In sequential mode, the system is executed in a single thread by means of event-scheduling. This approach avoids the need to create a separate thread for each process. In distributed mode, the simulator can harness the power of an arbitrary and possibly geographically distributed network to simulate large systems. In both modes, simulation is optimistic and therefore, deadlock free.

To get a better idea of what it looks like and what it is good for, take a look at an overview of kiltera.

Subpages (1): An overview of kiltera