DOPPL
Data Oriented Parallel Programming Language

Development Diary
Iteration #8

Covered Concepts:
State Members

Diego ...
Abstract
This paper stands for Doppl language development iteration #8. In this paper, state members
which are used to cre...
●
●
●
●
●
●
●
●
●
●
●
●
●
●

State transition operators
Target language of Doppl compilation
if conditional, trueness and ...
Upcoming SlideShare
Loading in …5
×

Doppl development iteration #8

202 views

Published on

Doppl is a new programming language that aims providing a natural syntax for implementing parallel algorithms, designing data structures for shared memory applications and automated message passing among multiple tasks. The name is an abbreviation of `data oriented parallel programming language`.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Doppl development iteration #8

  1. 1. DOPPL Data Oriented Parallel Programming Language Development Diary Iteration #8 Covered Concepts: State Members Diego PERINI Department of Computer Engineering Istanbul Technical University, Turkey 2013-08-28 1
  2. 2. Abstract This paper stands for Doppl language development iteration #8. In this paper, state members which are used to create local bindings to simplify in state calculations will be introduced. 1. Rationale Previous iterations did not include any language construct to create temporary bindings which can be used to express complex calculations in terms of multiple expressions. These constructs often appear as local variables in common programming languages. Local variables in Doppl are called state members which are very similar to task members with additional limitations. 2. State Members State members are bindings that can only live within a state. They are allowed to be declared in any part of a state code block. State members are strongly typed like their regular counterparts. Values of state members are discarded when a task changes its state or finish. #State members task(1) StateMembers { data a_task_member = string init: { data a_state_member = string a_state_member = input ++ "n" a_task_member = a_state_member } } Shared state members does not suggest any reasonable form of data semantically and therefore are considered invalid declarations. Instruction bypassing via once members still works on state members, nonetheless one still has to note that those members are still private for each task. 3. Conclusion Iteration #8 introduces state members, local bindings that share the same syntax to create assignable names inside a state. These bindings can only be declared as private. Instruction bypassing is still allowed. 4. Future Concepts Below are the concepts that are likely to be introduced in next iterations. 2
  3. 3. ● ● ● ● ● ● ● ● ● ● ● ● ● ● State transition operators Target language of Doppl compilation if conditional, trueness and anonymous states Booths (mutex markers) Primitive Collections and basic collection operators Provision operators Predefined task members Tasks as members Task and data traits Custom data types and defining traits Built-in traits for primitive data types Formatted input and output Message passing Exception states 5. License CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/ 3

×