Category: Formal specification languages

Common Algebraic Specification Language
The Common Algebraic Specification Language (CASL) is a general-purpose specification language based on first-order logic with induction. Partial functions and subsorting are also supported.
SPARK (programming language)
SPARK is a formally defined computer programming language based on the Ada programming language, intended for the development of high integrity software used in systems where predictable and highly re
TLA+
TLA+ is a formal specification language developed by Leslie Lamport. It is used for designing, modelling, documentation, and verification of programs, especially concurrent systems and distributed sys
Timed event system
The General System has been described in [Zeigler76] and [ZPK00] with the standpoints to define (1) the time base, (2) the admissible input segments, (3) the system states, (4) the state trajectory wi
Semantics (computer science)
In programming language theory, semantics is the rigorous mathematical study of the meaning of programming languages. Semantics assigns computational meaning to valid strings in a programming language
Event segment
A segment of a system variable in computing shows a homogenous status of system dynamics over a time period. Here, a homogenous status of a variable is a state which can be described by a set of coeff
E-LOTOS
In computer science E-LOTOS (Enhanced LOTOS) is a formal specification language designed between 1993 and 1999, and standardized by ISO in 2001. E-LOTOS was initially intended to be a revision of the
Nets within Nets
Nets within Nets is a modelling method belonging to the family of Petri nets.This method is distinguished from other sorts of Petri nets by the possibility to provide their tokens with a proper struct
Behavior of DEVS
The behavior of a given DEVS model is a set of sequences of timed events including null events, called event segments, which make the model move from one state to another within a set of legal states.
Operational semantics
Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing pro
Alloy (specification language)
In computer science and software engineering, Alloy is a declarative specification language for expressing complex structural constraints and behavior in a software system. Alloy provides a simple str
Rosetta-lang
Within computing, the Rosetta system-level specification language is a design language for complex, heterogeneous systems. Specific language design objectives include: * Constraint representation *
PlusCal
PlusCal (formerly called +CAL) is a formal specification language created by Leslie Lamport, which transpiles to TLA+. In contrast to TLA+'s action-oriented focus on distributed systems, PlusCal most
Wright (ADL)
In software architecture, Wright is an architecture description language developed at Carnegie Mellon University. Wright formalizes a software architecture in terms of concepts such as components, con
Augmented marked graph
An augmented marked graph is basically a Petri net with a specific set of places called resource places. If removing these resource places and their associated arcs, it will become a marked graph wher
Eiffel (programming language)
Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software. Meyer conceived
Maude system
The Maude system is an implementation of rewriting logic. It is similar in its general approach to Joseph Goguen's OBJ3 implementation of equational logic, but based on rewriting logic rather than , a
Extended ML
Extended ML is a wide-spectrum language based on ML, covering both specification and implementation. It extends the syntax of ML to include axioms, which need not be executable but can rigorously spec
Message sequence chart
A message sequence chart (or MSC) is an interaction diagram from the SDL family standardized by the International Telecommunication Union. The purpose of recommending MSC (Message Sequence Chart) is t
Language Of Temporal Ordering Specification
In computer science Language Of Temporal Ordering Specification (LOTOS) is a formal specification language based on temporal ordering of events. LOTOS is used for communications protocol specification
Property Specification Language
Property Specification Language (PSL) is a temporal logic extending linear temporal logic with a range of operators for both ease of expression and enhancement of expressive power. PSL makes an extens
ESC/Java
ESC/Java (and more recently ESC/Java2), the "Extended Static Checker for Java," is a programming tool that attempts to find common run-time errors in Java programs at compile time. The underlying appr
Perfect Developer
Perfect Developer (PD) is a tool for developing computer programs in a rigorous manner. It is used to develop applications in areas including IT systems and airborne critical systems. The principle is
PowerDEVS
PowerDEVS [BK011] is a general purpose software tool for DEVS modeling and simulation oriented to the simulation of hybrid systems. The environment allows defining atomic DEVS models in C++ language t
Duration calculus
Duration calculus (DC) is an interval logic for real-time systems. It was originally developed by Zhou Chaochen with the help of Anders P. Ravn and C. A. R. Hoare on the European ESPRIT Basic Research
Rigorous Approach to Industrial Software Engineering
RAISE (Rigorous Approach to Industrial Software Engineering) was developed as part of the European ESPRIT II LaCoS project in the 1990s, led by Dines Bjørner. It consists of a set of tools designed fo
Rodin tool
The Rodin tool is a tool for formal modelling in Event-B. Event-B is a notation and method developed from the B-Method and is intended to be used with an incremental style of modelling. The idea of in
Vector addition system
A vector addition system (VAS) is one of several mathematical modeling languages for the description of distributed systems. Vector addition systems were introduced by Richard M. Karp and Raymond E. M
Java Modeling Language
The Java Modeling Language (JML) is a specification language for Java programs, using Hoare style pre- and postconditions and invariants, that follows the design by contract paradigm. Specifications a
Larch family
The Larch family of formal specification languages are intended for the precise specification of computing systems. They allow the clean specification of computer programs and the formulation of proof
Predicative programming
Predicative programming is the original name of a formal method for program specification and refinement, more recently called a Practical Theory of Programming, invented by Eric Hehner. The central i
Stochastic Petri net
Stochastic Petri nets are a form of Petri net where the transitions fire after a probabilistic delay determined by a random variable.
Formal specification
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze
TNSDL
TNSDL stands for TeleNokia Specification and Description Language. TNSDL is based on the ITU-T SDL-88 language. It is used exclusively at Nokia Networks, primarily for developing applications for tele
Specification and Description Language
Specification and Description Language (SDL) is a specification language targeted at the unambiguous specification and description of the behaviour of reactive and distributed systems.
Action semantics
Action semantics is a framework for the formal specification of semantics of programming languages invented by David Watt and Peter D. Mosses in the 1990s. It is a mixture of denotational, operational
DEVS
DEVS abbreviating Discrete Event System Specification is a modular and hierarchical formalism for modeling and analyzing general systems that can be discrete event systems which might be described by
Vienna Development Method
The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work done at the IBM Laboratory Vienna in the 1970s,
Denotational semantics
In computer science, denotational semantics (initially known as mathematical semantics or Scott–Strachey semantics) is an approach of formalizing the meanings of programming languages by constructing
Assertion definition language
The Assertion Definition Language (ADL) is a specification language providing a formal grammar to specify behaviour and interfaces for computer software. ADL uses function pre- and postconditions to s
Prototype Verification System
The Prototype Verification System (PVS) is a specification language integrated with support tools and an automated theorem prover, developed at the Computer Science Laboratory of SRI International in
Axiomatic semantics
Axiomatic semantics is an approach based on mathematical logic for proving the correctness of computer programs. It is closely related to Hoare logic. Axiomatic semantics define the meaning of a comma
Behavior of coupled DEVS
In theoretical computer science, DEVS is closed under coupling [Zeigper84] [ZPK00]. In other words, given a coupled DEVS model , its behavior is described as an atomic DEVS model . For a given coupled
Meta-IV (specification language)
The Meta-IV (pronounced like "metaphor") was an early version of the specification language of the Vienna Development Method formal method for the development of computer-based systems.
Universal Systems Language
Universal Systems Language (USL) is a systems modeling language and formal method for the specification and design of software and other complex systems. It was designed by Margaret Hamilton based on
Object Constraint Language
The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL
Algebraic semantics (computer science)
In computer science, algebraic semantics is a form of axiomatic semantics based on algebraic laws for describing and reasoning about program specifications in a formal manner.
Z notation
The Z notation /ˈzɛd/ is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems
OBJ (programming language)
OBJ is a programming language family introduced by Joseph Goguen in 1976, and further worked on by Jose Meseguer.
CoreASM
CoreASM is an open source project (licensed under Academic Free License version 3.0) that focuses on the design of a lean executable ASM (Abstract State Machines) language, in combination with a suppo
Refinement calculus
The refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-exe
Construction and Analysis of Distributed Processes
CADP (Construction and Analysis of Distributed Processes) is a toolbox for the design of communication protocols and distributed systems. CADP is developed by the CONVECS team (formerly by the VASY te
Object-Z
Object-Z is an object-oriented extension to the Z notation developed at the University of Queensland, Australia. Object-Z extends Z by the addition of language constructs resembling the object-oriente
Petri net
A Petri net, also known as a place/transition (PT) net, is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A
B-Method
The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software.