iccsa-21-guile

git clone https://git.igankevich.com/iccsa-21-guile.git
Log | Files | Refs

commit 24346767ceedcf9e26c3aadfd80d7ed4224064f8
parent 211bbed34ac77da0e819b598c06d80dd18a3cd32
Author: Ivan Gankevich <i.gankevich@spbu.ru>
Date:   Sun,  9 May 2021 22:10:34 +0300

Abstract.

Diffstat:
copyright.txt | 6++++++
main.tex | 21+++++++++++++++++++--
2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/copyright.txt b/copyright.txt @@ -0,0 +1,6 @@ +Functional programming interface for parallel and distributed computing +Ivan Petriakov, Ivan Gankevich + +There are many programming frameworks and languages for parallel and distributed computing which are successful both in industry and academia, however, all of them are isolated and self-contained. We believe that the main reason that there is no common denominator between them is that there is no intermediate language for distributed computations. For sequential computations we have bytecode that is used as an intermediate, portable and universal representation of a programme written in any language, but one important feature, that bytecode lacks, is an ability to describe process communication. If we add this feature, we get low-level language on top of which all the frameworks and languages for parallel and distributed computations can be built. In this paper we explore how such intermediate language can be made, how it can reduce programming effort and how it may simplify internal structure of existing frameworks. We also demonstrate how high-level interface can be build for functional language that completely hides all the difficulties that a programmer encounters when he or she works with distributed systems. + +Keywords: API, intermediate language, C++, Guile. diff --git a/main.tex b/main.tex @@ -62,8 +62,25 @@ \begin{abstract} +There are many programming frameworks and languages for parallel and +distributed computing which are successful both in industry and academia, +however, all of them are isolated and self-contained. We believe that the main +reason that there is no common denominator between them is that there is no +intermediate language for distributed computations. For sequential +computations we have bytecode that is used as an intermediate, portable and +universal representation of a programme written in any language, but one +important feature, that bytecode lacks, is an ability to describe process +communication. If we add this feature, we get low-level language on top of +which all the frameworks and languages for parallel and distributed +computations can be built. In this paper we explore how such intermediate +language can be made, how it can reduce programming effort and how it may +simplify internal structure of existing frameworks. We also demonstrate how +high-level interface can be build for functional language that completely hides +all the difficulties that a programmer encounters when he or she works with +distributed systems. + \keywords{% - TODO +\and API \and intermediate language \and C++ \and Guile. @@ -129,7 +146,7 @@ any number of cores on each node, and term \emph{cluster} to describe anything that refers to local cluster (as opposed to geographically distributed clusters which are not studied in this paper). -TODO \cite{lang-virt} +%TODO \cite{lang-virt} %\cite{fetterly2009dryadlinq} %\cite{wilde2011swift} %\cite{pinho2014oopp}