For a long time, one of the major research goals in the computer science research community has been to raise the level of
abstraction power of specification languages/programming languages. Many specification languages and formalisms have been
invented, but unfortunately very few of those are practically useful, due to limited computer support of these languages and/or
inefficient implementations. Thus, one important goal is executable specification languages of high abstraction power and
with high performance, good enough for practical usage and comparable in execution speed to hand implementations of applications
in low-level languages such as C or C++. In this paper we briefly describe our work in creating efficient executable specification
languages for two application domains. The first area is formal specification of programming language semantics, whereas the
second is formal specification of complex systems for which we have developed an object-oriented mathematical modeling language
called Modelica, including architectural support for components and connectors. Based on these efforts, we are currently working
on a unified equation-based mathematical modeling language that can handle modeling of items as diverse as programming languages,
computer algebra, event-driven systems, and continuous-time physical systems. The key unifying feature is the notion of equation.
In this paper we describe the design and implementation of the unified language. A compiler implementation is already up and
running, and used for substantial applications.
This work was supported by the SSF RISE project, the Vinnova SWEBPROD project, and by the CUGS graduate school.