The Templet Language Preprocessor: A Programming Tool for Process-per-Message Modeling
Journal of Samara State Technical University, Ser. Physical and Mathematical Sciences, no. 3 (2014), pp. 169-182.

Voir la notice de l'article provenant de la source Math-Net.Ru

Motivation: A large number of applications can be described as a set of processes that exchange messages. Traditionally the process-per-message model is used in the form of a specialized language or a run-time library for general purpose language. The first approach lacks implementation simplicity, while the second approach is difficult in use. We propose a new method that comprises domain-specific language called Templet for code markup, a general purpose language, and the preprocessor. Our approach is free from disadvantages mentioned above. Method: A code of a program is divided into blocks. Block boundaries are indicated by comments. The entire code structure is defined in Templet language so it can be checked out automatically before compilation. Description of Channels: A channel defines a message exchange protocol between two interconnected processes. We provide channel syntax in the form of Extended Backus-Naur Formalism (EBNF). The informational structure of the channel is described with Entity-Relation diagram (ER). Description of Processes: A process defines the algorithm for message processing. Information structure of the process is shown in conjunction with the syntax. EBNF and ER models are also used in the process specification. Syntax rules are illustrated with the fork-join code sample. Preprocessor structure and work scheme: We present the algorithm and the structure of the preprocessor. Subsystems discussed are: syntax analyzer; semantics analyzer; internal database; inference mechanism; and code generator. The method for estimation of workload of manual coding is presented. It shows the diminishment of workload in 20 times comparing with manual coding. Discussion: The preprocessor is used for skeleton programming as a part of web-service for automated parallel programming. Its advantages and features are discussed in comparison with parallelization with markup technique; general-purpose macro processor; parallel programming language, metaprogramming; and model-driven development.
Keywords: preprocessor, domain-specific language, process, parallel programming.
Mots-clés : message
@article{VSGTU_2014_3_a13,
     author = {S. V. Vostokin},
     title = {The {Templet} {Language} {Preprocessor:} {A} {Programming} {Tool} for {Process-per-Message} {Modeling}},
     journal = {Journal of Samara State Technical University, Ser. Physical and Mathematical Sciences},
     pages = {169--182},
     publisher = {mathdoc},
     number = {3},
     year = {2014},
     language = {ru},
     url = {http://geodesic.mathdoc.fr/item/VSGTU_2014_3_a13/}
}
TY  - JOUR
AU  - S. V. Vostokin
TI  - The Templet Language Preprocessor: A Programming Tool for Process-per-Message Modeling
JO  - Journal of Samara State Technical University, Ser. Physical and Mathematical Sciences
PY  - 2014
SP  - 169
EP  - 182
IS  - 3
PB  - mathdoc
UR  - http://geodesic.mathdoc.fr/item/VSGTU_2014_3_a13/
LA  - ru
ID  - VSGTU_2014_3_a13
ER  - 
%0 Journal Article
%A S. V. Vostokin
%T The Templet Language Preprocessor: A Programming Tool for Process-per-Message Modeling
%J Journal of Samara State Technical University, Ser. Physical and Mathematical Sciences
%D 2014
%P 169-182
%N 3
%I mathdoc
%U http://geodesic.mathdoc.fr/item/VSGTU_2014_3_a13/
%G ru
%F VSGTU_2014_3_a13
S. V. Vostokin. The Templet Language Preprocessor: A Programming Tool for Process-per-Message Modeling. Journal of Samara State Technical University, Ser. Physical and Mathematical Sciences, no. 3 (2014), pp. 169-182. http://geodesic.mathdoc.fr/item/VSGTU_2014_3_a13/

[1] Vostokin S. V., “The basic syntax of TEMPLET markup language for representing process-per-message model”, Perspektivnye informatsionnye tekhnologii (PIT 2014) [Advanced information technologies (PIT 2014)], Proceedings of the Technical Conference, ed. S. A. Prokhorov, Samara Research Center, Samara, 2014, 317–323 (In Russian)

[2] Artamonov Yu. S., Vostokin S. V., Nazarov Yu. P., “Templet – Servis nepreryvnoi integratsii dlya razrabotki vysokoproizvoditelnykh prilozhenii”, Vysokoproizvoditelnye parallelnye vychisleniya na klasternykh sistemakh, Materialy XII vserossiiskoi konferentsii, Izd-vo NGU, Nizhnii Novgorod, 2012, 82 (In Russian)

[3] Vostokin S. V., “Templet – A method of process oriented simulation of parallelism”, Programmnye produkty i sistemy, 2012, no. 3, 9–12 (In Russian)

[4] Ward M. P., “Language-oriented programming”, Software-Concepts and Tools, 15:4 (1994), 147–161

[5] Dmitriev S., Language oriented programming: The next programming paradigm, JetBrains onBoard, 2004, 13 pp. http://www.onboard.jetbrains.com/articles/04/10/lop/

[6] Hoare C. A. R., “Communicating sequential processes”, The origin of concurrent programming, Springer, New York, 2002, 413–443 | DOI

[7] Wirth N., “The programming language Oberon”, Software: Practice and Experience, 18:7 (1988), 671–690 | DOI | Zbl

[8] Chandra R., Menon R., Dagum L., Kohr D., Maydan D., McDonald J., Parallel Programming in OpenMP, Morgan Kaufmann, San Francisco, 2000, 230+xvi pp.

[9] Konovalov N. A., Kryukov V. A., Mikhailov S. N., Pogrebtsov A. A., “FORTRAN-DVM: The Language for Developing Portable Parallel Programs”, Programmirovanie, 1995, no. 1, 49–54 (In Russian) | MR | Zbl

[10] Bakhtin V. A., Kryukov V. A., Chetverushkin B. N., Shilnikov E. V., “Extension of the DVM parallel programming model for clusters with heterogeneous nodes”, Doklady Mathematics, 84:3 (2011), 879–881 | DOI | MR

[11] Blumofe R. D., Joerg C. F., Kuszmaul B. C., Leiserson C. E., Randall K. H., Zhou Y., “Cilk: An efficient multithreaded runtime system”, Journal of parallel and distributed computing, 37:1 (1996), 55–69 | DOI

[12] Moskovsky A., Roganov V., Abramov S., “Parallelism Granules Aggregation with the T-System”, Parallel Computing Technologies, Lecture Notes in Computer Science, 4671, Springer, Berlin, Heidelberg, 2007, 293–302 | DOI

[13] Moskovsky A., Roganov V., Abramov S., Kuznetsov A., “Variable Reassignment in the T++ Parallel Programming Language”, Parallel Computing Technologies, Lecture Notes in Computer Science, 4671, Springer, Berlin, Heidelberg, 2007, 579–588 | DOI

[14] Seindal R., GNU m4 (version 1.4), Technical report, Free Software Foundation, 1997

[15] Cook S., Jones G., Kent S., Wills A. K., Domain-Specific Development with Visual Studio DSL Tools, Pearson Education, Boston, 2007, 576 pp.

[16] Hewitt C., Actor Model of Computation: Scalable Robust Information Systems, 2010, 48 pp., arXiv: [cs.PL] 1008.1459

[17] Hewitt C., “Viewing control structures as patterns of passing messages”, Artificial Intelligence, 8:3 (1977), 323–364 | DOI

[18] Athas W. C., Boden N. J., “Cantor: an actor programming system for scientific computing”, SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 24:4 (1989), 66–68 | DOI

[19] Larson J., “Erlang for concurrent programming”, Communications of the ACM, 52:3 (2009), 48–56 | DOI

[20] Selic B., “The pragmatics of model-driven development”, IEEE Software, 20:5 (2003), 19–25 | DOI

[21] Atkinson C., Kühne T., “Model-driven development: A metamodeling foundation”, IEEE Software, 20:5 (2003), 36–41 | DOI

[22] Hailpern B., Tarr P., “Model-driven development: The good, the bad, and the ugly”, IBM Systems Journal, 45:3 (2006), 451–461 | DOI

[23] Mukerji J., Miller J., Overview and guide to OMG's architecture, IBM Whitepaper, 2001, 62 pp.

[24] Hazzard K., Bock J., Metaprogramming in .NET, Manning Publ., Shelter Island, 2013, 334+xxiv pp.