Context-Oriented Algorithmic Design

Authors Bruno Ferreira , António Menezes Leitão



PDF
Thumbnail PDF

File

OASIcs.SLATE.2018.7.pdf
  • Filesize: 1.23 MB
  • 14 pages

Document Identifiers

Author Details

Bruno Ferreira
  • Instituto Superior Técnico/INESC-ID, Lisbon, Portugal
António Menezes Leitão
  • Instituto Superior Técnico/INESC-ID, Lisbon, Portugal

Cite AsGet BibTex

Bruno Ferreira and António Menezes Leitão. Context-Oriented Algorithmic Design. In 7th Symposium on Languages, Applications and Technologies (SLATE 2018). Open Access Series in Informatics (OASIcs), Volume 62, pp. 7:1-7:14, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)
https://doi.org/10.4230/OASIcs.SLATE.2018.7

Abstract

Currently, algorithmic approaches are being introduced in several areas of expertise, namely Architecture. Algorithmic Design (AD) is an approach for architecture that takes advantage of algorithms to produce complex designs, to simplify the exploration of variations, or to mechanize tasks, including those related to analysis and optimization of designs. However, architects might need different models of the same design for different kinds of analysis, which tempts them to extend the same code base for different purposes, typically making the code brittle and hard to understand. In this paper, we propose to extend AD with Context-Oriented Programming (COP), a programming paradigm based on context that dynamically changes the behavior of the code. To this end, we propose a COP library and we explore its combination with an AD tool. Finally, we implement two case studies with our context-oriented approach, and discuss their advantages and disadvantages when compared to the traditional AD approach.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Object oriented languages
Keywords
  • context-oriented programming
  • algorithmic design
  • Python

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Malte Appeltauer, Robert Hirschfeld, Michael Haupt, Jens Lincke, and Michael Perscheid. A comparison of context-oriented programming languages. In International Workshop on Context-Oriented Programming, pages 6:1-6:6, 2009. URL: http://dx.doi.org/10.1145/1562112.1562118.
  2. Malte Appeltauer, Robert Hirschfeld, Michael Haupt, and Hidehiko Masuhara. ContextJ: Context-oriented programming with Java. Information and Media Technologies, 6(2):399-419, 2011. Google Scholar
  3. Malte Appeltauer, Robert Hirschfeld, Hidehiko Masuhara, Michael Haupt, and Kazunori Kawauchi. Event-specific software composition in context-oriented programming. In Software Composition, volume 6144, pages 50-65, 2010. Google Scholar
  4. Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Common Lisp object system specification. ACM-SIGPLAN Notices, 23, 1988. Google Scholar
  5. Pascal Costanza and Robert Hirschfeld. Language constructs for context-oriented programming: an overview of contextL. In Symposium on Dynamic languages, pages 1-10, 2005. Google Scholar
  6. Sofia Feist, Guilherme Barreto, Bruno Ferreira, and António Leitão. Portable generative design for building information modelling. In Living Systems and Micro-Utopias: Towards Continuous Designing - 21st International Conference of the Association for Computer-Aided Architectural Design Research in Asia, pages 147-156, 2016. Google Scholar
  7. Michael L. Gassanenko. Context-oriented programming. In EuroForth'98 Conference, 1998. Google Scholar
  8. Sebastián González, Nicolás Cardozo, Kim Mens, Alfredo Cádiz, Jean-Christophe Libbrecht, and Julien Goffaux. Subjective-C: Bringing context to mobile platform programming. In International Conference on Software Language Engineering, pages 246-265, 2010. Google Scholar
  9. Sebastián González, Kim Mens, and Alfredo Cádiz. Context-oriented programming with the ambient object system. Journal of Universal Computer Science, 14(20):3307-3332, 2008. URL: http://dx.doi.org/10.3217/jucs-014-20-3307.
  10. William Harrison and Harold Ossher. Subject-oriented programming: a critique of pure objects. SIGPLAN Notices, 28(10):411-428, 1993. URL: http://dx.doi.org/10.1145/167962.165932.
  11. Robert Hirschfeld, Pascal Costanza, and Michael Haupt. An introduction to context-oriented programming with ContextS. In Generative and Transformational Techniques in Software Engineering II, pages 396-407. Springer, 2008. URL: http://dx.doi.org/10.1007/978-3-540-88643-3_9.
  12. Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz. Context-oriented programming. Journal of Object Technology, 7(3):125-151, 2008. Google Scholar
  13. Robert Hirschfeld, Michael Perscheid, Christian Schubert, and Malte Appeltauer. Dynamic contract layers. In ACM Symposium on Applied Computing, pages 2169-2175, 2010. Google Scholar
  14. Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. Designing event-based context transition in context-oriented programming. In 2nd International Workshop on Context-Oriented Programming, pages 2:1-2:6, 2010. URL: http://dx.doi.org/10.1145/1930021.1930023.
  15. Gregor Kiczales, Jim Des Rivieres, and Daniel Gureasko Bobrow. The art of the metaobject protocol. MIT press, 1991. Google Scholar
  16. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William Griswold. An overview of AspectJ. In European Conference on Object-Oriented Programming, pages 327-354, 2001. Google Scholar
  17. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In European Conference on Object-Oriented Programming, pages 220-242, 1997. Google Scholar
  18. Ant]onio Leitão, Renata Castelo Branco, and Carmo Cardoso. Algorithmic-based analysis - design and analysis in a multi back-end generative tool. In Protocols, Flows, and Glitches: 22nd CAADRIA Conference, pages 137-147, 2017. Google Scholar
  19. Jens Lincke, Malte Appeltauer, Bastian Steinert, and Robert Hirschfeld. An open implementation for context-oriented layer composition in ContextJS. Science of Computer Programming, 76(12):1194-1209, 2011. Google Scholar
  20. José Lopes and António Leitão. Portable generative design for CAD applications. In 31st Conference of the Association for Computed Aided Design in Architecture, pages 196-203, 2011. Google Scholar
  21. Jon McCormack, Alan Dorin, and Troy Innocent. Generative design: a paradigm for design research. Proceedings of Futureground, Design Research Society, 2004. Google Scholar
  22. Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. JavaCtx: seamless toolchain integration for context-oriented programming. In 3rd International Workshop on Context-Oriented Programming, pages 4:1-4:6, 2011. URL: http://dx.doi.org/10.1145/2068736.2068740.
  23. Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. Context-oriented programming: A software engineering perspective. Journal of Systems and Software, 85(8):1801-1817, 2012. URL: http://dx.doi.org/10.1016/j.jss.2012.03.024.
  24. Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. ContextErlang: introducing context-oriented programming in the actor model. In 11th International Conference on Aspect-oriented Software Development, pages 191-202, 2012. URL: http://dx.doi.org/10.1145/2162049.2162072.
  25. Hans Schippers, Michael Haupt, and Robert Hirschfeld. An implementation substrate for languages composing modularized crosscutting concerns. In ACM Symposium on Applied Computing, pages 1944-1951, 2009. Google Scholar
  26. Gregor Schmidt. ContextR &ContextWiki. Master’s thesis, Hasso-Plattner-Institut, Potsdam, 2008. Google Scholar
  27. Randall B Smith and David Ungar. A simple and unifying approach to subjective objects. Theory and Practice of Object Systems, 2(3):161-178, 1996. Google Scholar
  28. Jorge Vallejos, Sebastián González, Pascal Costanza, Wolfgang De Meuter, Theo D'Hondt, and Kim Mens. Predicated generic functions. In Software Composition, volume 6144, pages 66-81, 2010. Google Scholar
  29. Ramon van der Heijden, Evan Levelle, and Martin Riese. Parametric building information generation for design and construction. In Computational Ecologies: Design in the Anthropocene - 35th Annual Conference of the Association for Computer Aided Design in Architecture, pages 417-429, 2015. Google Scholar
  30. Martin Von Löwis, Marcus Denker, and Oscar Nierstrasz. Context-oriented programming: beyond layers. In Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007, pages 143-156. ACM, 2007. Google Scholar
  31. Benjamin Hosain Wasty, Amir Semmo, Malte Appeltauer, Bastian Steinert, and Robert Hirschfeld. ContextLua: dynamic behavioral variations in computer games. In 2nd International Workshop on Context-Oriented Programming, pages 5:1-5:6. ACM, 2010. URL: http://dx.doi.org/10.1145/1930021.1930026.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail