Paper

Type
INPROCEEDINGS  
Title
DeepFJig - Modular composition of nested classes  
Authors
Elena Zucca, Marco Servetto, Andrea Corradi 
Book
FOOL'10 - Intl. Workshop on Foundations of Object-Oriented Languages  
Abstract
We present a new language design which smoothly integrates modular composition and nesting of Java-like classes. That is, inheritance has been replaced by an expressive set of composition operators, inspired by Bracha's Jigsaw framework, and these operators allow to manipulate (e.g., rename or duplicate) a nested class at any level of depth. Typing is nominal as characteristic of Java-like languages, so types are paths of the form outer. ... .outer.C_1. ... .C_k which, depending on the class (node) where they occur, denote another node in the nesting tree. However, paths denoting the same class are not necessarily equivalent, since they can behave differently w.r.t. composition operators. The resulting language, called DeepFJig, obtains a great expressive power, allowing, e.g., to solve the expression problem, to encode the main AOP mechanisms, and to bring some refactoring techniques at the language level, while keeping a very simple semantics and type system which represent a natural extension for, say, a Java programmer.  
Year
2010  
Bibtex key
CorradiEtAl10  
Paper Url1
http://ecee.colorado.edu/~siek/FOOL2010/corradi-abstract.html  
Bibtex
@INPROCEEDINGS{CorradiEtAl10,
  title = {{DeepFJig - Modular composition of nested classes}},
  author = {Zucca, Elena and Servetto, Marco and Corradi, Andrea},
  booktitle = {FOOL'10 - Intl. Workshop on Foundations of Object-Oriented Languages},
  abstract = {We present a new language design which smoothly integrates modular composition
      and nesting of Java-like classes. 
      That is, inheritance has been replaced by an expressive set of composition
      operators, inspired by  Bracha's Jigsaw framework, and these operators allow to
      manipulate (e.g., rename or duplicate) a nested class at any level of depth.
      Typing is nominal as characteristic of Java-like languages, so types are paths
      of the form outer. ... .outer.C_1. ... .C_k which, depending on the class (node)
      where they occur, denote another node in the nesting tree. However, paths
      denoting the same class are not necessarily equivalent, since they can behave
      differently w.r.t. composition operators.
      
      The resulting language, called DeepFJig, obtains a great expressive power,
      allowing, e.g., to solve the expression problem, to encode the main AOP
      mechanisms, and to bring some refactoring techniques at the language level,
      while keeping a very simple semantics and type system which represent a natural
      extension for, say, a Java programmer.  
      },
  year = {2010},
  url = {http://ecee.colorado.edu/~siek/FOOL2010/corradi-abstract.html},
}
 
Created
2010-10-22 11:49:38  
Modified
2010-10-22 11:56:56