Hierarchical Layer-based Class Extensions in Squeak/Smalltalk (bibtex)
by Matthias Springer, Hidehiko Masuhara and Robert Hirschfeld
Abstract:
Class extensions are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same application or in a different one. They suffer from modularity issues if globally visible: Other applications using the same classes are then affected by the modifications. This paper presents a hierarchical approach for dynamically scoping class extensions in dynamically-typed, class-based programming languages supporting class nesting. Our mechanism allows programmers to define the scope of class extensions and to reuse class extensions in other programs. Class extensions can be scoped according to a nested class hierarchy or based on whether programmers regard a potentially affected class as a black box or not. Class extensions are organized in layers, where multiple layers targeting the same class can be active at the same time.
Reference:
Hierarchical Layer-based Class Extensions in Squeak/Smalltalk (Matthias Springer, Hidehiko Masuhara and Robert Hirschfeld), In Proceedings of the Workshop on Live Adaptation of Software Systems (LASSY 2016), included in Companion Proceedings of International Conference on Modularity (Kim Mens, ed.), ACM, 2016.
Bibtex Entry:
@inproceedings{springer2016lassy,
  publisher = {{ACM}},
  month = mar,
  location = {M{\'a}laga, Spain},
  editor = {Kim Mens},
  year = 2016,
  booktitle = {Proceedings of the Workshop on Live Adaptation of Software Systems (LASSY 2016), included in Companion Proceedings of International Conference on Modularity},
  author = {Matthias Springer and Hidehiko Masuhara and Robert Hirschfeld},
  title = {Hierarchical Layer-based Class Extensions in {Squeak/Smalltalk}},
  pages = {107--112},
  doi = {10.1145/2892664.2892682},
  pdf = {lassy2016.pdf},
  abstract = {Class extensions are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same application or in a different one. They suffer from modularity issues if globally visible: Other applications using the same classes are then affected by the modifications. This paper presents a hierarchical approach for dynamically scoping class extensions in dynamically-typed, class-based programming languages supporting class nesting. Our mechanism allows programmers to define the scope of class extensions and to reuse class extensions in other programs. Class extensions can be scoped according to a nested class hierarchy or based on whether programmers regard a potentially affected class as a black box or not. Class extensions are organized in layers, where multiple layers targeting the same class can be active at the same time.}
}
Powered by bibtexbrowser