SlideShare a Scribd company logo
1 of 5
Download to read offline
DOPPL
Data Oriented Parallel Programming Language

Development Diary
Iteration #1

Covered Concepts:
Task Definitions, State Definitions, Grammar

Diego PERINI
Department of Computer Engineering
Istanbul Technical University, Turkey
2013-05-06

1
Abstract
This paper stands for Doppl language development iteration #1. In this paper, the most common
computation structure, a task will be introduced. In order to complete a valid HelloWorld program, a
string literal, a halt command and standard output is also defined.

1. Rationale
A task is the smallest and only executable entity in Doppl ecosystem. They are cloneable,
forkable and controllable according to programmers' needs. Cloned and forked tasks appear to be
executed concurrently. They can only be synchronized on transition points. Between each state transition,
programmer is able to create new bindings, do arithmetic or logic operations and check conditions for
branching before a transition.

2. Task Structure and Grammar
Each task is defined by the template below. Italic sections are user defined names and will be
explained in detail. Indentation is mandatory and each line can only include one expression. White spaces
can be replaced by tabs as long as they satisfy the template below.

#This is a line comment and below is a simple, empty task
task(range) MyTask {
#Below is a state
init: {
#Init operations
}
#Another state
state1: {
#State1 operations
}
#...
}

range: Range is a special type of interval definition which is used to constrain number of forks
or clones for defined task type. Inside of range can only be filled by literal values due to static typing.

○ An empty range value () means "as many as required" number of task can be created.
○ A single integer value (N) means "exactly N" number of tasks should be created.
○ Two integers separated with a white space (M N) means "at least M, at most N" number
of tasks can be created. M should always be less than N.

2
○ ~ character is a valid integer literal that means "maximum amount allowed by the
environment" which is a theoretical infinity.
MyTask: This field is a user defined name for the declared task. It can only contain alpha
numeric values and underscores. It must start with a letter, preferably uppercase by convention.
init: This field is a language reserved state name and declares the initial state for its task. Any
branching for a newly spawned task is decided in this state block. There is no way for a task to bypass this
state. Initial state name must end with a colon ':' character like any other state declaration.
state1: This field is a user defined state name for the declared task. It can only contain alpha
numeric values and underscores. It must start with a letter preferably lowercase by convention and must
end with a colon ':' character.
{ }: Curly braces define blocks. There are two types of blocks, a task block and a state block. A
task block can contain member declarations (will be introduced in later iterations) and states. State blocks
can contain bindings and computation related operations. They must contain at least one state transition
rule (will be introduced) or a halt command (read further). Curly braces are likely to be removed in the
final language proposal to reduce code complexity. Their replacement are likely to be line indentations.
#: Hash character defines line comments. Line comments are ignored by the compiler until they
meet an endline character. They are used to explain code pieces and are useful to indicate state meanings.

3. Hello World and Standard Output
A valid HelloWorld program in Doppl requires two more concepts in order to be completed,
string literals and standard output.
A string literal is a character sequence enclosed between double quotes (will be improved in next
iterations). A string literal can contain special characters such as n for newline or t for tab. Further
explanation will be given when primitive types are explained in detail.

Standard output is a special binding which can be accessed by any task, named as output. Any
assignment made to output (by '=' operator) is directly rendered by system console. It can be perceived
as a special variable which outputs its content on change. Its entity type by language means will be
explained in further iterations.
Below is a valid HelloWorld program written in Doppl.
#Outputs "Hello World!" to standard output
task(1) HelloWorld {
#Init state

3
init: {
output = "Hello World!"
finish
}
}

finish: Finish (all characters lowercase) is a reserved language construct which points to a
location (current state) that can be considered as a final state. When an instance or an instance group
(cloned set) of a task meet with its or their final state and execute finish, any binding made by that
instance group can no longer be accessed.

4. Pseudo Compilation
Previous introduction lacks one concept in order to execute the written Doppl program. No entry
point is defined in the source. Iteration #1 proposes that entry points of Doppl programs should be given
as compiler parameters and they can only be task names. Tasks must specify their range values as 1 in
order to be considered as valid entry points. A pseudo compilation command of a Doppl program is given
below.
doppl helloworld.doppl HelloWorld

5. Conclusion
Iteration #1 provides a first look to what a Doppl program look like. It introduces stateful tasks,
main computation units of Doppl and proposes a few language constructs to manipulate standard output.
Strictly indented typing in Doppl predicts that Doppl source codes are likely to avoid code obfuscation
caused by bad practice or dirty programming. A pseudo compilation command is also proposed in this
iteration. Finally iteration #1 enforces tasks which are designed to be entry points to exist as singleton in
memory.

6. Future Concepts
Below are the concepts that are likely to be introduced in next iterations.
●
●
●
●
●
●
●
●

Primitive data types
Task members
Literals
Shared members
Assignment operator (more)
Arithmetic operators
State transition operators
if conditional

7. License
4
CC BY-SA 3.0
http://creativecommons.org/licenses/by-sa/3.0/

5

More Related Content

What's hot

Programming In C++
Programming In C++ Programming In C++
Programming In C++ shammi mehra
 
Evaluation and analysis of ALGOL, PASCAL and ADA
Evaluation and analysis of ALGOL, PASCAL and ADAEvaluation and analysis of ALGOL, PASCAL and ADA
Evaluation and analysis of ALGOL, PASCAL and ADADilanka Dias
 
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages Charitha Gamage
 
What is keyword in c programming
What is keyword in c programmingWhat is keyword in c programming
What is keyword in c programmingRumman Ansari
 
Programming in c++ ppt
Programming in c++ pptProgramming in c++ ppt
Programming in c++ pptMalarMohana
 
over all view programming to computer
over all view programming to computer over all view programming to computer
over all view programming to computer muniryaseen
 
Python Interview questions 2020
Python Interview questions 2020Python Interview questions 2020
Python Interview questions 2020VigneshVijay21
 
Doppl development iteration #4
Doppl development   iteration #4Doppl development   iteration #4
Doppl development iteration #4Diego Perini
 
Unit 1 question and answer
Unit 1 question and answerUnit 1 question and answer
Unit 1 question and answerVasuki Ramasamy
 
Basic C Programming language
Basic C Programming languageBasic C Programming language
Basic C Programming languageAbhishek Soni
 
Features of c language 1
Features of c language 1Features of c language 1
Features of c language 1srmohan06
 
Basic of the C language
Basic of the C languageBasic of the C language
Basic of the C languageSachin Verma
 

What's hot (20)

Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
C language ppt
C language pptC language ppt
C language ppt
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++
 
Evaluation and analysis of ALGOL, PASCAL and ADA
Evaluation and analysis of ALGOL, PASCAL and ADAEvaluation and analysis of ALGOL, PASCAL and ADA
Evaluation and analysis of ALGOL, PASCAL and ADA
 
C notes for exam preparation
C notes for exam preparationC notes for exam preparation
C notes for exam preparation
 
Pc module1
Pc module1Pc module1
Pc module1
 
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
 
What is keyword in c programming
What is keyword in c programmingWhat is keyword in c programming
What is keyword in c programming
 
C presentation
C presentationC presentation
C presentation
 
Features of c
Features of cFeatures of c
Features of c
 
Programming in c++ ppt
Programming in c++ pptProgramming in c++ ppt
Programming in c++ ppt
 
over all view programming to computer
over all view programming to computer over all view programming to computer
over all view programming to computer
 
Python Interview questions 2020
Python Interview questions 2020Python Interview questions 2020
Python Interview questions 2020
 
Doppl development iteration #4
Doppl development   iteration #4Doppl development   iteration #4
Doppl development iteration #4
 
Unit 1 question and answer
Unit 1 question and answerUnit 1 question and answer
Unit 1 question and answer
 
The smartpath information systems c pro
The smartpath information systems c proThe smartpath information systems c pro
The smartpath information systems c pro
 
Basic C Programming language
Basic C Programming languageBasic C Programming language
Basic C Programming language
 
OOP Poster Presentation
OOP Poster PresentationOOP Poster Presentation
OOP Poster Presentation
 
Features of c language 1
Features of c language 1Features of c language 1
Features of c language 1
 
Basic of the C language
Basic of the C languageBasic of the C language
Basic of the C language
 

Viewers also liked

Viaje grupos estudiantes en espot pirineo catalan espost2000
Viaje grupos estudiantes en espot pirineo catalan espost2000Viaje grupos estudiantes en espot pirineo catalan espost2000
Viaje grupos estudiantes en espot pirineo catalan espost2000Veleta3000
 
Global Nutricosmetics Industry
Global Nutricosmetics IndustryGlobal Nutricosmetics Industry
Global Nutricosmetics IndustryReportLinker.com
 
EdMEdia11_ SL in master MPEL angelina-lina
EdMEdia11_ SL in master MPEL angelina-linaEdMEdia11_ SL in master MPEL angelina-lina
EdMEdia11_ SL in master MPEL angelina-linaMPeL
 
Handout for Sustainable Systems (March 3, 2015)
Handout for Sustainable Systems (March 3, 2015) Handout for Sustainable Systems (March 3, 2015)
Handout for Sustainable Systems (March 3, 2015) Tycely Williams, CFRE
 
MISS USA FITNESS - BE FIT BOOT CAMP
MISS USA FITNESS - BE FIT BOOT CAMPMISS USA FITNESS - BE FIT BOOT CAMP
MISS USA FITNESS - BE FIT BOOT CAMPJillian Blackwell
 
Catalogo sabina
Catalogo sabinaCatalogo sabina
Catalogo sabinaCofares
 
Design thinking vs. Customer Development - Steve Blank
Design thinking vs. Customer Development - Steve BlankDesign thinking vs. Customer Development - Steve Blank
Design thinking vs. Customer Development - Steve BlankChristophe Monnier
 
Ceta Production Equipment
Ceta Production EquipmentCeta Production Equipment
Ceta Production Equipmentguestae48aa8
 
Forever europe eco chat 2013 november
Forever europe eco chat 2013 novemberForever europe eco chat 2013 november
Forever europe eco chat 2013 novembergalhavanas
 
Banking and financial services experience, expertise, execution & excellence
Banking and financial services   experience, expertise, execution & excellenceBanking and financial services   experience, expertise, execution & excellence
Banking and financial services experience, expertise, execution & excellenceHexaware Technologies
 
Logica terminosbasicos presentacion
Logica terminosbasicos presentacionLogica terminosbasicos presentacion
Logica terminosbasicos presentacionmemorales_IUE
 
The Uncanny Valley - BarCamp Canberra
The Uncanny Valley - BarCamp CanberraThe Uncanny Valley - BarCamp Canberra
The Uncanny Valley - BarCamp CanberraRuth Ellison
 
Arline de westmeier sanidad del matrimonio
Arline de westmeier sanidad del matrimonioArline de westmeier sanidad del matrimonio
Arline de westmeier sanidad del matrimonioAkio Matsuita
 
Bichón maltés o maltés
Bichón maltés o maltésBichón maltés o maltés
Bichón maltés o maltésanimalclass
 
Visión general de HIS-RIS-PACS Integrados
Visión general de HIS-RIS-PACS IntegradosVisión general de HIS-RIS-PACS Integrados
Visión general de HIS-RIS-PACS IntegradosEduardo Silva
 

Viewers also liked (20)

Viaje grupos estudiantes en espot pirineo catalan espost2000
Viaje grupos estudiantes en espot pirineo catalan espost2000Viaje grupos estudiantes en espot pirineo catalan espost2000
Viaje grupos estudiantes en espot pirineo catalan espost2000
 
Global Nutricosmetics Industry
Global Nutricosmetics IndustryGlobal Nutricosmetics Industry
Global Nutricosmetics Industry
 
EdMEdia11_ SL in master MPEL angelina-lina
EdMEdia11_ SL in master MPEL angelina-linaEdMEdia11_ SL in master MPEL angelina-lina
EdMEdia11_ SL in master MPEL angelina-lina
 
Handout for Sustainable Systems (March 3, 2015)
Handout for Sustainable Systems (March 3, 2015) Handout for Sustainable Systems (March 3, 2015)
Handout for Sustainable Systems (March 3, 2015)
 
MISS USA FITNESS - BE FIT BOOT CAMP
MISS USA FITNESS - BE FIT BOOT CAMPMISS USA FITNESS - BE FIT BOOT CAMP
MISS USA FITNESS - BE FIT BOOT CAMP
 
Catalogo sabina
Catalogo sabinaCatalogo sabina
Catalogo sabina
 
Design thinking vs. Customer Development - Steve Blank
Design thinking vs. Customer Development - Steve BlankDesign thinking vs. Customer Development - Steve Blank
Design thinking vs. Customer Development - Steve Blank
 
Ceta Production Equipment
Ceta Production EquipmentCeta Production Equipment
Ceta Production Equipment
 
Forever europe eco chat 2013 november
Forever europe eco chat 2013 novemberForever europe eco chat 2013 november
Forever europe eco chat 2013 november
 
Banking and financial services experience, expertise, execution & excellence
Banking and financial services   experience, expertise, execution & excellenceBanking and financial services   experience, expertise, execution & excellence
Banking and financial services experience, expertise, execution & excellence
 
Logica terminosbasicos presentacion
Logica terminosbasicos presentacionLogica terminosbasicos presentacion
Logica terminosbasicos presentacion
 
The Uncanny Valley - BarCamp Canberra
The Uncanny Valley - BarCamp CanberraThe Uncanny Valley - BarCamp Canberra
The Uncanny Valley - BarCamp Canberra
 
Update - Traumberuf Übersetzer?
Update - Traumberuf Übersetzer?Update - Traumberuf Übersetzer?
Update - Traumberuf Übersetzer?
 
Arline de westmeier sanidad del matrimonio
Arline de westmeier sanidad del matrimonioArline de westmeier sanidad del matrimonio
Arline de westmeier sanidad del matrimonio
 
Tutoría humanismo narcisismo
Tutoría humanismo narcisismoTutoría humanismo narcisismo
Tutoría humanismo narcisismo
 
Bichón maltés o maltés
Bichón maltés o maltésBichón maltés o maltés
Bichón maltés o maltés
 
Carta responsiva ss
Carta responsiva ssCarta responsiva ss
Carta responsiva ss
 
Visión general de HIS-RIS-PACS Integrados
Visión general de HIS-RIS-PACS IntegradosVisión general de HIS-RIS-PACS Integrados
Visión general de HIS-RIS-PACS Integrados
 
thermite welding equipment
thermite welding equipmentthermite welding equipment
thermite welding equipment
 
La pastoral juvenil
La pastoral juvenilLa pastoral juvenil
La pastoral juvenil
 

Similar to Doppl development iteration #1

The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsMarkus Voelter
 
Introduction To Programming with Python-1
Introduction To Programming with Python-1Introduction To Programming with Python-1
Introduction To Programming with Python-1Syed Farjad Zia Zaidi
 
Introduction to Erlang Programming Language
Introduction to Erlang Programming LanguageIntroduction to Erlang Programming Language
Introduction to Erlang Programming LanguageYasas Gunarathne
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development IntroductionDiego Perini
 
Report on c and c++
Report on c and c++Report on c and c++
Report on c and c++oggyrao
 
CS 107 – Introduction to Computing and Programming – Spring 20.docx
CS 107 – Introduction to Computing and Programming – Spring 20.docxCS 107 – Introduction to Computing and Programming – Spring 20.docx
CS 107 – Introduction to Computing and Programming – Spring 20.docxfaithxdunce63732
 
Algorithm and pseudo codes
Algorithm and pseudo codesAlgorithm and pseudo codes
Algorithm and pseudo codeshermiraguilar
 
Getting started in c++
Getting started in c++Getting started in c++
Getting started in c++Neeru Mittal
 
cbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxcbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxSRamadossbiher
 
cbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxcbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxSRamadossbiher
 
Algorithm and c language
Algorithm and c languageAlgorithm and c language
Algorithm and c languagekamalbeydoun
 
Msc prev completed
Msc prev completedMsc prev completed
Msc prev completedmshoaib15
 
Msc prev updated
Msc prev updatedMsc prev updated
Msc prev updatedmshoaib15
 
Unit 1 c - all topics
Unit 1   c - all topicsUnit 1   c - all topics
Unit 1 c - all topicsveningstonk
 

Similar to Doppl development iteration #1 (20)

COMPILER DESIGN- Introduction & Lexical Analysis:
COMPILER DESIGN- Introduction & Lexical Analysis: COMPILER DESIGN- Introduction & Lexical Analysis:
COMPILER DESIGN- Introduction & Lexical Analysis:
 
C notes.pdf
C notes.pdfC notes.pdf
C notes.pdf
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methods
 
python and perl
python and perlpython and perl
python and perl
 
Introduction To Programming with Python-1
Introduction To Programming with Python-1Introduction To Programming with Python-1
Introduction To Programming with Python-1
 
Introduction to Erlang Programming Language
Introduction to Erlang Programming LanguageIntroduction to Erlang Programming Language
Introduction to Erlang Programming Language
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development Introduction
 
Report on c and c++
Report on c and c++Report on c and c++
Report on c and c++
 
Matlab-3.pptx
Matlab-3.pptxMatlab-3.pptx
Matlab-3.pptx
 
CS 107 – Introduction to Computing and Programming – Spring 20.docx
CS 107 – Introduction to Computing and Programming – Spring 20.docxCS 107 – Introduction to Computing and Programming – Spring 20.docx
CS 107 – Introduction to Computing and Programming – Spring 20.docx
 
Algorithm and pseudo codes
Algorithm and pseudo codesAlgorithm and pseudo codes
Algorithm and pseudo codes
 
Getting started in c++
Getting started in c++Getting started in c++
Getting started in c++
 
cbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxcbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptx
 
cbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptxcbybalaguruswami-e-180803051831.pptx
cbybalaguruswami-e-180803051831.pptx
 
Algorithm and c language
Algorithm and c languageAlgorithm and c language
Algorithm and c language
 
Msc prev completed
Msc prev completedMsc prev completed
Msc prev completed
 
Apa style-1 (1)
Apa style-1 (1)Apa style-1 (1)
Apa style-1 (1)
 
Msc prev updated
Msc prev updatedMsc prev updated
Msc prev updated
 
Unit 1 c - all topics
Unit 1   c - all topicsUnit 1   c - all topics
Unit 1 c - all topics
 
C notes
C notesC notes
C notes
 

More from Diego Perini

Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10Diego Perini
 
Doppl development iteration #8
Doppl development   iteration #8Doppl development   iteration #8
Doppl development iteration #8Diego Perini
 
Doppl development iteration #6
Doppl development   iteration #6Doppl development   iteration #6
Doppl development iteration #6Diego Perini
 
Doppl development iteration #5
Doppl development   iteration #5Doppl development   iteration #5
Doppl development iteration #5Diego Perini
 
Doppl development iteration #3
Doppl development   iteration #3Doppl development   iteration #3
Doppl development iteration #3Diego Perini
 
Doppl development iteration #2
Doppl development   iteration #2Doppl development   iteration #2
Doppl development iteration #2Diego Perini
 

More from Diego Perini (6)

Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10
 
Doppl development iteration #8
Doppl development   iteration #8Doppl development   iteration #8
Doppl development iteration #8
 
Doppl development iteration #6
Doppl development   iteration #6Doppl development   iteration #6
Doppl development iteration #6
 
Doppl development iteration #5
Doppl development   iteration #5Doppl development   iteration #5
Doppl development iteration #5
 
Doppl development iteration #3
Doppl development   iteration #3Doppl development   iteration #3
Doppl development iteration #3
 
Doppl development iteration #2
Doppl development   iteration #2Doppl development   iteration #2
Doppl development iteration #2
 

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Doppl development iteration #1

  • 1. DOPPL Data Oriented Parallel Programming Language Development Diary Iteration #1 Covered Concepts: Task Definitions, State Definitions, Grammar Diego PERINI Department of Computer Engineering Istanbul Technical University, Turkey 2013-05-06 1
  • 2. Abstract This paper stands for Doppl language development iteration #1. In this paper, the most common computation structure, a task will be introduced. In order to complete a valid HelloWorld program, a string literal, a halt command and standard output is also defined. 1. Rationale A task is the smallest and only executable entity in Doppl ecosystem. They are cloneable, forkable and controllable according to programmers' needs. Cloned and forked tasks appear to be executed concurrently. They can only be synchronized on transition points. Between each state transition, programmer is able to create new bindings, do arithmetic or logic operations and check conditions for branching before a transition. 2. Task Structure and Grammar Each task is defined by the template below. Italic sections are user defined names and will be explained in detail. Indentation is mandatory and each line can only include one expression. White spaces can be replaced by tabs as long as they satisfy the template below. #This is a line comment and below is a simple, empty task task(range) MyTask { #Below is a state init: { #Init operations } #Another state state1: { #State1 operations } #... } range: Range is a special type of interval definition which is used to constrain number of forks or clones for defined task type. Inside of range can only be filled by literal values due to static typing. ○ An empty range value () means "as many as required" number of task can be created. ○ A single integer value (N) means "exactly N" number of tasks should be created. ○ Two integers separated with a white space (M N) means "at least M, at most N" number of tasks can be created. M should always be less than N. 2
  • 3. ○ ~ character is a valid integer literal that means "maximum amount allowed by the environment" which is a theoretical infinity. MyTask: This field is a user defined name for the declared task. It can only contain alpha numeric values and underscores. It must start with a letter, preferably uppercase by convention. init: This field is a language reserved state name and declares the initial state for its task. Any branching for a newly spawned task is decided in this state block. There is no way for a task to bypass this state. Initial state name must end with a colon ':' character like any other state declaration. state1: This field is a user defined state name for the declared task. It can only contain alpha numeric values and underscores. It must start with a letter preferably lowercase by convention and must end with a colon ':' character. { }: Curly braces define blocks. There are two types of blocks, a task block and a state block. A task block can contain member declarations (will be introduced in later iterations) and states. State blocks can contain bindings and computation related operations. They must contain at least one state transition rule (will be introduced) or a halt command (read further). Curly braces are likely to be removed in the final language proposal to reduce code complexity. Their replacement are likely to be line indentations. #: Hash character defines line comments. Line comments are ignored by the compiler until they meet an endline character. They are used to explain code pieces and are useful to indicate state meanings. 3. Hello World and Standard Output A valid HelloWorld program in Doppl requires two more concepts in order to be completed, string literals and standard output. A string literal is a character sequence enclosed between double quotes (will be improved in next iterations). A string literal can contain special characters such as n for newline or t for tab. Further explanation will be given when primitive types are explained in detail. Standard output is a special binding which can be accessed by any task, named as output. Any assignment made to output (by '=' operator) is directly rendered by system console. It can be perceived as a special variable which outputs its content on change. Its entity type by language means will be explained in further iterations. Below is a valid HelloWorld program written in Doppl. #Outputs "Hello World!" to standard output task(1) HelloWorld { #Init state 3
  • 4. init: { output = "Hello World!" finish } } finish: Finish (all characters lowercase) is a reserved language construct which points to a location (current state) that can be considered as a final state. When an instance or an instance group (cloned set) of a task meet with its or their final state and execute finish, any binding made by that instance group can no longer be accessed. 4. Pseudo Compilation Previous introduction lacks one concept in order to execute the written Doppl program. No entry point is defined in the source. Iteration #1 proposes that entry points of Doppl programs should be given as compiler parameters and they can only be task names. Tasks must specify their range values as 1 in order to be considered as valid entry points. A pseudo compilation command of a Doppl program is given below. doppl helloworld.doppl HelloWorld 5. Conclusion Iteration #1 provides a first look to what a Doppl program look like. It introduces stateful tasks, main computation units of Doppl and proposes a few language constructs to manipulate standard output. Strictly indented typing in Doppl predicts that Doppl source codes are likely to avoid code obfuscation caused by bad practice or dirty programming. A pseudo compilation command is also proposed in this iteration. Finally iteration #1 enforces tasks which are designed to be entry points to exist as singleton in memory. 6. Future Concepts Below are the concepts that are likely to be introduced in next iterations. ● ● ● ● ● ● ● ● Primitive data types Task members Literals Shared members Assignment operator (more) Arithmetic operators State transition operators if conditional 7. License 4