SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 

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