Readers' feedback

I seldom write reviews. This book changed my life, and I've been developing embedded software for twenty-five years. Samek's nested finite state machines, which he calls Hierarchical State Machines (HSMs) give the embedded software architect a framework arguably as fundamental as an RTOS. If you are creating event-driven embedded software where objects have member variables representing their state at any given time, this book is required reading."

Robert O. Alexander (Bellevue, WA United States), review

PSICC is a revolutionary title that will transform the way you design and implement embedded code. Kiss goodbye to spaghetti mess and say hello to efficient, well structured, scalable designs. The book essentially gives you too things, an overview of embedded system concepts and pitfalls, along with the full framework code to implement sophisticated designs in UML format. The C/C++ framework presented here offers, in my opinion, a superior alternative to any commercially available UML CASE tool solution."

L. Collier (UK), review

The knowledge on statechart that I learn from this book greatly tidy up my code, even I have only finished reading a few chapters. The concept is well-explained with the aid of chart diagram and codes. Furthermore, this books is platform independent, you can use it on any microcontroller. I highly recommend this book to intermediate and advanced embedded programmer!"

Soon Yau Cheong (Malaysia), review

This book was a definite eye-opener for me with regard to state machines. I recently rewrote a major piece of code to utilize the Quantum Framework (included with the book) and it has worked wonders. My previous code used a more traditional state machine and had quickly evolved into spaghetti code. The hierarchical state machine approach made the new code smaller, more robust, and much easier to maintain and extend."

B. Bradley, review

As the title indicates, this book brings the topic of statecharts from the realm of expensive design tools to the PRACTICAL realm, illustrating its points with full examples and extensive commentary."

Jonathan Kaye (Philadelphia, PA USA), review

The book is well structured. The UML Statecharts are well introduced. The Actives Objects approach and the related Framework are very attractive. With the Framework (QF) for embedded real-time systems included, you are really able to use it for your application. You can then focus on your application objects and no more on the "glue" around them. You have a common strategy for all your applications. The best book on UML for embedded system from a long time. "

Philippe (Switzerland), review

This book has done a great job in consolidating many key concepts and techniques in embedded software design... the author proposed a truly reusable and integrated framework which is very well designed and particularly suitable for resource constrained embedded systems. Author's implementation of state machines is innovative and remarkable. It supports state nesting, automatic execution of entry/exit actions and default event handling by superstates. This allows you to implement UML statecharts in C or in C++ conveniently."

LO YIP BONG (Hong Kong), review

more reviews

Choose the best online deal...

Buy from Elsevier

Practical Statecharts in C/C++

Chinese translation
ISBN 7-81077-415-8
click to see larger picture

Korean translation
ISBN 8-98997-549-2
click to see larger picture

Practical Statecharts in C/C++: Quantum Programming for Embedded Systems

Author: Miro M. Samek
ISBN-10: 1-57820-110-1
ISBN-13: 978-1578201105
Category: Programming Languages / Embedded Systems
Publisher: CMP Books, imprint of CMP Media LLC (Acquired by Elsevier in 2006)
Published: July, 2002
Paperback: 387 pages
(English version):
Practical Statecharts in C/C++

NOTE: This book has a new edition

Practical UML Statecharts in C/C++, Second Edition

Practical UML Statecharts in C/C++, Second Edition

Accompanying CD-ROM

LICENSING: The licensing policy for distributing any software published in the book Practical Statecharts in C/C++, CMP Books 2002, ISBN 1-57820-110-1 has changed. Effective December 1, 2004 all this software has been released under dual licensing model. Specifically, if you distribute a new product using any version or part of the QP framework after the effective date, you must either abide by the terms of the GNU General Public License (GPL), or you can purchase a commercial distribution license in case you want to retain the proprietary status of your code.


The complete CD-ROM image (55.1MB) is available for download to the owners of the book Practical Statecharts in C/C++. The ZIP file of the entire CD-ROM is protected with a password that is easy to generate for the owners of the book. To generate the password you need any version of Practical Statecharts in C/C++: the original English version (ISBN 1-57820-110-1), the Chinese translation (ISBN 7-81077-414-8), or the Korean translation (ISBN 8-98997-549-2). You combine the first word in line 8 of Listing 4.1 and the first word in line 18 of Listing 9.6. Do not insert spaces between these two items.

The CD-ROM is designed for maximum usefulness, even without installing any of it on your hard drive. In particular, you can browse the source code, execute examples, and read PDF documents directly from the CD.

Code Updates

download Download QP/C 2.6.00 software (December 2004)
This maintenance release contains all bug fixes mentioned in the Errata, regardless of the book printing.
GPL download Download QP/C++ 2.6.00 software (December 2004)
This maintenance release contains all bug fixes mentioned in the Errata, regardless of the book printing.


Errata for 1st printingErrata for the first printing (June 2002) (193KB)
Errata for 2nd printingErrata for the second and subsequent printings (October 2002) (102KB)

About the author

Miro Samek

Dr. Miro M. Samek is founder and president of Quantum Leaps, an open source company providing lightweight, state machine-based, event-driven application frameworks for embedded systems. He is the author of Practical Statecharts in C/C++ (CMP Books, 2002), has written numerous articles for magazines, including a column for C/C++ Users Journal, is a regular speaker at the Embedded Systems Conferences, and serves on the editorial review board of the Embedded Systems Design magazine. For a number of years, he worked in various Silicon Valley companies as an embedded software architect and before that he worked as an embedded software engineer at GE Medical Systems (now GE Healthcare). Dr. Samek earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany).

Last updated: November 24, 2009