On Friday October 17, this site was moved to a new server, https://mw.hh.se. The original address will continue to work. Whithin a week or two this site will return to the original address. /Peo HH IT-dep

WG211/M12Smaragdakis: Difference between revisions

From WG 2.11
Jump to navigationJump to search
Created page with "''Forsaking Inheritance: Supercharged Delegation as a Modular OO Primitive'' by Yannis Smaragdakis We propose an OO language design that eschews inheritance completely, in favor..."
 
Yannis (talk | contribs)
No edit summary
 
Line 1: Line 1:
''Forsaking Inheritance: Supercharged Delegation as a Modular OO Primitive'' by Yannis Smaragdakis
''PQL: A Purely-Declarative Java Extension for Parallel Programming'' by Yannis Smaragdakis


We propose an OO language design that eschews inheritance completely, in favor
The popularization of parallelism is arguably the most fundamental
of a combination of class morphing and (deep) delegation. Compared to past
computing challenge for years to come. We present an approach where parallel
delegation approaches, the novel aspect of our design is the ability to
programming takes place in a restricted (sub-Turing-complete), logic-based
emulate the best aspects of inheritance while retaining maximum flexibility:
declarative language, embedded in Java. Our logic-based language, PQL, can
using morphing, a class can select any of the methods of its delegatee and
express the parallel elements of a computing task, while regular Java code captures
export them (if desired) or transform them (e.g., to add extra arguments or
sequential elements. This approach offers a key property: the purely declarative
modify type signatures), yet without needing to name these methods explicitly and handle them
nature of our language allows for aggressive optimization, in much the same way
one-by-one. Compared to past work on morphing, our approach adopts and adapts
that relational queries are optimized by a database engine. At the same time,
advanced delegation mechanisms, in order to add late binding capabilities and,
declarative queries can operate on plain Java data, extending patterns such as
thus, provide a full substitute of inheritance. Additionally, our work
map-reduce to arbitrary levels of nesting and composition complexity.
replaces several common uses of aspect-oriented constructs, yet with strong
We have implemented PQL as extension to a Java compiler and showcase its
type safety guarantees.
expressiveness as well as its scalability compared to competitive techniques for
similar tasks (Java + relational queries, in-memory Hadoop, etc.)

Latest revision as of 14:49, 6 June 2013

PQL: A Purely-Declarative Java Extension for Parallel Programming by Yannis Smaragdakis

The popularization of parallelism is arguably the most fundamental computing challenge for years to come. We present an approach where parallel programming takes place in a restricted (sub-Turing-complete), logic-based declarative language, embedded in Java. Our logic-based language, PQL, can express the parallel elements of a computing task, while regular Java code captures sequential elements. This approach offers a key property: the purely declarative nature of our language allows for aggressive optimization, in much the same way that relational queries are optimized by a database engine. At the same time, declarative queries can operate on plain Java data, extending patterns such as map-reduce to arbitrary levels of nesting and composition complexity. We have implemented PQL as extension to a Java compiler and showcase its expressiveness as well as its scalability compared to competitive techniques for similar tasks (Java + relational queries, in-memory Hadoop, etc.)