Home Tutorial Question Top

*AIDA: comprehension through questions



What is behind words of CyberFilm and Filmification modeling environment?

CyberFilm (in fact, algorithmic CyberFilm) is used to attract attention to the following.

  • Moving pictures (animation) present traversal schemes of algorithmic CyberScenes (some meaning of scene a-pictures),
  • Series of compound pictures (CyberFrames) can be watched in frame-by-frame animation manner,
  • Special constructs help to directly generate results of computation in an animation form,
  • Annotation can also be prepared as animation (movie).

Filmification modeling environment supports the above-mentioned features and allows more explicitly presenting dynamical aspects of application models.


Which features of *AIDA should be considered to recognize its 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.

Index expressions

How *AIDA user can refer to variable elements?

In *AIDA there are no index variables and conventional index expressions. Instead, there are highlighting circles in square brackets located after variable identifiers and related to a traversal process on a space structure. These circles are used to refer variable elements associated with the space structure nodes where the traversal process is currently active. Short arrow bars around a circle:

as well as circle/bar and k (k is a constant) are used to refer to variable elements in some neighborhood of highlighting nodes (if k=1, it is skipped). For example, [ ,2 ] points to the second node in the right (east) direction.

In addition, the neighborhood can be defined by special micro-icons attached to symbols of operations.

The highlighting nodes of the space structures can be represented by circles of different colors or circles of one color but with different colors of background images behind the circles.

To refer variable elements which are out of the neighborhood area, positions of specially moving control lines (or even foreground structures) can be used.


Index expressions

How colors and types of highlighting nodes are used to refer to variable elements?

The colors are used to differentiate computational activity in different nodes of the space structures. For example, red color and blue color can be used respectively for boundary nodes and for internal nodes where different formulas are applied.

Types of highlighting nodes are used to point to types of computational activity on corresponding nodes. The following table presents these types. Full highlighting says that computation in a node can change associated variable elements; contour highlighting says that computation can only read values of corresponding nodes; half highlighting is related to conditional decision making about places and types of activity at the next step of the algorithm specification; bar highlighting is similar to the previous one, but if there are no satisfactory conditions then corresponding CyberScene (a flow of a front of computation) is broken; center point highlighting says that the process of computation in the node waits for some events (signals) which have to satisfy some triggering conditions; wave highlighting is related to the continuation of previously defined activity in nodes; and double-node highlighting is applied for the space structure transformation, for example, for pointing a node where a tree branch can be cut.

Information: Red text is used for presenting language super-characters and constructs which are still under the development and will be available later.

Index expressions

Does simultaneous highlighting on many nodes mean parallel computation.

Yes, if an operation (formula) is attached to one circle of the highlighting color; this means that activity defined by the formula can be applied in parallel in all nodes of the highlighting color.

However, if an operation is attached to a triple-circle micro-icon representing all nodes of some color as a whole then this operation is considered as a collective (indivisible) one and the involvement of parallelism depends on the essence of the operation and the user should not think about it. The operation takes (in some way) values of variables from highlighting node area, performs appropriate computation and returns results through variables associated with the area nodes.


Index expressions

Why some highlighting nodes have a cross background image?

For many traversal schemes there are no essential limitations for activity (formula) attachment; the limitations are only related to types of the node highlighting. However, there are cases where traversal schemes request to follow to special limitations within one type of the node highlighting. An extreme form of such limitations is the absence of any freedom in the formula attachment; this means that the user has to apply only a formula pre-defined for the scheme. The cross background image means such an extreme case of the absolute limitation. A short-diagonal-bar background image means that there is a partial type limitation for the formula attachment.


How and when are annotations attached?

There are three types of annotations. The first type is related to algorithmic details views of *AIDA program format and new a-pictures. These views and annotations to new a-pictures are attached by developers when CyberScenes or CyberFilms and new a-pictures are included in libraries and galleries. The second type is related to joint activity of an editor of Main or other views and the user: an editor initiates an interaction by asking special questions and the user's answers are transformed into some annotations. Questions about units of measure and/or some features of initial data can be an example of the interactions. Finally, the third type is annotations prepared and attached by the users on their own initiatives. In such cases, balloon type micro-icons are appeared near some expressions or constructs. An example of these micro-icons is presented in fourth row of the Fig.2.4 program.


Variable Declaration

How a variable of a 5-dimensional-array type can be declared on a space structure of 3-D world?

Space structures are used for displaying "space affiliations" of application attributes (variables) and for demonstrating some relations between shapes of model regions and variables involved. A full dimensionality of a variable is sum of a space structure dimension and a local dimension of the variable on the structure nodes. In the following example,

A[n, m]

local 2-D arrays of double-real A are attached to each node of 3-D space structure and the full dimension of 5-D level is arranged.


Self-explanation attainability

To what degree can *AIDA and F-modeling environment guarantee understandability (the self-explanatory features) of its a-characters, constructs, and components?

The understandability in *AIDA is based on pictures supported by specially prepared pieces of knowledge. These pieces employ the most appropriate formats (animation, other pictures, and text) to bridge gap between syntax and semantics and explain (on demand) meaning of corresponding super-characters, constructs and components. In many cases, such explanations are prepared through a refereeing process. However, if an explanation is imperfect according to users' feedback, it can be updated.

"Writing" *AIDA constructs

Is the keyboard used for representing *AIDA expressions?

Yes, *AIDA expressions include not only a-characters, but also conventional characters. So, the keyboard is also involved in "writing" *AIDA constructs. The figure below shows sub-panels where the keyboard and other type characters are used for representing operations, variable and function names.


Basic paradigm

Is *AIDA object-oriented and for special-purpose applications?

*AIDA is a user-oriented (though, its constructs allow obtaining effects of the object-oriented approach on adaptability, usability, etc.) and can be both special-purpose and general-purpose. The former is based on self-explanatory features and the latter depends on knowledge acquisition accumulated in the galleries and libraries. *AIDA is a "living system-organism" where adding appropriate a-characters and constructs related to some application makes it this-application-oriented.


Is *AIDA an imperative programming language?

*AIDA is a language of explanation of application models and algorithms involved in corresponding computations. It is a language of modeling, programming and documenting. An essential part of *AIDA program is not related to the code generation, but to the explanation mentioned and automatic checking the program correctness. *AIDA's constructs employ features of imperative and declarative languages. For example, an assignment statement is used to declare a parallel computational activity in nodes of a space structure and a-characters of CyberScenes are applied to define movements of "fronts of computation" as partial orders of the space structure traversal. Conventional type calls and data flow schemes are used for the component integration.

Can *AIDA language and F-modeling environment support, in some way, features of aspect-oriented programming?

Yes, they can. First, because center-point highlighting nodes and a-pictures, specifying sending signals, allow to represent extracting various program aspects before and during run-time; the program rows where processes of computation in nodes wait for some events (signals), with corresponding triggering conditions and guarded operations, can be just attached at the end of an existing program; the editing of this program is related only to inserting a-pictures for signal sending. Second, because the Main view editor supports global type operations of substitution. Based on such an operation, some expressions can be replaced by other expressions in the whole program. Third, because the *AIDA program format includes different aspect views as a standard of every CyberFilm.