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

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

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

Еще

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

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

IDR: 148203726

Список литературы 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
Еще
Статья научная