[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1622123.1622136acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Modularizing crosscuts in an e-commerce application in Lisp using HALO

Published: 01 April 2007 Publication History

Abstract

Some program concerns cannot be cleanly modularized, and their implementation leads to code that is both hard to understand and maintain. In this paper we consider extending an e-commerce application, written in CLOS, with two of such crosscutting concerns. Though most of the time Common Lisp's macro facilities and CLOS' method combinations can be used to modularize crosscuts, we discuss the use of a more declarative solution when crosscuts depend on the execution history. For this purpose we give an overview of HALO, a novel pointcut language based on logic meta programming and temporal logic, which allows one to reason about program execution and (past) program state.

References

[1]
C. Allan, P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. Adding trace matching with free variables to aspectj. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 345--364, New York, NY, USA, 2005. ACM Press.
[2]
D. Bobrow, L. DeMichiel, R. Gabriel, S. Keene, G. Kiczales, and D. Moon. Common lisp object system specification. Lisp and Symbolic Computation, 1(3--4):245--394, January 1989.
[3]
E. Bodden. J-LO - A tool for runtime-checking temporal assertions. Master's thesis, RWTH Aachen university, 2005.
[4]
P. Costanza. A short overview of aspectl. In European Interactive Workshop on Aspects in Software (EIWAS '04), Berlin, Germany, September 23--24 2004.
[5]
M. D'Hondt and V. Jonckers. Hybrid aspects for weaving object-oriented functionality and rule-based knowledge. In Proceedings of the Fourth International Conference on Aspect-Oriented Software Development, 2004.
[6]
R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. Lecture Notes in Computer Science, 2192:170--184, 2001.
[7]
R. Filman and D. Friedman. Aspect-oriented programming is quantification and obliviousness. In Workshop on Advanced Separation of Concerns, OOPSLA 2000, Minneapolis, 2000.
[8]
C. L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence, 19(1):17--37, September 1982.
[9]
K. Gybels and J. Brichau. Arranging language features for more robust pattern-based crosscuts. In Proceedings of the Second International Conference on Aspect-Oriented Software Development, 2003.
[10]
W. Havinga, I. Nagy, L. Bergmans, and M. Aksit. Detecting and resolving ambiguities caused by inter-dependent introductions. In Proceedings of 5th International Conference on Aspect-Oriented Software Development, AOSD2006, 2006.
[11]
C. Herzeel, K. Gybels, and P. Costanza. A temporal logic language for context awareness in pointcuts. In "Workshop on Revival of Dynamic Languages", 2006.
[12]
R. Hirschfeld. Aspect-Oriented Programming with Aspects. In Lecture Notes in Computer Science: Objects, Components, Architectures, Services, and Applications for a Networked World: International Conference NetObjectDays, NODe 2002, Erfurt, Germany, October 7--10, 2002. Revised Papers, 2003.
[13]
A. Kambil and V. Agrawal. E-commerce: The new realities of dynamic pricing. In Outlook journal, July 2001.
[14]
G. Kiczales, J. des Rivières, and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.
[15]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220--242, Berlin, Heidelberg, and New York, 1997. Springer-Verlag.
[16]
I. Kiselev. Aspect-Oriented Programming with AspectJ. Sams, 2002.
[17]
R. Kowalski. Predicate logic as programming language. In IFIP Congress, pages 569--574, 1974. Reprinted in Computers for Artificial Intelligence Applications, (eds. Wah, B. and Li, G.-J.), IEEE Computer Society Press, Los Angeles, 1986, pp. 68--73.
[18]
R. Kowalski. Algorithm = logic + control. Communications of the ACM, 22(7):424--436, 1979.
[19]
C. Lopes, E. Hilsdale, J. Hugunin, M. Kersten, and G. Kiczales. Illustrations of crosscutting. In P. Tarr, M. D'Hondt, C. Lopes, and L. Bergmans, editors, International Workshop on Aspects and Dimensional Computing at ECOOP, 2000.
[20]
I. Nagy. On the Design of Aspect-Oriented Composition Models for Software Evolution. Phd thesis, IPA, May 2006.
[21]
K. Ostermann, M. Mezini, and C. Bockisch. Expressive pointcuts for increased modularity. In European Conference on Object-Oriented Programming, 2005.
[22]
É. Tanter, K. Gybels, M. Denker, and A. Bergel. Context-aware aspects. Lecture Notes in Computer Science, Proceedings of the 5th International Symposium on Software Composition (SC 2006), 4089:227--242, 2006.
[23]
D. B. Tucker and S. Krishnamurthi. Pointcuts and advice in higher-order languages. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 158--167, New York, NY, USA, 2003. ACM Press.
[24]
E. Weitz. Hunchentoot - the common lisp web server formerly known as tbnl. http://weitz.de/hunchentoot/.
[25]
T. Windeln. Logicaj - eine erweiterung von aspectj um logische meta-programmierung. Diploma thesis, CS Dept. III, University of Bonn, Germany, Aug 2003.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ILC '07: Proceedings of the 2007 International Lisp Conference
April 2007
187 pages
ISBN:9781595936189
DOI:10.1145/1622123
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Association of Lisp Users

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 2007

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ILC07
Sponsor:
ILC07: 2007 International Lisp Conference
April 1 - 4, 2007
Cambridge, United Kingdom

Acceptance Rates

Overall Acceptance Rate 18 of 26 submissions, 69%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2018)An expressive stateful aspect languageScience of Computer Programming10.1016/j.scico.2015.02.001102:C(108-141)Online publication date: 31-Dec-2018
  • (2008)Symbiosis in logic-based pointcuts over a history of join pointsProceedings of the 2008 ACM symposium on Applied computing10.1145/1363686.1363751(253-260)Online publication date: 16-Mar-2008
  • (2008)The Meta in Meta-object ArchitecturesObjects, Components, Models and Patterns10.1007/978-3-540-69824-1_13(218-237)Online publication date: 2008
  • (2007)Forward chaining in HALOProceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 200710.1145/1352678.1352689(157-182)Online publication date: 25-Aug-2007
  • (2007)Escaping with Future Variables in HALORuntime Verification10.1007/978-3-540-77395-5_5(51-62)Online publication date: 2007

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media