SlideShare ist ein Scribd-Unternehmen logo
1 von 4
Downloaden Sie, um offline zu lesen
DOPPL
Data Oriented Parallel Programming Language

Development Diary
Iteration #3

Covered Concepts:
Access Modifiers, Assignment Operator

Diego PERINI
Department of Computer Engineering
Istanbul Technical University, Turkey
2013-07-20

1
Abstract
This paper stands for Doppl language development iteration #3. In this paper, shared data
members and using assignment operator to access/copy those bindings will be introduced. An example
task group with 2 cloned tasks is used as an example program.

1. Rationale
Doppl tasks can make use of different kind of access modifiers to store its members. Previous
iteration introduced an implied one, called a private data. Private datas are copied blocks of memory
and their values may differ between tasks of the same task group. It is possible to mark a member as
non-private via access modifiers. Language operators behave differently to non-private members. This
iteration will only introduce shared members and assignment operation of a shared member for each kind
of possible scenario.

2. Shared Members
To declare a member as shared, a simple shared prefix is sufficient. Shared members only
allocate one block of memory per task group and any task can change the value. Accessing a shared
member is intrinsically mutually exclusive. No extra atomic operations are required to read and write to a
shared member.
Below is a sample task group of 2 tasks which share a single member.
#An example task group of 2 tasks
task(2) SharingMembers {
data a_private_string = string
shared data a_shared_string = string
#Examples
init: {
a_private_string = "I am private!"
a_shared_string = "I am shared!"
}
}

3. Assignment Operator and Standard Output
Assigning values to shared member and outputting values of such members rise some ambiguities
possible to be reason of common mistakes. Each ambiguity scenario is explained below in detail.

#An example task group of 2 tasks
task(2) SharingMembers {

2
data private_ = byte
shared data shared_ = byte
...
}

Assuming Task_A and Task_B of same task group (SharingMembers) have their
corresponding members allocated:
●

private_ = any_value #Executed on Task_A
It is a simple block copy operation. Each member have its own unique memory position
and therefore can have different values on runtime. Only private_ of Task_A is affected.

●

shared_ = any_value #Executed on Task_A
shared_ = any_value #Executed on Task_B
Both mean the exact same thing, a block copy to the shared memory location is
conducted. It is therefore considered as common practice to pick reasonable names for
shared members to prevent ambiguities.

Printing member values to standard output needs extra care since each task may have different
private member values. In order to conduct a synchronized and maintained output operation, a new kind
of messaging mechanism will be introduced in the future.
Assigning one type of value to another member type is forbidden in Doppl, thus the following
source code is not valid. Conversion rules which are subjects of another iteration will be introduced to fill
the necessity of typecasting.
data an_int = int
data a_float = float
init: {
an_int = a_float #Invalid assignment
}

4. Conclusion
Iteration #3 introduces shared task members and explains how they are allocated in the memory.
Benefits and risks of using assignment operator between different kind of members is explained.

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

A boolean type
Arithmetic, relational, boolean and binary operators
String Concatenation
Standard input and output
if conditional and trueness
State transition operators
Primitive collections and basic collection operators
Provision operators
Tasks as members
Task and data traits
Custom data types and defining traits
Built-in traits for primitive data types
Message passing

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

4

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Structure in c#
Structure in c#Structure in c#
Structure in c#
 
Doppl development iteration #2
Doppl development   iteration #2Doppl development   iteration #2
Doppl development iteration #2
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructors
 
Structures and Pointers
Structures and PointersStructures and Pointers
Structures and Pointers
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 
Object oriented programming concept
Object oriented programming conceptObject oriented programming concept
Object oriented programming concept
 
Inheritance
InheritanceInheritance
Inheritance
 
SE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTSE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPT
 
Strings in c#
Strings in c#Strings in c#
Strings in c#
 
Chapter 6 OOPS Concept
Chapter 6 OOPS ConceptChapter 6 OOPS Concept
Chapter 6 OOPS Concept
 
Oops slide
Oops slide Oops slide
Oops slide
 
Oop concept
Oop conceptOop concept
Oop concept
 
Question bank unit i
Question bank unit iQuestion bank unit i
Question bank unit i
 
principle of oop’s in cpp
principle of oop’s in cppprinciple of oop’s in cpp
principle of oop’s in cpp
 
Java Programming Paradigms Chapter 1
Java Programming Paradigms Chapter 1 Java Programming Paradigms Chapter 1
Java Programming Paradigms Chapter 1
 
Inheritance
InheritanceInheritance
Inheritance
 
object oriented programing lecture 1
object oriented programing lecture 1object oriented programing lecture 1
object oriented programing lecture 1
 
Basic concept of Object Oriented Programming
Basic concept of Object Oriented Programming Basic concept of Object Oriented Programming
Basic concept of Object Oriented Programming
 
A Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text SummarizationA Survey of Various Methods for Text Summarization
A Survey of Various Methods for Text Summarization
 
Doppl development iteration #7
Doppl development   iteration #7Doppl development   iteration #7
Doppl development iteration #7
 

Andere mochten auch

Bolu pegasus ucuz uçak bileti telefon
Bolu pegasus ucuz  uçak bileti telefonBolu pegasus ucuz  uçak bileti telefon
Bolu pegasus ucuz uçak bileti telefonhasan ahmet
 
Historias do Asorey (Semanas da Ciencia)
Historias do Asorey (Semanas da Ciencia)Historias do Asorey (Semanas da Ciencia)
Historias do Asorey (Semanas da Ciencia)iesasorey
 
عيش حياتك-محمد الصاوى
 عيش حياتك-محمد الصاوى عيش حياتك-محمد الصاوى
عيش حياتك-محمد الصاوىابراهيم حسن
 
Disclosure profile
Disclosure profileDisclosure profile
Disclosure profileemily64
 
Bartın pegasus ucuz uçak bileti telefon
Bartın pegasus ucuz  uçak bileti telefonBartın pegasus ucuz  uçak bileti telefon
Bartın pegasus ucuz uçak bileti telefonhasan ahmet
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development IntroductionDiego Perini
 

Andere mochten auch (8)

Bolu pegasus ucuz uçak bileti telefon
Bolu pegasus ucuz  uçak bileti telefonBolu pegasus ucuz  uçak bileti telefon
Bolu pegasus ucuz uçak bileti telefon
 
Historias do Asorey (Semanas da Ciencia)
Historias do Asorey (Semanas da Ciencia)Historias do Asorey (Semanas da Ciencia)
Historias do Asorey (Semanas da Ciencia)
 
عيش حياتك-محمد الصاوى
 عيش حياتك-محمد الصاوى عيش حياتك-محمد الصاوى
عيش حياتك-محمد الصاوى
 
Web1012 slide 2
Web1012   slide 2Web1012   slide 2
Web1012 slide 2
 
Disclosure profile
Disclosure profileDisclosure profile
Disclosure profile
 
Bartın pegasus ucuz uçak bileti telefon
Bartın pegasus ucuz  uçak bileti telefonBartın pegasus ucuz  uçak bileti telefon
Bartın pegasus ucuz uçak bileti telefon
 
Proyecto de aula III
Proyecto de aula IIIProyecto de aula III
Proyecto de aula III
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development Introduction
 

Ähnlich wie Doppl development iteration #3

Doppl development iteration #8
Doppl development   iteration #8Doppl development   iteration #8
Doppl development iteration #8Diego Perini
 
Ch 1 Introduction to Object Oriented Programming.pptx
Ch 1 Introduction to Object Oriented Programming.pptxCh 1 Introduction to Object Oriented Programming.pptx
Ch 1 Introduction to Object Oriented Programming.pptxMahiDivya
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNicole Gomez
 
Tcs NQTExam technical questions
Tcs NQTExam technical questionsTcs NQTExam technical questions
Tcs NQTExam technical questionsAniketBhandare2
 
Software Systems Modularization
Software Systems ModularizationSoftware Systems Modularization
Software Systems Modularizationchiao-fan yang
 
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...IDES Editor
 
Neural Network in Knowledge Bases
Neural Network in Knowledge BasesNeural Network in Knowledge Bases
Neural Network in Knowledge BasesKushal Arora
 
python interview prep question , 52 questions
python interview prep question , 52 questionspython interview prep question , 52 questions
python interview prep question , 52 questionsgokul174578
 
APL-2-classes and objects.ppt
APL-2-classes and objects.pptAPL-2-classes and objects.ppt
APL-2-classes and objects.pptsrividyal2
 
Technical_Interview_Questions.pdf
Technical_Interview_Questions.pdfTechnical_Interview_Questions.pdf
Technical_Interview_Questions.pdfadityashukla939020
 
Introduction to Java -unit-1
Introduction to Java -unit-1Introduction to Java -unit-1
Introduction to Java -unit-1RubaNagarajan
 
ADK COLEGE.pptx
ADK COLEGE.pptxADK COLEGE.pptx
ADK COLEGE.pptxAshirwad2
 
Functional programming in TypeScript
Functional programming in TypeScriptFunctional programming in TypeScript
Functional programming in TypeScriptbinDebug WorkSpace
 

Ähnlich wie Doppl development iteration #3 (20)

Doppl development iteration #8
Doppl development   iteration #8Doppl development   iteration #8
Doppl development iteration #8
 
C Programming - Refresher - Part IV
C Programming - Refresher - Part IVC Programming - Refresher - Part IV
C Programming - Refresher - Part IV
 
Ch 1 Introduction to Object Oriented Programming.pptx
Ch 1 Introduction to Object Oriented Programming.pptxCh 1 Introduction to Object Oriented Programming.pptx
Ch 1 Introduction to Object Oriented Programming.pptx
 
Unit 5
Unit 5Unit 5
Unit 5
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
 
Tcs NQTExam technical questions
Tcs NQTExam technical questionsTcs NQTExam technical questions
Tcs NQTExam technical questions
 
Software Systems Modularization
Software Systems ModularizationSoftware Systems Modularization
Software Systems Modularization
 
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...
Possible Algorithms of 2NF and 3NF for DBNorma- A tool for Relational Databas...
 
Nn kb
Nn kbNn kb
Nn kb
 
Neural Network in Knowledge Bases
Neural Network in Knowledge BasesNeural Network in Knowledge Bases
Neural Network in Knowledge Bases
 
Java unit 7
Java unit 7Java unit 7
Java unit 7
 
python interview prep question , 52 questions
python interview prep question , 52 questionspython interview prep question , 52 questions
python interview prep question , 52 questions
 
APL-2-classes and objects.ppt
APL-2-classes and objects.pptAPL-2-classes and objects.ppt
APL-2-classes and objects.ppt
 
Technical_Interview_Questions.pdf
Technical_Interview_Questions.pdfTechnical_Interview_Questions.pdf
Technical_Interview_Questions.pdf
 
Basics of Java
Basics of JavaBasics of Java
Basics of Java
 
Introduction to Java -unit-1
Introduction to Java -unit-1Introduction to Java -unit-1
Introduction to Java -unit-1
 
ADK COLEGE.pptx
ADK COLEGE.pptxADK COLEGE.pptx
ADK COLEGE.pptx
 
Bai giang-uml-11feb14
Bai giang-uml-11feb14Bai giang-uml-11feb14
Bai giang-uml-11feb14
 
MCA NOTES.pdf
MCA NOTES.pdfMCA NOTES.pdf
MCA NOTES.pdf
 
Functional programming in TypeScript
Functional programming in TypeScriptFunctional programming in TypeScript
Functional programming in TypeScript
 

Mehr von Diego Perini

Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10Diego 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 #4
Doppl development   iteration #4Doppl development   iteration #4
Doppl development iteration #4Diego Perini
 
Doppl development iteration #1
Doppl development   iteration #1Doppl development   iteration #1
Doppl development iteration #1Diego Perini
 
Doppl development iteration #9
Doppl development   iteration #9Doppl development   iteration #9
Doppl development iteration #9Diego Perini
 

Mehr von Diego Perini (6)

Doppl development iteration #10
Doppl development   iteration #10Doppl development   iteration #10
Doppl development iteration #10
 
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 #4
Doppl development   iteration #4Doppl development   iteration #4
Doppl development iteration #4
 
Doppl development iteration #1
Doppl development   iteration #1Doppl development   iteration #1
Doppl development iteration #1
 
Doppl development iteration #9
Doppl development   iteration #9Doppl development   iteration #9
Doppl development iteration #9
 

Kürzlich hochgeladen

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Doppl development iteration #3

  • 1. DOPPL Data Oriented Parallel Programming Language Development Diary Iteration #3 Covered Concepts: Access Modifiers, Assignment Operator Diego PERINI Department of Computer Engineering Istanbul Technical University, Turkey 2013-07-20 1
  • 2. Abstract This paper stands for Doppl language development iteration #3. In this paper, shared data members and using assignment operator to access/copy those bindings will be introduced. An example task group with 2 cloned tasks is used as an example program. 1. Rationale Doppl tasks can make use of different kind of access modifiers to store its members. Previous iteration introduced an implied one, called a private data. Private datas are copied blocks of memory and their values may differ between tasks of the same task group. It is possible to mark a member as non-private via access modifiers. Language operators behave differently to non-private members. This iteration will only introduce shared members and assignment operation of a shared member for each kind of possible scenario. 2. Shared Members To declare a member as shared, a simple shared prefix is sufficient. Shared members only allocate one block of memory per task group and any task can change the value. Accessing a shared member is intrinsically mutually exclusive. No extra atomic operations are required to read and write to a shared member. Below is a sample task group of 2 tasks which share a single member. #An example task group of 2 tasks task(2) SharingMembers { data a_private_string = string shared data a_shared_string = string #Examples init: { a_private_string = "I am private!" a_shared_string = "I am shared!" } } 3. Assignment Operator and Standard Output Assigning values to shared member and outputting values of such members rise some ambiguities possible to be reason of common mistakes. Each ambiguity scenario is explained below in detail. #An example task group of 2 tasks task(2) SharingMembers { 2
  • 3. data private_ = byte shared data shared_ = byte ... } Assuming Task_A and Task_B of same task group (SharingMembers) have their corresponding members allocated: ● private_ = any_value #Executed on Task_A It is a simple block copy operation. Each member have its own unique memory position and therefore can have different values on runtime. Only private_ of Task_A is affected. ● shared_ = any_value #Executed on Task_A shared_ = any_value #Executed on Task_B Both mean the exact same thing, a block copy to the shared memory location is conducted. It is therefore considered as common practice to pick reasonable names for shared members to prevent ambiguities. Printing member values to standard output needs extra care since each task may have different private member values. In order to conduct a synchronized and maintained output operation, a new kind of messaging mechanism will be introduced in the future. Assigning one type of value to another member type is forbidden in Doppl, thus the following source code is not valid. Conversion rules which are subjects of another iteration will be introduced to fill the necessity of typecasting. data an_int = int data a_float = float init: { an_int = a_float #Invalid assignment } 4. Conclusion Iteration #3 introduces shared task members and explains how they are allocated in the memory. Benefits and risks of using assignment operator between different kind of members is explained. 3
  • 4. 5. Future Concepts Below are the concepts that are likely to be introduced in next iterations. ● ● ● ● ● ● ● ● ● ● ● ● ● A boolean type Arithmetic, relational, boolean and binary operators String Concatenation Standard input and output if conditional and trueness State transition operators Primitive collections and basic collection operators Provision operators Tasks as members Task and data traits Custom data types and defining traits Built-in traits for primitive data types Message passing 6. License CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/ 4