Font Size: a A A

Implementation Of Model Language Orc In PAR Platform And Its Relative Theory Research

Posted on:2014-05-27Degree:DoctorType:Dissertation
Country:ChinaCandidate:Z YouFull Text:PDF
GTID:1108330425967686Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the rapid development and application of Cloud-computing, the concurrent and distributed computing has become more and more important. The concurrent distributed systems, with the characteristics of concurrency, distributed, real-time, heterogeneity and interoperability, have become the main research areas. But so far, academia and industry are generally considered that theory and technology of concurrent distributed computing are complicated, variable and difficult to control. Therefore, the development of efficient and reliable concurrent program is much more difficult than the sequential program, which has become the bottleneck of concurrent programming problem. The reasons include the complexity and diversity of its system architecture, the lack of mature concurrent programming theory and methods, and the lack of simple and convenient abstraction concurrent programming languages and its supporting tools. From the point of view of programming languages, the concurrenct mechanism in some commonly used programming languages (such as Java, C#, C++) is very complex and cumbersome, so the development process is difficult, low efficiency, long life cycle, and it is difficult to avoid or to explore the implicit errors and defects.Nowadays, there are more research about simple concurrent language. After comparing some typically abstract concurrent model language (such as RSL, Circus, Seuss, Ore and SOOP), we discoveried a new abstract concurrent model language Orc, which is proposed by Prof. Jayadev Misra. Ore language cover all other concurrent languages’features, including simplicity, powerablity, semantics, concurrency, components and services. Ore is not only absorb in the advantages of UNITY and Seuss, but also embody current research hot topic, such as concurrent and distributed computing, service-oriented computing. The Ore’s underlying philosophy-which is that, a) large programs should be composed out of components, which are possibly heterogeneous, b) the system merely orchestrates the executions of its components in some fashion but does not analyze or exploit their internal structures, and c) the theory of orchestration constitutes the essential ingredient in a study of programming.--is also our pursued research purpose.Based on our original research results--abstraction sequential programming language Apia from PAR method/PAR platform, a novel and convenient mechanism for concurrent language is proposed by referencing the Orc. The new sequential and concurrent language Apla+should be implemented in PAR platform, and Apla+ToJava generating prototype system, is designed to support the automatic translation from Apla+ program to Java program.To accomplish the above research objectives, we should solve the following key problems. Firstly, how to discover the implicit concurrent cell and concurrent feature in four types of orchestrate combinators? Secondly, how to exploit the execution relationship among implicit concurrent cells, because sub-expressions in the left or right side of combined expression is not concurrent cell. Thirdly, how to translate recursive Apla+program into non-recursive Java program?In this paper, we discover the implicit concurrent cells and its concurrent relations via dual-dimensional graphical description and formally operational semantics about orchestrate combinators. By importing three intermediate model, including expansion expression, acyclic directed graph and executation order, it is helpful to implement the Apla+concurrent mechanism in PAR platform. The main research results and innovations are as follows:(1) A new concurrent mechanism is proposed by combining the concurrent feature of Orc and abastract sequential programming language Apla. The Apla+language, extending the new mechanism, has some advantages of high-level abstraction, simplicity and generality.Apla+language continues to maintain the simple, convenient and abstract features of the abstract sequential programming language Apia. It expanded Bundle component, orchestrate combinators and expressions concepts to described concurrent characteristics, by borrowing Orc’s key idea. Apia+language allows the user to develop concurrent program just like writing sequential program, and little considering the explicit declaration or definition of basic concurrency units. Apla+language can represent multiple concurrent phenomena and solve larger number of concurrent problems, without distinguishing between process and thread, and without distinguishing shared memory comminication and message passing communication.(2) Using the idea of model-driven software development and generic programming, an refinement algorithm, converting Apla+program goal expression into execution order, is proposed in this paper. We theoretically proof the functional equivalence of model transformation.In order to describe the execution sequence and interaction relation of implicit concurrent units hidden in Apla+program, every goal expression of Apla+concurrent program can be mapped into a semantically equivalent execution order. The proposed refinement algorithm achieved the above function, and the algorithm consists of three model transformation processes:a) model transformation from goal expression to the expansion expression; b) model transformation from expansion expression to acyclic directed graph; c) model transformation from directed acyclic graph to execution order. The three model transformation processes remain semantic equivalence. The front-end subsystem of PAR platform, implemented this refinement algorithm, should be shared by back-end subsystem (including Apla+ToJava generator Apla+ToC++generator、 Apla+ToC#generator).(3) Using generative programming technology, a software development platform prototype, called Apla+ToJava automatic generating system, can be used to automatically convert Apla+abstraction program into executable Java program.The separation of design stage and implementation stage is the important idea about Apla+concurrent programming language. In the design stage, the developed Apla+abstract program is platform independent, and can not be directly translated and executed. In implementation stage, a software development platform (eg Apla+ToJava Automatic Generating System) can automatically convert Apla+abstract program into an executable program (such as Java program). The added rules library includes bundle transfer-rule, combined expressions transfer-rule and implicit concurrent cell transfer-rule. The added components library includes combinators class, semaphore class and channel class.In summary, the simple and convenient concurrent language Apla+and its supporting platform (Apla+ToJava automatically generating prototype system) can greatly promote the development of programming languages, especially simplify concurrent programming and improve the efficiency of concurrent programming.
Keywords/Search Tags:Concurrent and Distributed Computing, Programming Language, OrchestrateCombinators, Concurrent Pattern, Concurrent Cell
PDF Full Text Request
Related items