Templet: язык разметки для параллельного программирования

Бесплатный доступ

В статье предлагается новый подход к описанию сети взаимодействующих процессов на традиционном языке программирования. Для выражения семантики параллельного выполнения обычно разрабатываются специальные языки программирования или расширения для последовательных языков. Библиотеки на С++, Java, С# и других языках также применяются как средство объектно-ориентированного моделирования параллельных вычислений. Однако этот способ приводит к увеличению трудоёмкости рукописного кодирования. Штатный компилятор не может обнаружить семантические ошибки, связанные с моделью программирования в подобных библиотеках. Новый язык разметки и специальная техника автоматизации программирования на основе размеченного кода позволяют решить указанные проблемы. В статье приводится подробная спецификация языка разметки без обсуждения его реализации. Язык разметки является средством описания параллельных вычислений в виде сети взаимодействующих процессов произвольной сложности. Он предназначен для программирования современных и перспективных многопроцессорных систем.

язык разметки \ автоматизация программирования \ языково-ориентированное программирование \ параллельное программирование

Похожие статьи в разделе Вычислительная математика. Численный анализ

Технология визуального моделирования параллельных алгоритмов. Язык PGRAPH
Технология визуального моделирования параллельных алгоритмов. Язык PGRAPH

Коварцев Александр Николаевич, Жидченко Виктор Викторович, Попова-Коварцева Дарья Александровна, Даниленко Александра Николаевна

Эффективность модели программирования на базе явного задания легких тредов
Эффективность модели программирования на базе явного задания легких тредов

Корнеев Виктор Владимирович, Будник Александр Владимирович

Модель параллельных вычислений для многопроцессорных систем с распределенной памятью
Модель параллельных вычислений для многопроцессорных систем с распределенной памятью

Ежова Надежда Александровна, Соколинский Леонид Борисович

Короткий адрес: https://sciup.org/148203726

IDS: 148203726   |   УДК: 519.682

Templet: a markup language for concurrent programming

In this paper we propose a new approach to the description of a network of interacting processes in a traditional programming language. Special programming languages or extensions to sequential languages are usually designed to express the semantics of parallel execution. Libraries in C++, Java, C#, and other languages are also used as a means of object-oriented modeling of parallel computations. However, this method leads to an increase in workload of a manual coding. Besides, stock compilers can not detect semantic errors related to the programming model in such libraries. The new markup language and a special technique of automatic programming based on the marked code can solve these problems. The article provides a detailed specification of the markup language without discussing its implementation details. The markup language is designed for the description of parallel computation as a network of interacting processes of arbitrary complexity. It is used for programming of current and prospective multiprocessor systems.

Список литературы Templet: язык разметки для параллельного программирования

  • Ward M.P. Language-oriented programming//Software-Concepts and Tools. 1994. Т. 15. № 4. С. 147-161.
  • Dmitriev S. Language oriented programming: The next programming paradigm: //JetBrains onBoard. 2004. Т. 1. № 2. URL: http://www.onboard.jetbrains.com/articles/04/10/lop/(дата обращения 16.11.2014).
  • Hoare C. A. R. Communicating sequential processes//The origin of concurrent programming. Springer New York, 2002. С. 413-443.
  • Wirth N. The programming language Oberon//Software: Practice and Experience. 1988. Т. 18. № 7. С. 671-690 DOI: 10.1002/spe.4380180707
  • Stroustrup B. The C++ programming language. Addison-Wesley, 2013.
  • Reinders J. Intel threading building blocks: outfitting C++ for multi-core processor parallelism. O'Reilly Media, Inc., 2007.
  • Richter J. Concurrent Affairs-Concurrency and Coordination Runtime//MSDN Magazine-Louisville. 2006. С. 117-128.
  • Schling B. The boost C++ libraries. Xml Press, 2011.
  • The Go Programming language specification -The Go programming language: . URL: http://golang.org/doc/go_spec.html). (дата обращения 28.05.2014).
  • INMOS Limited. Occam programming manual. Prentice Hall Direct, 1984.
  • Ritchie D.M. The Limbo programming language. In Inferno 3rd Edition Programmer's Manual, vol. 2. Vita Nuova Holdings Ltd, 2000.
  • Larson J. Erlang for concurrent programming//Communications of the ACM. 2009. Т. 52. № 3. С. 48-56 DOI: 10.1145/1467247.1467263
  • Browne J. C. et al. Visual programming and debugging for parallel computing//IEEE Concurrency. 1995. Т. 3. № 1. С. 75-83 DOI: 10.1109/88.384586
  • Cole M. Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming//Parallel computing. 2004. Т. 30. № 3. С. 389-406 DOI: 10.1016/j.parco.2003.12.002
  • González-Vélez H., Leyton M. A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers//Software: Practice and Experience. 2010. Т. 40. №12. С. 1135-1160 DOI: 10.1002/spe.1026
  • Karasawa Y., Iwasaki H. A parallel skeleton library for multi-core clusters//Parallel Processing, 2009. ICPP'09. International Conference on. IEEE, 2009. С. 84-91 DOI: 10.1109/ICPP.2009.18
  • Aldinucci M., Danelutto M., Kilpatrick P. Skeletons for multi/many-core systems//PARCO. 2009. С. 265-272 DOI: 10.3233/978-1-60750-530-3-265
  • Johnston W.M., Hanna J.R., Millar R.J. Advances in dataflow programming languages//ACM Computing Surveys (CSUR). 2004. Т. 36. № 1. С. 1-34 DOI: 10.1145/1013208.1013209
  • Philippi S. Visual programming of concurrent object-oriented systems//Journal of Visual Languages & Computing. 2001. Т. 12. № 2. С. 127-143 DOI: 10.1006/jvlc.2000.0192
  • Dagum L., Menon R. OpenMP: an industry standard API for shared-memory programming//Computational Science & Engineering, IEEE. 1998. Т. 5. № 1. С. 46-55 DOI: 10.1109/99.660313
  • Blumofe R. D. et al. Cilk: An efficient multithreaded runtime system//Journal of parallel and distributed computing. 1996. Т. 37. № 1. С. 55-69 DOI: 10.1006/jpdc.1996.0107
  • Konovalov N. A., Krukov V. A., Sazanov Y. L. C-DVM-A Language for the Development of Portable Parallel Programs//Programming and Computer Software. 1999. Т. 25. № 1. С. 46-55.
  • Abramov S. et al. OpenTS: an outline of dynamic parallelization approach//Parallel Computing Technologies. Springer Berlin Heidelberg, 2005. С. 303-312.
  • Selic B. The pragmatics of model-driven development//IEEE software. 2003. Т. 20. №. 5. С. 19-25 DOI: 10.1109/MS.2003.1231146
  • Atkinson C., Kuhne T. Model-driven development: a metamodeling foundation//Software, IEEE. 2003. Т. 20. № 5. С. 36-41 DOI: 10.1109/MS.2003.1231149
Еще