
•  Process of FGPP execution is considered to be 
finished, when any module is not ready for 
execution and all the processes induced during 
FGPP execution are completed (terminated). 
•  During the execution method can use special-
purpose functions WRITE,  READ, and CHECK, 
which provide an interface between modules. 
a. WRITE  function conducts write in the giving 
output point of the giving output group, with 
the specified value marked specified tag, and 
has the format: WRITE (<name of output 
group>, <output>, <tag>, <value>).  
b.  READ function allows the process to read data 
with the indicated tag from buffers assigned to 
the input groups of the module that initiated the 
process. The data with indicated tag retrieved 
from the listed inputs are assigned to variables 
in the process - input value. Format of READ 
function: < input value > = READ (<name of 
input group>, <input>, <tag>). In the execution 
of  READ  function, if the requested data have 
not yet arrived to the buffer memory, the 
execution is delayed until the data arrive. The 
arrival time is controlled for any recording of 
data into the buffer memory of the 
corresponding input group. When READ 
function returns, the requested data are deleted 
from the buffer. 
c. For more sophisticated operation with data 
arriving to module input group (to be more 
precise, with the assigned buffers), the function 
<availability flag> = CHECK (<name of input 
group>, < input>, <tag>) is provided, which 
checks the availability of data with the 
indicated tags at the specified input point, and 
returns TRUE as result,  if such data is present 
at the buffer, and FA L S E  –  otherwise. This 
function allows the process to make a decision 
on its actions depending on the data 
availability. 
The following forms of parallelism that objectively 
present in DCIPS and real-world tasks (Kutepov V.P 
et al, 1996) are easily represented in FGSPPL: 
  Parallelism of data-independent fragments; 
  Data parallelism (SIMD parallelism by Flinn) 
that is induced by simultaneous application of 
method to several differently tagged data 
tuples; 
  Pipeline parallelism resulted from stream-like 
processing of data. 
FGSPPL naturally combines the opportunities of 
gross-grain parallelism representation (that is 
realized at the level of the modules’ methods) and 
fine-grain parallelism that is represented in methods 
of modules and can be implemented by 
multithreading. 
Our experience in FGPPL programming shows that 
FGPPL allows to build adequate and often straight 
structure models of mass-service networks, 
distributed and many component systems, we have a 
positive experience in describing on FSPPL the 
distributed control processes of flexible automated 
manufactures, airports, etc, as well as multi-
component program systems, where information 
relations are structured and permanent. 
5  EMBEDDING FSPPL INTO 
OBJECT-ORIENTED 
ENVIRONMENT 
Embedding FSPPL into object oriented environment 
is an important and apparent way to reach 
comprehensive requirements stated in part 3 of the 
paper, in particular to provide language support for 
complex data modelling. On the other side this 
embedding should enrich object-oriented language 
with dataflow superstructure on top for more flexible 
parallelism support. Such approach has already been 
considered as an important extension of object 
oriented systems (
J.Paul Morrison., 1994). 
Reusability of program code in object-oriented 
programming can be reached at different levels of 
abstraction starting from procedures, data structures, 
and classes and up to logically and physically 
connected sets of classes. Using these systems of 
classes in architecture of an application implies 
using of built-in object interacting schemas in 
runtime. These systems of classes delivering 
services in some area are usually called integrated 
libraries. 
We’ve adopted the idea of integrated library to 
embed FSPPL into object-oriented environment. 
FGPP implemented with the library is called object-
oriented FGPP (OOFGPP).  
To build the integrated library for flow-graph 
stream parallel programming we have applied 
methods of object-oriented analysis for abstract 
FGPP, its syntax and parallel semantics. Using 
object-oriented decomposition we constructed the 
set of base classes that allows describing main 
objects of FGPP: scheme, module, input group, 
output group, input and output points and defined 
mechanisms of their interaction as private methods.  
Now to build the OOFGPP developer has to 
implement a number of standardized abstract classes 
exposed by the library.  
The embedding of FSPPL into OO environment 
enables developer to treat elements of parallel 
ICSOFT 2008 - International Conference on Software and Data Technologies
86