311
Copyright © 2013, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited.
Chapter 11
DOI: 10.4018/978-1-4666-2092-6.ch011
INTRODUCTION
Software Engineering is different from other
Engineering disciplines, such as Civil, Electrical
and Chemical. Traditional Engineering disciplines
are based on a collection of well-understood,
fixed rules that are the same for each new system.
There is a single formal system that describes the
elements of each discipline and how they work
together to build systems. A Software Engineer
is free to design a formal system for each new
application. For example, a financial application
executes in terms of elements and rules that are
different from a telecom system or a car engine
controller. Each new formal system leads to a
domain specific language (DSL) that can represent
a family of related systems.
Conventional software development requires
that systems are implemented in a general purpose
language (GPL) such as C or Java. A language
engineering approach requires that the DSL is
embedded in a GPL. Fortunately, even a minimal
programming language has a surprising property
that allows programs to be expressed as data to be
Tony Clark
Middlesex University, UK
James Willans
HSBC, UK
Software Language Engineering
with XMF and XModeler
ABSTRACT
XMF and XModeler are presented as technologies that have been specifcally designed for Software
Language Engineering. XMF provides a meta-circular, extensible platform for DSL defnition based
on syntax-classes that extend object-oriented classes with composable grammars. XModeler is a de-
velopment environment built on top of XMF that provides an extensible client-based architecture for
developing DSL tools.