SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
DOPPL
Data Oriented Parallel Programming Language

Development Diary
Iteration #10

Covered Concepts:
Target Language for Compilation,
Open Doppl Project

Diego PERINI
Department of Computer Engineering
Istanbul Technical University, Turkey
2013-09-25

1
Abstract
This paper stands for Doppl language development iteration #10. In this paper, compilation
specifications of the Doppl will be discussed. Open Doppl project and its manifesto is officially declared.

1. Rationale
Doppl has been planned to be a cross compiled language since it provided higher level
capabilities compared to C like low languages. Already tested and verified memory model of languages
like C++, Java and C# stand to be very appropriate decisions as their latest revisions provide great tools to
achieve concurrency in a secure and semantically clear way.

2. Cross Compilation To C++11
Introduction paper of Doppl development stated that virtual machines do not provide necessary
flexibility to store blocks of data in a data oriented manner. Data oriented programs require direct access
to hardware registers and memory in order to fully make use of hardware level caches which is a critically
essential feature of Doppl. This requirement has greatly narrowed the set of possible target languages
since both Java and C# implementations mostly depend on existence of a virtual machine.
C++03 lacked necessary standard libraries to handle concurrency natively which threw the
language behind on the concurrency race. Latest accepted revision of C++ is now widely accepted by
its community and almost completely supported by leading compilers. It is named as C++11 (C++0x
formerly) after its approval by ISO on 12 August 2011. It is decided that newer versions of C++ will not
be standardized at a slow pace as previous ones and the language will continue to evolve with a cycle of
3 years for each version. C++14 and C++17 therefore has already started to be discussed and proposals
for new features as well as depreciation and replacement requests are being submitted each day. Newly
introduced C++11 features can be categorized in two main topics, language features and library features.
C++11 comes with new syntax rules to support functional programming, meta programming and
move semantics better. It introduces lambda functions, closures, advanced templating techniques and
transferable temporaries. These are concepts that could not be achieved previously or they required
unusual workarounds in order to be implemented properly.
Standard library of C++03 has greatly improved to fully and portably support concurrency,
regular expressions, atomic expressions, higher order functions, automatic memory handles,
randomization and useful set of containers. Some outdated objects and functions from C++03 has been
marked as deprecated and replaced with newer and better counterparts.
These new features and abilities granted to C++ is greatly fixed the decision of target language
for Doppl compilation. It is now officially declared that Doppl programs will be compiled into modern
C++11.
Compiled Doppl programs will directly result in executable binaries or libraries. Unless specified
by user via a compilation parameter, midware C++ code will not become visible and will immediately be
discarded after compilation. It will be possible to keep precompiled files to speed up compilation process
for unedited sources.

2
3. Openness Manifesto
Doppl standard and compilation toolchain is officially decided to be available as open source
and will always continue to be open. Development process will always be transparent and a website to
maintain all the aspects mentioned above will be hosted under http://doppl.org domain. A mailing
group will be formed to accept any kind of language proposals, suggestions and comments for best
language evolution.
The final open source license is yet to be formed, nonetheless there will be no legal constraints
to prevent commercial use. In order to maintain transparency during development without the danger of
being consumed by commercial acquisitions, these diary entries are licensed under CC BY-SA 3.0 until
further notice as it enforces users of these materials to publish their work by the same license as well.

4. Conclusion
Iteration #10 officially declares that Doppl programs will compile into modern C++11. Formed
midware C++ sources will highly make use of newly introduced C++ features. It will be possible to
access these midware files by hackers in order to implement optimizations as well as reveal concurrency
and data oriented methodology of Doppl. Doppl project is open and will fully be available for commercial
use free of charge.

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

Parameterized branching, states as member type, anonymous states
if conditional, trueness
Bit data type
Locks
Primitive Collections and basic collection operators
Provision operators
Predefined task members
Tasks as members
Task and data traits
Custom data types and defining traits
Built-in traits for primitive data types
Formatted input and output
Message passing
Exception states
Dynamic Memory
Multiple Source Files

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

3

Contenu connexe

Tendances

Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C Language
Kamal Acharya
 
Ndu06 typesof language
Ndu06 typesof languageNdu06 typesof language
Ndu06 typesof language
nicky_walters
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
Alpana Gupta
 
Programming Languages An Intro
Programming Languages An IntroProgramming Languages An Intro
Programming Languages An Intro
Kimberly De Guzman
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
Varun Garg
 

Tendances (20)

A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGESPROGRAMMING LANGUAGES
PROGRAMMING LANGUAGES
 
Itc chapter # 8
Itc   chapter # 8Itc   chapter # 8
Itc chapter # 8
 
Programing Language
Programing LanguagePrograming Language
Programing Language
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C Language
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
 
Theory of programming
Theory of programmingTheory of programming
Theory of programming
 
Introduction to c language
Introduction to c language Introduction to c language
Introduction to c language
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
 
Ndu06 typesof language
Ndu06 typesof languageNdu06 typesof language
Ndu06 typesof language
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
C Programming language - introduction
C Programming  language - introduction  C Programming  language - introduction
C Programming language - introduction
 
Programming.language
Programming.languageProgramming.language
Programming.language
 
Programming Languages An Intro
Programming Languages An IntroProgramming Languages An Intro
Programming Languages An Intro
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
introduction to c language
 introduction to c language introduction to c language
introduction to c language
 

Similaire à Doppl development iteration #10

Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming Languages
Tammy Moncrief
 
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docxPROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
wkyra78
 
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...
Laura Martin
 

Similaire à Doppl development iteration #10 (20)

20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx20210417-cppRelevancy-DataStructures.pptx
20210417-cppRelevancy-DataStructures.pptx
 
What is C.docx
What is C.docxWhat is C.docx
What is C.docx
 
6 Week C++ Language Training In Ambala
6 Week C++ Language Training In Ambala6 Week C++ Language Training In Ambala
6 Week C++ Language Training In Ambala
 
11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project
 
Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming Languages
 
What is c#
What is c#What is c#
What is c#
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
 
C c#
C c#C c#
C c#
 
sheet 1.docx
sheet 1.docxsheet 1.docx
sheet 1.docx
 
Intermediate Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
 
C tutorial
C tutorialC tutorial
C tutorial
 
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docxPROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
PROGRAMMING L ANGUAGES1The Ideal HPC Programming Langu.docx
 
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...
 
CSCorganization of programming languages
CSCorganization of programming languagesCSCorganization of programming languages
CSCorganization of programming languages
 
Programming in c plus plus2
Programming in c plus plus2Programming in c plus plus2
Programming in c plus plus2
 
Why is cold fusion better than c#
Why is cold fusion better than c#Why is cold fusion better than c#
Why is cold fusion better than c#
 
Which Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdfWhich Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdf
 
C# Introduction brief
C# Introduction briefC# Introduction brief
C# Introduction brief
 
Characteristics of c#
Characteristics of c#Characteristics of c#
Characteristics of c#
 

Plus de Diego Perini

Plus de Diego Perini (10)

Doppl development iteration #8
Doppl development   iteration #8Doppl development   iteration #8
Doppl development iteration #8
 
Doppl development iteration #7
Doppl development   iteration #7Doppl development   iteration #7
Doppl development iteration #7
 
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 #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
 
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
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development Introduction
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Doppl development iteration #10

  • 1. DOPPL Data Oriented Parallel Programming Language Development Diary Iteration #10 Covered Concepts: Target Language for Compilation, Open Doppl Project Diego PERINI Department of Computer Engineering Istanbul Technical University, Turkey 2013-09-25 1
  • 2. Abstract This paper stands for Doppl language development iteration #10. In this paper, compilation specifications of the Doppl will be discussed. Open Doppl project and its manifesto is officially declared. 1. Rationale Doppl has been planned to be a cross compiled language since it provided higher level capabilities compared to C like low languages. Already tested and verified memory model of languages like C++, Java and C# stand to be very appropriate decisions as their latest revisions provide great tools to achieve concurrency in a secure and semantically clear way. 2. Cross Compilation To C++11 Introduction paper of Doppl development stated that virtual machines do not provide necessary flexibility to store blocks of data in a data oriented manner. Data oriented programs require direct access to hardware registers and memory in order to fully make use of hardware level caches which is a critically essential feature of Doppl. This requirement has greatly narrowed the set of possible target languages since both Java and C# implementations mostly depend on existence of a virtual machine. C++03 lacked necessary standard libraries to handle concurrency natively which threw the language behind on the concurrency race. Latest accepted revision of C++ is now widely accepted by its community and almost completely supported by leading compilers. It is named as C++11 (C++0x formerly) after its approval by ISO on 12 August 2011. It is decided that newer versions of C++ will not be standardized at a slow pace as previous ones and the language will continue to evolve with a cycle of 3 years for each version. C++14 and C++17 therefore has already started to be discussed and proposals for new features as well as depreciation and replacement requests are being submitted each day. Newly introduced C++11 features can be categorized in two main topics, language features and library features. C++11 comes with new syntax rules to support functional programming, meta programming and move semantics better. It introduces lambda functions, closures, advanced templating techniques and transferable temporaries. These are concepts that could not be achieved previously or they required unusual workarounds in order to be implemented properly. Standard library of C++03 has greatly improved to fully and portably support concurrency, regular expressions, atomic expressions, higher order functions, automatic memory handles, randomization and useful set of containers. Some outdated objects and functions from C++03 has been marked as deprecated and replaced with newer and better counterparts. These new features and abilities granted to C++ is greatly fixed the decision of target language for Doppl compilation. It is now officially declared that Doppl programs will be compiled into modern C++11. Compiled Doppl programs will directly result in executable binaries or libraries. Unless specified by user via a compilation parameter, midware C++ code will not become visible and will immediately be discarded after compilation. It will be possible to keep precompiled files to speed up compilation process for unedited sources. 2
  • 3. 3. Openness Manifesto Doppl standard and compilation toolchain is officially decided to be available as open source and will always continue to be open. Development process will always be transparent and a website to maintain all the aspects mentioned above will be hosted under http://doppl.org domain. A mailing group will be formed to accept any kind of language proposals, suggestions and comments for best language evolution. The final open source license is yet to be formed, nonetheless there will be no legal constraints to prevent commercial use. In order to maintain transparency during development without the danger of being consumed by commercial acquisitions, these diary entries are licensed under CC BY-SA 3.0 until further notice as it enforces users of these materials to publish their work by the same license as well. 4. Conclusion Iteration #10 officially declares that Doppl programs will compile into modern C++11. Formed midware C++ sources will highly make use of newly introduced C++ features. It will be possible to access these midware files by hackers in order to implement optimizations as well as reveal concurrency and data oriented methodology of Doppl. Doppl project is open and will fully be available for commercial use free of charge. 5. Future Concepts Below are the concepts that are likely to be introduced in next iterations. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Parameterized branching, states as member type, anonymous states if conditional, trueness Bit data type Locks Primitive Collections and basic collection operators Provision operators Predefined task members Tasks as members Task and data traits Custom data types and defining traits Built-in traits for primitive data types Formatted input and output Message passing Exception states Dynamic Memory Multiple Source Files 6. License CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/ 3