an artist impression of a Star Wars ‘FREECO bike’ (http://starwars.wikia.com)
The history of programming languages shows a continuous search for new composition mechanisms, which are better suited for structuring increasingly complex software systems into modules that can be developed and reused independently. Well-known examples are procedure calls, object aggregation, function composition, inheritance, delegation, mix-ins, aspects, and so forth. Composition mechanisms can address various forms of composition of objects or components at the level of their behavior or interactions, e.g., by design patterns, contracts or explicit protocols. They can be general-purpose, but there is also a wide variety of domain-specific compositions, which are applicable for certain categories of applications.
However, most languages adopt a very small and fixed set of composition mechanisms, usually with explicit notation and predefined semantics. If a language does not provide any mechanisms with the required compositional behavior, programmers need to write workarounds in the application program, which typically have a negative impact on the quality of the software. Alternatively, they may introduce the new composition mechanisms through macros, libraries, frameworks or language extensions, which also negatively affects the application if it is not well-integrated with the application program.
This workshop intends to stimulate research in program-ming languages and software development by exploring the notion that languages should not offer a limited set of fixed composition mechanisms, but allow for flexibility, a wide variety of compositions, domain-specific and tailored compositions, or programmable compositions of various program artifacts.
Mail the organizers at freeco@ewi_utwente_nl (replace underscores with dots).
|A unified model of aspect-instantiation policies
|Flexible structures for end-user programming
|Open reactive dispatch
Call for Participation
In this workshop we want to investigate composition techniques that are ‘free’ in the sense that they are not fixed and limited by specific language or system designs. Instead we intend to explore the notion that languages should not offer a limited set of fixed composition mechanisms, but allow for flexibility, a wide variety of compositions, domain-specific and tailored compositions, or programmable compositions of various program artifacts.
The history of programming languages shows a continuous search for new composition mechanisms to find better ways for structuring increasingly complex software systems into modules that can be developed and reused independently. Composition mechanisms can address various types of dependencies among modules, e.g., inheritance, delegation, aggregation, design patterns, contracts, explicit protocols, or domain-specific compositions.
However, most languages adopt a fixed set of composition mechanisms, usually with explicit notation and predefined semantics. In case a language does not provide any mechanisms with the desired compositional behavior, programmers may need to write workarounds or introduce the new composition mechanism through macros, libraries, frameworks or language extensions.
This workshop intends to stimulate research in programming languages and software development by exploring the notion that todays languages with their limited set of composition mechanisms is insufficient. Instead we should allow compositions that support more flexibility, adopt a wide variety of compositions, domain-specific and tailored compositions, or programmable compositions of various program artifacts.
FREECO is a one-day workshop, co-located with SPLASH in Tucson. The planned workshop agenda interleaves presentation of accepted papers and discussions to stimulate participants. We intend to solicit technical papers of up to 5 pages in ACM style. These papers will be peer-reviewed by the program committee. Accepted papers will be published in the workshop’s proceedings. Authors of papers that are not accepted for publication in the proceedings will be encouraged to shorten their paper into a position statement (see below).
We will allow participating in the workshop without an accepted or even submitted paper, to generate interest in the topic of the workshop. All participants of the workshop are encouraged to formulate a position statement of maximal one page ACM style. These position statements are not reviewed and not published in the workshop proceedings, but they will be made available on the workshop’s homepage before the workshop. All accepted papers will also be published in advance on the workshop homepage. Participants are encouraged to read all position statements and accepted papers before the workshop.
Authors of accepted technical and position papers are required to prepare a presentation of their work. These authors can choose between a traditional presentation of their research and discussion of their work in the style of a writer’s workshop.
A traditional presentations is 30 minutes, followed by a question and answer session of 15 minutes.
The purpose of a writer’s workshop is particularly to improve the quality of papers for submitting extended versions as conference papers in the future. We will follow this format, which is in short:
Authors will present their paper as a lightning talk of at most three slides.
All authors choosing the writer’s workshop format are required to read and prepare all writer’s workshop other papers; other participants are requested to read and prepare at least one such paper (but we strongly encourage them to read all).
One or two participants familiar with the paper summarize it from their perspective. In the plenary discussion, the key points of the paper are supposed to be identified.
Participants discuss what they liked, i.e., what are the strengths of the paper.
Participants discuss constructive suggestions for improving the paper or the approach.
The authors can ask questions to the other participants to clarify their statements.
The discussion of a paper—including the authors presentation—in this format will be allocated a time slot of 45 minutes.
Examples of topics targeted by this workshop include, but are not limited to:
flexible, tailorable composition mechanisms
unified techniques for expressing a wide range of compositions
flexible and adaptable compositions
new composition mechanisms
new module systems
modularity & modularization limitations and capabilities
modularization & composability metrics
tools and case studies
techniques for expressing/introducing domain-specific compositions
general concepts/theories underlying generic composition techniques
languages that are extensible with new composition mechanisms
conflict detection and/or resolution when combining composition mechanisms
formal models for expressing generic or flexible composition mechanisms
design techniques for supporting a wide range of composition mechanisms
We accept two types of papers:
technical papers: up to 5 pages, these will be reviewed and selected for inclusion in the proceedings and (possible) presentation during the workshop.
position papers: one page of position statement w.r.t. the workshop topic. Position papers are not reviewed by the program committee and will not be published formally, but (selected) position statements can be presented briefly during the workshop. Position papers can be submitted by e-mailing them to us: freeco@ewi_utwente_nl (replace underscores with dots).
contact email: freeco@ewi_utwente_nl (replace underscores with dots)
Aspect-oriented composition mechanisms, in particular pointcuts and advice, enable separation of concerns. However, pointcuts and advice make specification and verification more difficult. This talk will present Ptolemy, a language designed with a blend of composition mechanisms from aspect-oriented and implicit invocation languages. The blend is designed to facilitate specification and verification, while still supporting separation of concerns. The talk will explain how the design of Ptolemy overcomes problems with aspect-oriented and implicit invocation languages, and also explain how specification and verification are handled in Ptolemy.
This talk represents joint work with Hridesh Rajan, Mehdi Bagherzadeh (both of Iowa State University) and Jose Sanchez (from UCF).
Gary T. Leavens is a professor and Computer Science at the University of Central Florida (UCF). He joined UCF in August 2007. Previously he was a professor of Computer Science at Iowa State University in Ames, Iowa, where he joined in 1989 after receiving his Ph.D. from MIT. Before his graduate studies at MIT, he worked at Bell Telephone Laboratories in Denver Colorado as a member of technical staff.
Professor Leavens is co-editor-in-chief of the Springer journal Transactions on Aspect-Oriented Software Development, associate editor for the Journal of Object Technology, and assistant editor for Software and Systems Modeling. He is general chair for the ACM SPLASH 2012 conference, and was research program committee chair for the ACM OOPSLA conference in 2009. He is also a member of two IFIP working groups.
As the hardware and the middleware of high-performance computing (HPC) platforms known as super computers are getting complex toward the exa-scale computing era, software engineering supports for HPC programming is getting mandatory. Of course, software composition should be a key technique in this domain but it does not seem to be widely accepted or applied—because composition is NOT FREE. Although a main source of complexity of HPC programs is due to various performance concerns, programmers must pay extra performance penalties for software composition, which is intended to be used to simplify the complicated code for obtaining better performance. In this talk, I will present examples of code complexity in HPC and discuss what we need to develop to overcome this problem of software composition.
Shigeru Chiba is Professor at The University of Tokyo. Before starting his current position, he was Assistant, Associate, and later Full Professor at Tokyo Institute of Technology from 2001 to 2012. Before 2001, he was Assistant Professor at University of Tsukuba. He received his PhD in computer science in 1996 from the University of Tokyo. His research interests are in programming language design, in particular, of object-oriented and/or aspect-oriented programming languages. He is also interested in various kinds of system software including operating systems, distributed systems, and web application frameworks. He has been serving as a program committee member or organizer of a number of prestigious conferences and workshops. He is also a primary developer of Javassist, which is a Java bytecode engineering toolkit widely used in industry and academia.