Rosetta-lang
   HOME

TheInfoList



OR:

Within
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, the Rosetta
system A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its open system (systems theory), environment, is described by its boundaries, str ...
-level
specification language A specification language is a formal language in computer science used during systems analysis, requirements analysis, and systems design to describe a system at a much higher level than a programming language, which is used to produce the exec ...
is a design language for complex, heterogeneous systems. Specific language design objectives include: * Constraint representation * Heterogeneous system representation and specification
composability Composability is a system design principle that deals with the inter-relationships of components. A highly composable system provides components that can be selected and assembled in various combinations to satisfy specific user requirements. In ...
* Well-defined formal semantics and support for formal analysis *
Scalability Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system. In an economic context, a scalable business model implies that ...
to large designs Rosetta was undergoing
standardization Standardization (American English) or standardisation (British English) is the process of implementing and developing technical standards based on the consensus of different parties that include firms, users, interest groups, standards organiza ...
at various times.


History

The Rosetta effort emerged from a meeting in of the Semiconductor Industry Council's System-Level Design Language committee in 1996. The objective of the meeting was to define requirements for a next-generation design language that would address perceived shortcomings in existing languages such as
VHDL VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
and
Verilog Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
. Specific concerns included inability to represent constraints, lack of a formal semantics, inability to represent heterogeneous systems, and heavy reliance on
computer simulation Computer simulation is the running of a mathematical model on a computer, the model being designed to represent the behaviour of, or the outcome of, a real-world or physical system. The reliability of some mathematical models can be determin ...
for analysis. In response to these requirements, three major approaches were pursued: # Extending
hardware description language In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, usually to design application-specific integrated circuits (ASICs) and to progra ...
s including
VHDL VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
and
Verilog Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits, with the highest level of abstraction being at the re ...
# Extending
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s including C and C++ # Defining new languages The first approach ultimately resulted in
SystemVerilog SystemVerilog, standardized as IEEE 1800 by the Institute of Electrical and Electronics Engineers (IEEE), is a hardware description and hardware verification language commonly used to model, design, simulate, test and implement electronic sy ...
and extensions to VHDL while the second resulted in
SystemC SystemC is a set of C++ classes and macros which provide an event-driven simulation interface (see also discrete event simulation). These facilities enable a designer to ''simulate'' concurrent processes, each described using plain C++ synta ...
, all of which became
Institute of Electrical and Electronics Engineers The Institute of Electrical and Electronics Engineers (IEEE) is an American 501(c)(3) public charity professional organization for electrical engineering, electronics engineering, and other related disciplines. The IEEE has a corporate office ...
(IEEE) standards for the
semiconductor industry The semiconductor industry is the aggregate of companies engaged in the design and fabrication of semiconductors and semiconductor devices, such as transistors and integrated circuits. Its roots can be traced to the invention of the transistor ...
. Rosetta's original application domain was
system on a chip A system on a chip (SoC) is an integrated circuit that combines most or all key components of a computer or Electronics, electronic system onto a single microchip. Typically, an SoC includes a central processing unit (CPU) with computer memory, ...
semiconductor systems. Rosetta resulted from the third approach with development beginning under the auspices of the Semiconductor Industry Council and the
Air Force Research Laboratory The Air Force Research Laboratory (AFRL) is a scientific research and development detachment of the United States Air Force Air Force Materiel Command, Materiel Command dedicated to leading the discovery, development, and integration of direct- ...
. Originally developed by Perry Alexander and others at the
University of Kansas The University of Kansas (KU) is a public research university with its main campus in Lawrence, Kansas, United States. Two branch campuses are in the Kansas City metropolitan area on the Kansas side: the university's medical school and hospital ...
, it was known simply as System-Level Design Language. Standardization was transferred to VHDL International by 2000 and renamed Rosetta (after the
Rosetta Stone The Rosetta Stone is a stele of granodiorite inscribed with three versions of a Rosetta Stone decree, decree issued in 196 BC during the Ptolemaic dynasty of ancient Egypt, Egypt, on behalf of King Ptolemy V Epiphanes. The top and middle texts ...
) to reflect the heterogeneous nature of its specifications. Eventually, VHDL International and the Open Verilog Initiative merged to form
Accellera Accellera Systems Initiative (Accellera) is a standards organization that supports a mix of user and vendor standards and open interfaces development in the area of electronic design automation (EDA) and integrated circuit (IC) design and manufactu ...
, an industry sponsored
consortium A consortium () is an association of two or more individuals, companies, organizations, or governments (or any combination of these entities) with the objective of participating in a common activity or pooling their resources for achieving a ...
for
electronic design automation Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing Electronics, electronic systems such as integrated circuits and printed circuit boards. The tools wo ...
(EDA) standards. A draft standard of Rosetta was published in November 2003 through Accellera. Standardization was transferred to IEEE Design Automation Standards Committee (DASC) where it was developed by the Rosetta Working Group under IEEE project P1699 starting in March 2007. A draft of a language reference manual was published in April 2008, with editor Peter Ashenden of Australia. The project was withdrawn in June 2013.


Structure

Rosetta is structured around three sub-languages that support defining various specification elements. The '' expression language'' defines basic functions and expressions used as terms and values in specifications. The expression language is a non-strict, purely functional, typed language in the spirit of
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
. Functions are referentially transparent, encapsulated expressions and cannot have side effects. All Rosetta expressions have types that are determined statically. The type system is based on lifted sets where each type contains at least the bottom or undefined value. Any set can be used to define a type and any function that returns a set can be used to define a type former. Because type definitions can contain general Rosetta expressions, the type system is dependent. The ''facet language'' defines individual specifications and specification composition to define systems. ''Facets'' and ''components'' define system models from one engineering perspective. Each facet is written by extending a ''domain'' that provides vocabulary and semantics for the model. Facets are defined by declaring items and defining properties for those items. As such, Rosetta is a
declarative language In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow. Many languages that app ...
and constructs cannot be guaranteed to evaluate to a value, although some facets can be evaluated. Using the design abstractions provided by its domain, a facet describes requirements, behavior, constraints, or function of a system. Facets are heterogeneous and may be defined using any of the predefined or user defined domains. The Rosetta semantics denotes each facet to a
coalgebra In mathematics, coalgebras or cogebras are structures that are dual (in the category-theoretic sense of reversing arrows) to unital associative algebras. The axioms of unital associative algebras can be formulated in terms of commutative diagram ...
that defines its model-of-computation. Because Rosetta is
reflective Reflection is the change in direction of a wavefront at an interface between two different media so that the wavefront returns into the medium from which it originated. Common examples include the reflection of light, sound and water waves. The ...
, facets can be composed and transformed to define complex systems. A common specification technique is to write facets for different aspects of a system and then compose those aspects using product and sum operations to define the complete system. The ''domain language'' defines specification domains otherwise known as specification types. The collection of domains forms a
complete lattice In mathematics, a complete lattice is a partially ordered set in which all subsets have both a supremum ( join) and an infimum ( meet). A conditionally complete lattice satisfies at least one of these properties for bounded subsets. For compariso ...
ordered by
homomorphism In algebra, a homomorphism is a morphism, structure-preserving map (mathematics), map between two algebraic structures of the same type (such as two group (mathematics), groups, two ring (mathematics), rings, or two vector spaces). The word ''homo ...
with the empty or ''null'' domain as its top element and the inconsistent or ''bottom'' domain as its bottom. There are three primary domain types. Units-of-semantics domains define basic units of specification. For example, the state_based domain defines the concept of state and next state without constraining the values or properties. Model-of-computation domains extend unit-of-semantics domains to define general computational models such as finite_state, continuous_time, discrete_time and frequency. Engineering domains extend model-of-computation domains to provide specification capabilities for specific engineering domains. Since its early days, Rosetta expanded to include design domains such as hydraulic and mechanical systems, networking systems, security and trust, and software defined radios.


Further reading

Rosetta was influenced heavily by the non-strict, purely functional language
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
, the
Larch Larches are deciduous conifers in the genus ''Larix'', of the family Pinaceae (subfamily Laricoideae). Growing from tall, they are native to the cooler regions of the northern hemisphere, where they are found in lowland forests in the high la ...
family of specification languages, and
Prototype Verification System The Prototype Verification System (PVS) is a specification language integrated with support tools and an Automated theorem proving, automated theorem prover, developed at the Computer Science Laboratory of SRI International in Menlo Park, Californ ...
(PVS). A book devoted to the language was published in November 2006.


References


External links

* http://www.rosetta-lang.org {{IEEE standards Formal specification languages IEEE standards Rosetta Stone