ACSL Code: a high quality code generator for control applications
M. Englehart · 2002
Honeywell and MGA Software have collaborated to produce ACSL Code, a high-quality C code generator for control applications. ACSL Code was designed using the lessons learned by Honeywell when they developed the language and code generator ControlH, under an ARPA (Advanced Research Projects Agency) DSSA (Domain-Specific Software Architecture) contract. We describe the language that the algorithm definitions are captured in by the ACSL Code tool, before being translated to C code. The language is designed to capture control algorithms concisely and rigorously. The language has both a textual and a graphical syntax. The textual syntax is a variant of MGA's language ACSL (Advanced Continuous Simulation Language), while the graphical syntax is derived from MGA's graphic modeling language. Highlights of the language include the integration between the textual and the graphical syntaxes, the rich base of presupplied blocks, and strong support for vectors and matrices. We describe our philosophy for code generation, and the ways in which ACSL Code implements that philosophy. The goal of the code generator is to produce software whose quality and structure are comparable to that produced by an experienced software engineer. One important characteristic is that the code produced preserves the structure of the original algorithm definition. Another characteristic is that the generated code is very portable and may be easily inserted into legacy environments. Finally, we present an example of a representative control law definition, and excerpts from the corresponding generated code.