S.A.Sofronov, I.S.Rybkin, A.A.Chistyakov, E.R. Moshev THE TOOL OF CREATION OF CONCURRENT PROGRAMS MP1
It is known that parallel languages based on text representation of a program hide their parallel structure, and, thereof, such programs become cumbersome and less reliable. On the basis of text languages it is practically impossible to create friendly and effective tools for parallel programming, necessity for which one, certainly, exists. We have designed the MP1 system, being the visual environment for the creation of concurrent programs, based on the idea of sharing of the description of series calculations and descriptions of particular resources of parallel programming (i.e. not text, but graphical-text representation of the program as the annotated graph). Such approach to representation of the program gives the user a number of advantages, in particular, essentially simplifies the debugging programs due to the uniform representation of a program on the stage of development, debugging and visualization of its execution.
MP1 is the adapted implementation of the MEANDER language for an operating system PARIX (intended for supercomputers Parsytec). MEANDER is an obvious parallel language for MIMD architectures operating message transition paradigm. As contrasted to the basic version of the MEANDER language, the main difference of MP1 is encompass byed usage of distributed memory paradigm, as it is demanded by the architecture of the computer Parsytec. Except for this difference, also at implementation the tool kit submitted to the user was extended. With the help of the summarized system the user can create the program, debug it and generate the text code for PARIX.
S.A.Sofronov, I.S.Rybkin, A.A.Chistyakov, E.R. Moshev DEVELOPMENT OF PROGRAMMING TECHNOLOGY, ENSURING THE KIT GUARANTEEING SOFTWARE QUALITIES
Problem of similar technology development is stipulated by the modern conditions on the enterprises with the staff of programmers. In spite of the progress in functional possibilities of modern tools for programmers, however, hitherto there is not closed an issue on the permit of ambiguity of way to the programs architecture.
The development of the technology allowed us to formulate concrete and unambiguous rules and principles according to which software, created even by unprofessional programmers, will possess predetermined quality kit.
Technology is intended for use with linguistic programming facilities, i.e. programming languages.
Our technology is based on the results of the theoretical analysis of work process, considered as an information system, it consists of objects, processes, events, procedures and other units.
In the developed technologies it is installed a number of requirements and rules, amongst which lock-and-key are the requirements for the construction of flat algorithm within service procedures, inverse event-orientation of service procedures and site kernel of processing the direct events.
Our technology ensures the following additional qualities: systematization, easyness of adjustment and packed realignments of algorithm, easyness of accompaniment and removing the additional functional possibilities, flexibility, comfort of linking of a code, easyness of the analysis of an algorithm.
Developing technology is presented in the manner of the kit of rules and principles, which must be used when making a software product.
In order to represent the domain task formal model at the stage of specification of intelligent system there is a need for a language, which in our opinion, must have the following features:
1. The language must be formal one;
2. The language must be independent of the implementation environment of intelligent system;
3. The language must support selected model of knowledge representation (model of expertise);
4. The language must be operational
5. The language must support incomplete specification of some components of domain task formal model.
Feature 1 should provide task model reuse as well as automatic translation to the language of implementation environment. Feature 2 should increase the efficiency of development of intelligent systems allowing to use the most suitable environment (procedural, declarative or special environment for application development). Feature 3 will be discussed later. Feature 4 is necessary for construction of automatic translators from domain task specification language to the language of implementation environment. This feature will also make possible for us to check the model of the task before the implementation stage of intelligent system development (rapid prototyping mode). As it is seen from the practice, feature 5 is very important for design tasks modelling. During the design process one often must do numerous calculations. These calculations ordinarily are in fact well formalized tasks, having mathematical solving methods. Therefore, at the level of conceptual model it is not sound to have detailed descriptions of these methods. Generaly speaking, feature 5 contradicts feature 4. Hence incomplete specification must be clearly defined and must have restricted area of usage.
Feature 3 deals with expertise model. We use expertise model, which consists of the following components:
-
Domain knowledge layer. Consists of terminology (concepts and relations), facts and general knowledge
-
Inference layer. Consists of elementary actions – inferences and defines data connections between inferences
-
Task layer. Defines the sequense of inference activations in the process of task solving.
Because the task layer comprises all the control over the sequense of actions it is sound to use a declarative language for knowledge representation at the inference layer. We use F-logic (frame logic) as a basis for domain knowledge layer description as well as for inference layer description. F-logic is a declarative formalisation of so-called object-oriented approach, wich is using now in programming languages and databases, and includes such notions as object, inheritance and deduction.
To represent inference layer we specify all elementary actions (inferences) and connect them to each other in respect of input/output data using a graph (which is in fact a data flow diagram used in programming).
For task layer representation we use conventional operators: sequense of actions, conditional operator, loops of different types.
Share with your friends: |