Chapter 1
Introduction

What is ECharts? ECharts is a state machine-based programming language for event-driven systems derived from the standardized UML Statecharts language [6]. ECharts distinguishes itself from other Statecharts dialects by focusing on implementation issues such as determinism and code re-use [2]. Like Statecharts, ECharts supports hierarchical state machines, concurrent machines and a graphical syntax. Unlike Statecharts, ECharts supports a simple textual syntax, machine reuse, multiple transition priority levels to minimize non-determinism, machine arrays, and a new approach to inter- and intra- machine communication. ECharts is a hosted language which means that it is dependent on an underlying programming language such as Java1. ECharts has a proven track-record in a large-scale commercial deployment. ECharts is available as open source under the Common Public License Version 1.0 (see Appendix  B). Take a look at what ECharts has to offer!

1.1 History

ECharts was originally developed at AT&T Labs-Research to support an advanced telecommunications project which evolved into a nation-wide commercial product offering [3]. Currently ECharts is used in a number of new research projects at AT&T.

1.2 Why Use ECharts?

An ECharts machine is a specification of event-driven behavior. Application domains that will benefit from using ECharts are telecommunications, web applications, user interfaces, ...really any application domain where a system responds to events occurring in its environment.

ECharts isn’t meant to be a stand-alone programming language. ECharts specifies a program’s control flow in response to events received from the environment. To specify data operations, ECharts machines rely on host language statements embedded in the machine, for example, Java. Furthermore, an ECharts machine only constitutes a program unit in a larger host language program, it isn’t necessarily a program’s locus of control.

1 Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. echarts.org is independent of Sun Microsystems, Inc.