*AIDA

Modeling

Programs specify and explain computational models and their application algorithms

Modeling in *AIDA

Coding

High level specifications allow automatic generating executable codes

Coding in *AIDA

Documenting

Annotations support recognizing programs as documents

Documenting in *AIDA

Acquiring

Special knowledge acquisition systematically enhances the environment intelligence

Acquiring in *AIDA
 

Overview

*AIDA (*AIDA: ´aida) stands for "animation and images to develop algorithms" and, as a Japanese word with meaning related to space/time, points to some closeness of forms representing models and algorithms. *AIDA language and its F-modeling (Filmification modeling) environment support pictures and moving pictures as super-characters for representing features of computational models/algorithms and some explanations for them. Within this approach, "multidimensional data structures are traversed by "fronts of computation" and necessary operations are performed during these traversal processes. Generic pictures of the algorithmic super-character are used to compose compound pictures (called Algorithmic CyberFrames) defining algorithmic steps. Compound pictures are assembled into special series of Algorithmic CyberScenes and an Algorithmic CyberFilm.

A figure below depicts a structural scheme of the *AIDA program format. The top-right series of frames represents Main (Integrated) view of an algorithm. Many super-characters involved in the view are intuitively understandable and do not require serious efforts for memorization. However, some of them are not so intuitively understandable. In addition, different people can have different levels of cognition and perception.

 
AIDA multiple view
 

To enhance the comprehension of the super-characters and their compositions,a majority of pictures from the Main view frames is supported bycorresponding meaning annotation and/or by a series of frames of the bottom layer views.

On the bottom layer there are Algorithmic Dynamic, Command and Interface views. They are also to clarify (if necessary) meaning of corresponding super-characters.

Series of frames of Dynamics view clarify meaning of CyberScene super-characters by presenting animation of CyberScene skeletons (space data structures and traversal schemes of computational flows on these structures).

Series of frames of Command view disclose some details related to application values of variables and formulas (actions) that are attached to the space-time points of the skeletons.

Series of frames of Interface view represent extended vision of input/output operations that define the algorithmic interface with external world, as well as how a software component based on the algorithm should look from outside.

Each frame and/or a series of frames of the bottom layer views can have their own embedded clarity annotations. For example, a template program in C++, implementing computations presented by animation of Dynamic view, can be displayed as such annotation. Another example is special cover compound pictures which can be put before and/or after a series of CyberFrames to clarify their semantics as a whole.

In fact, the Main view is a compact (integrated) combination of algorithmic features presented by the bottom layer views. The language of this view, that is a set of super-characters and rules of their composition within CyberFrames, is a very-high level language which, in a sense, can be used independently for programming and generating the executable code. All other views and annotations are involved only on demand. This means that after some practice with this language the users can define algorithms and perform numerical experiments without watching algorithmic skeleton animations and other view CyberFrames, and without reading various types of the embedded clarity annotations.

Within the F-modeling environment, the application users usually do not create new generic pictures, frames, algorithmic skeletons and necessary template programs, but take and assemble them from galleries (libraries). For these users, the programming is reduced to defining sizes of the space structures, eclaring variables on these structures, specifying operations on traversal nodes, including input/output operations, and attaching new annotations.

An essential aspect of the environment is various opportunities for users to present important features of their application models, including features of possible input parameters and corresponding simulation algorithms. Very often, such features do not have a direct influence on the code generation, but very useful for readability and understandability of *AIDA programs. Immediate access to these features simplifies visual debugging of the programs, modifications and maintenance of them, as well as inspections of external examiners.

 

Features

 

Modeling

Modeling in *AIDA

*AIDA is a language of application model specifications and explanations. It possesses super-characters and allows adding new super-characters which visually and directly represent features of application algorithms and related objects and phenomena. F-modeling environments supports manipulations with the specifications and, in this way, with the models themselves. This gives new opportunities to application programmers for focusing on their models and simulation experiments rather than on problems of efficient implementation.

 

Coding

*AIDA program is an executable model. The Main view of the program is used for checking very-high level syntax/semantics specifications and automatic generation of executable code in a format of C++. Special library of templates associated with generic and compound pictures is a basis of this code generation. The Main view is also used for checking its consistency with other sources of information about the same aspects of the application model and its algorithms. Such cross-checking related to the involvement of other views and annotations helps in discovering semantic type errors before the code generation.

Codeing in AIDA
 

Documenting

Documenting in AIDA

*AIDA program is a self-explanatory document. Its readability and understandability are reached by bridging the syntax-semantic gap for variables, super-characters, their compositions and "document parts." This bridging is based on a multilevel system of embedded clarity including:

  • explanation of meaning of application attributes and their units of measure,
  • applying small images of intuitively understandable forms to show space data structures, traversal scheme of computation on the structures, and types of computational activity in the structures,
  • displaying a hierarchy of computation, aspect-oriented points, and separating non-terminal and terminal operations;
  • applying Algorithmic Dynamic, Command and Interface views as annotations to the Main view, as well as presenting meaning of components through their input/output operations and user-oriented interface panels,
  • adding special clarity annotations and background/foreground images if there are some doubts about the effectiveness of the above mentioned solutions. The gap bridging is applied in the small and in the large. A view of a variable, icon, frame, or a series of frames can be supported by other views or annotations on demand.
 

Acquiring

*AIDA language and its F-modeling environment are based on systematic data/knowledge and best practice acquisition. This acquisition is related to incorporating new super-characters, template programs, annotations, as well as new CyberFrames, CyberScenes and CyberFilms. Special knowledge of algorithms, their features and methods of implementations on some computer architectures are behind the acquisition. The intelligence of F-modeling environment is a fundamental basis for application researchers and practitioners in creating reliable models and corresponding programs, and in performing relevant experiments and simulations. This basis enables people to make faster and better decisions, as well as to produce robust solutions. It supports the application programmers in their decisions by enhancing their perception, cognition, and comprehension abilities, that are abilities to integrate, analyze, and act on large amounts of data from various sources at once.

Acquiring in AIDA
 

Advantages

 

Understandable

Understandability of AIDA

*AIDA is a language of information resources where knowledge is transformed in actions by application algorithms defined in pictures. For such resources there are no problems of inadequate documentation, unknown terminology and necessity of hard work on new thing memorization. The compactness of algorithm specification is very high and controllable.

 

Reliable

Transparency of picture-based expressions supports readability of *AIDA programs, their visual debugging and re-usability. This transparency combined with automatic checking the consistency of different view details and with interactions between the F-modeling environment editors and the users about specific features of application models is a basis of software reliability.

Reliability of AIDA
 

Easy to learn

Easy to Learn AIDA

A quick-start period of one or a few evenings can be enough to understand *AIDA and F-modeling environment.

 

Additional summary of advantages

  • The user-friendliness of the language allowing application programmers to represent their models and algorithms, easily and correctly, so they can be understood, also easily and correctly, by other application programmers.
  • The compactness of program views allowing their employment for presentations and explanations of application models and results of numerical experiments.
  • The easiness of the language learning allowing a person, possessing some knowledge of a conventional language, to start *AIDA usage after one or a few evenings of learning efforts.
  • Reusability, reliability, and maintainability of *AIDA based software providing greater opportunities to take into account the software engineering concerns.
  • Permanent knowledge and best practice acquisition allowing the adaptation of the language to features of application domains and the enhancement of the language intelligence as a whole.