This page is an entry point gathering information about CADP, and about
languages such as LNT, LOTOS, and E-LOTOS. Its contents are divided
into the following sections:
What is CADP?
CADP is a software package
offering a wide range of functionalities for the construction and analysis of
distributed processes.
What is LNT?
LNT (a shorthand for "LOTOS New Technology") is a modern formal specification language that has been designed and implemented in the CADP toolbox since 2005. LNT is intended to be concise, expressive, easily readable, and user-friendly. LNT combines traits from process calculi, functional languages, and imperative languages.
LNT is a high-level modelling language meant to replace LOTOS. LNT draws
inspiration from earlier languages, among which Ada, CCS, CSP, Occam,
LOTOS, and E-LOTOS.
-
Towards a Second Generation of Formal Description Techniques - Rationale for the Design of E-LOTOS
Hubert Garavel and Mihaela Sighireanu
May 1998, 28 pages
-
Défense et illustration des algèbres de processus
Hubert Garavel
September 2003, 25 pages, in French
-
Reflections on the Future of Concurrency Theory in General and Process Calculi in Particular
Hubert Garavel
December 2007, 16 pages
-
From LOTOS to LNT
Hubert Garavel, Frédéric Lang, and Wendelin Serwe
October 2017, 29 pages
-
Modélisation des systèmes concurrents
Hubert Garavel
November 2022, 27 slides
-
What is Wrong with Process Calculi - And How to Recover?
Hubert Garavel
June 2023, 23 slides
-
An Account of the LNT Project (1998-2024)
Hubert Garavel
September 2024, 29 slides
There exist two compilers for LNT: TRAIAN, an
LNT→C translator, and LNT2LOTOS, an
LNT→LOTOS translator. Initially, these two compilers have been
developed independently at different times. Since 2020, they are being
brought increasingly closer.
TRAIAN has been developed since 1996 and comprises 56,000+ non-blank
lines of code (July 2024). At the moment, it generates C code only for
LNT data-type and function definitions.
TRAIAN has been used for compiler construction since 2002.
For instance, many CADP translators (including LNT2LOTOS
and TRAIAN itself) are mainly written in LNT (80% of the code) and built
using TRAIAN.
LNT2LOTOS has been developed since 2005 and comprises 45,000+ non-blank
lines of code (July 2024). It implements LNT by translation to LOTOS,
so as to reuse the existing CADP tools for LOTOS.
It is intensively used for the study of concurrent systems by
means of simulation, test generation, and formal verification using
model checking and/or equivalence checking.
Each new version of TRAIAN and LNT2LOTOS is carefully checked using several
test suites, which gather 23,900+ LNT programs totalling 15,000,000+
non-blank lines of LNT code (July 2024).
Until 2014, "LOTOS NT" and "LNT" were used as synonyms. Between 2014
and 2024, a distinction was made between the LOTOS NT language implemented
in TRAIAN and the LNT language implemented in LNT2LOTOS, so as to point
out the differences between both languages. These differences have been
gradually removed, to the point that, since October 2023, TRAIAN is being
used as a compiler-front end for LNT and systematically invoked before
LNT2LOTOS. From now on, occurrences of "LOTOS NT" are progressively be
replaced with "LNT".
The definition of LNT is given in two manuals: one for TRAIAN, one for
LNT2LOTOS. These manuals are regularly updated and are ultimately set
to merge, as the two compilers are progressively converging.
Other presentations can be found on our Education and Training page.
What is LOTOS?
To explain LOTOS in a nutshell, we could not do better than quoting the excellent definition of LOTOS given by the Research Unit in Networking of the University of Liège:
-
LOTOS is a Formal Description Technique (FDT) standardized by ISO for the design of distributed systems, and in particular for OSI services and protocols. Experts of the ISO FDT group developed LOTOS from 1981 to 1988; it has now the status of International Standard (ISO 8807:1989).
Unlike FDTs based on the state representation of a system, LOTOS describes a system by defining the temporal relations between externally observable events at so-called event gates.
LOTOS is composed of two parts : a process algebraic part based on
Milner's Calculus of Communicating Systems (CCS) and on Hoare's Communicating Sequential Processes (CSP), and a data algebraic part
based on the abstract data type language (ACT ONE). These two aspects of LOTOS are complementary and independent : the process
algebra is used to model dynamic behaviours of systems, and ACT ONE is used to model data structures and value expressions.
LOTOS has been widely used for the specification of large data communication systems. It is mathematically well-defined and expressive: it
allows the description of concurrency, nondeterminism, synchronous and asynchronous communications. It supports various levels of
abstraction and provides several specification styles. Good tools (e.g. the EUCALYPTUS toolset) exist to support specification, verification
and code generation. Finally, LOTOS is one of the few process algebras to have moved out of the theoretical community.
-
Using Formal Description Techniques - An Introduction to ESTELLE, LOTOS, and SDL
Kenneth J. Turner
John Wiley, 1993, 431 pages
ISBN 0-471-93455-0
-
LOTOS and Petri-Net Based Verification of Systems and Circuits
Michael Yoeli
Department of Computer Science, The Technion, Haifa, Israel
June 2003
-
Engenharia de Protocolos com LOTOS/ISO
Bernardo Gonçalves Riso, Cristiano Maciel, Ivanise Volpato de Souza, Leila Lisiane Rossi, Mirela Sechi Moretti Annoni Notare, and Neilor Avelino Tonin
UFSC, 2004, 215 pages
ISBN 85-328-0281-8
-
Concurrency Theory, Calculi and Automata for Modelling Untimed and Timed Concurrent Systems
Howard Bowman and Rodolfo S. Gomez
Springer, 2006, 459 pages
ISBN 1-85233-895-4
-
Verification of Systems and Circuits Using LOTOS, Petri Nets, and CCS
Michael Yoeli and Rakefet Kol
Wiley, 2008, 231 pages
ISBN 978-0-471-70449-2
-
Introduction to the ISO Specification Language LOTOS
Tommaso Bolognesi and Ed Brinksma
Computer Networks and ISDN Systems, vol. 14(1), pp. 25-59
January 1987, 66 pages
-
The Formal Specification Language LOTOS: A Course for Users
Kenneth J. Turner
Technical Report, Dept of Computer Science and Mathematics, University of Stirling, Scotland
August 1989, 87 pages
-
An Introduction to LOTOS: Learning by Examples
L. Logrippo, M. Faci, M. Haj-Hussein
Computer Networks and ISDN Systems, vol. 23(5), pp. 325-342
Errata in 25(1) 99-100
1999, 34 pages
-
A Tutorial on ADT Semantics for LOTOS Users - Part I: Fundamental Concepts
José A. Mañas
Technical Report, Dpt. Ingenieria Telematica, E.T.S.I. Telecommunicion, Madrid, Spain
November 1988, 27 pages
-
A Tutorial on ADT Semantics for LOTOS Users - Part II: Operation on Types
José A. Mañas
Technical Report, Dpt. Ingenieria Telematica, E.T.S.I. Telecommunicion, Madrid,
Spain
November 1988, 27 pages
-
An Exercise in Formalizing the Description of a Concurrent System
D. W. Bustard, M. T. Norris, R. A. Orr, and A. C. Winstanley
Software Practice and Experience, vol. 22(12), pp. 1069-1098
December 1992, 30 pages
-
Introduction to Algebraic Specifications Based on the Language ACT ONE
Jan de Meer, Rudolf Roth and Son Vuong
Computer Networks and ISDN Systems, vol. 23(5), pp. 363-392 (1992)
Formal description technique (FDT) languages for protocols
Also at: http://dx.doi.org/10.1016/0169-7552(92)90013-G
-
LOTOS and the Formal Specification of Communication Standards: An Example
Alastair J. Tocher
In P. N. Scharbach, editor, Formal Methods: Theory and Practice. CRC Press, Inc., 1989.
-
An Example of LOTOS Specification: the Matrix Switch Problem
Hubert Garavel and Carlos Rodríguez
June 1990, 12 pages.
-
Présentation du langage LOTOS
Hubert Garavel
November 1989, 38 pages, in French
-
Introduction au langage LOTOS
Hubert Garavel
1990, 14 pages, in French
-
Software engineering in computer networks
Guy Leduc
Université de Liège, Belgium
-
An Introduction to LOTOS
Arturo Azcorra Salona, Juan Quemada Vives, Santiago Pavon Gomez
Dpto. Ingenieria de Sistemas Telematicos, Universidad Politecnica de Madrid
1993, 112 pages
-
A LOTOS Vade Mecum
Kenneth J. Turner, University of Stirling
1996, 2 pages
E-LOTOS is an ISO/IEC international standard. It is not directly implemented in CADP. However, the best traits of E-LOTOS have been retained for LNT. These are a few links regarding E-LOTOS:
Version 1.113 last updated on 2024/10/03 15:13:09
Back to the CADP Home Page