Title :
ACSL Code: a high quality code generator for control applications
Author :
Englehart, Matthew
Author_Institution :
Syst. & Res. Center, Honeywell Technol. Center, Minneapolis, MN, USA
Abstract :
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
Keywords :
C language; application generators; computer aided software engineering; control engineering; control engineering computing; matrix algebra; simulation languages; software portability; software quality; vectors; ACSL Code; ARPA DSSA contract; Advanced Continuous Simulation Language; ControlH; Domain-Specific Software Architecture; Honeywell; MGA Software; code generation philosophy; control algorithm definitions capture; control applications; control law definition; graphic modeling language; graphical syntax; high-quality C code generator; legacy environments; matrices; portable code; presupplied blocks; software quality; software structure; textual syntax; vectors; Algorithm design and analysis; Application software; Automatic generation control; Character generation; Collaborative software; Contracts; Decision support systems; Graphics; Libraries; Software quality;
Conference_Titel :
Computer-Aided Control System Design, 1996., Proceedings of the 1996 IEEE International Symposium on
Conference_Location :
Dearborn, MI
Print_ISBN :
0-7803-3032-3
DOI :
10.1109/CACSD.1996.555339