Do we really need to extend syntax for advanced modularity?

For every new language construct (or abstraction), we have been always developing new syntax. Is this a right approach? In this paper, we propose that, if we develop a new language construct for advanced modularity, we should consider the use of dynamic text for designing the construct. We mention that language constructs designed with only syntactic extensions (i.e. static text) are not satisfactory in aspect oriented programming. Then we present our two prototype systems to demonstrate language constructs designed with dynamic text. One is synchronous copy and paste and the other is a virtual-file editor named Kide. We show how they enable aspect-oriented programming in plain Java.

[1]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[2]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[3]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[4]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[5]  Gregor Kiczales,et al.  Fluid AOP join point models , 2006, OOPSLA '06.

[6]  Rob Miller,et al.  Interactive Simultaneous Editing of Multiple Text Regions , 2001, USENIX ATC, General Track.

[7]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[8]  Michael Desmond,et al.  Fluid Source Code Views , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[9]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[10]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[11]  Andrew Begel,et al.  Managing Duplicated Code with Linked Editing , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[12]  Steven P. Reiss,et al.  Simplifying data integration: the design of the Desert software development environment , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[13]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[14]  Michael W. Godfrey,et al.  “Cloning considered harmful” considered harmful: patterns of cloning in software , 2008, Empirical Software Engineering.

[15]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[16]  Joseph J. LaViola,et al.  Code bubbles: rethinking the user interface paradigm of integrated development environments , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[17]  Gregor Kiczales,et al.  Expressive programs through presentation extension , 2007, AOSD.

[18]  Ferosh Jacob,et al.  Exploring the design space of proactive tool support for copy-and-paste programming , 2009, CASCON.

[19]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[20]  Jonathan M. Smith,et al.  USENIX Association , 2000 .

[21]  David H. Lorenz,et al.  Cedalion: a language for language oriented programming , 2011, OOPSLA '11.