AIDA compiler: a code synthesizer from programs in pictures

AIDA is a language for programming (modeling and documenting) in pictures within F-modeling environment where pictures and moving pictures are used as super-characters for representing features of computational algorithms, corresponding application models and possible related documentation. Generic pictures of the algorithmic super-characters are used to compose compound pictures defining algorithmic steps. The generic and compound pictures, as well as their series are acquired in special galleries of an open type where supportive pictures of various annotations are also included. These acquisitions allow very compact algorithmic specifications from which a set of program slices with different levels of details are synthesized. The lowest level slice is a C++ program. The F-modeling environment provides a set of editors for different views and annotations. In this paper, a structure of the synthesizer is presented and a distribution of its functions among the environment subsystems is provided. A special attention is payed to internal objects, template programs and algorithms supporting the C++ program generation.

[1]  Yutaka Watanobe,et al.  Filmification of methods: A visual language for graph algorithms , 2008, J. Vis. Lang. Comput..

[2]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[3]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[4]  Yutaka Watanobe,et al.  Cognitive Aspects of Programming in Pictures , 2011, IEA/AIE.

[5]  Gerti Kappel,et al.  A survey on UML-based aspect-oriented design modeling , 2011, CSUR.

[6]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[7]  Nikolay N. Mirenkov,et al.  Visual computing within environment of self-explanatory components , 2002, Soft Comput..

[8]  Peter A Blume The LabVIEW Style Book , 2007 .

[9]  Nikolay N. Mirenkov,et al.  Self-Explanatory Components: A New Programming Paradigm , 2001, Int. J. Softw. Eng. Knowl. Eng..

[10]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[11]  Yutaka Watanobe,et al.  Algorithm library based on algorithmic cyberFilms , 2007, Knowl. Based Syst..

[12]  Enn Tyugu,et al.  Knowledge-Based Programming (Turing Institute Press Knowledge Engineering Tutorial Series) , 1988 .

[13]  Annalisa Bossi Logic-Based Program Synthesis and Transformation , 1999, Lecture Notes in Computer Science.