Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646158.680010guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

True Modules for Java-like Languages

Published: 18 June 2001 Publication History

Abstract

We present JAVAMOD, a true module system constructed on top of a Java-like language. More in detail, this means that basic modules are collections of Java classes and specify in their interface the imported and exported classes with their types; furthermore, it is possible to write structured module expressions by means of a set of module operators and a type system at the module level ensures type safety.In designing such a type system, one has to face non trivial problems, notably the fact that a module M which extends an imported class C can be correctly combined only with modules exporting a class C which, besides providing the expected services, causes no interferences with its subclasses defined in M .What we obtain is a module language which is extremely flexible and allows to express (without any need of enriching the syntax of the core level, that is, the Java language), for instance, generic types as in Pizza and GJ, mixin classes (that is, subclasses parametric in the direct superclass) and mutually recursive class definitions split in independent modules.

References

[1]
D. Ancona, G. Lagorio, and E. Zucca. Jam: A smooth extension of Java with mixins. In E. Bertino, editor, ECOOP'00 - European Conference on Object-Oriented Programming , number 1850 in Lecture Notes in Computer Science, pages 154-178, Berlin, 2000. Springer Verlag.
[2]
D. Ancona and E. Zucca. A theory of mixin modules: Basic and derived operators. Mathematical Structures in Computer Science , 8(4):401-446, August 1998.
[3]
D. Ancona and E. Zucca. A calculus of module systems. Technical Report DISITR- 99-09, Dipartimento di Informatica e Scienze dell'Informazione, Università di Genova, 1999. Submitted for journal publication. Extended version of {4}.
[4]
D. Ancona and E. Zucca. A primitive calculus for module systems. In G. Nadathur, editor, PPDP'99 - Principles and Practice of Declarative Programming , number 1702 in Lecture Notes in Computer Science, pages 62-79, Berlin, 1999. Springer Verlag.
[5]
D. Ancona and E. Zucca. True modules for Java-like languages: Design and foundations. Technical Report DISI-TR-00-12, Dipartimento di Informatica e Scienze dell'Informazione, Università di Genova, August 2000.
[6]
L. Bauer, A.W. Appel, and E.W. Felten. Mechanisms for secure modular programming in Java. Technical Report CS-TR-603-99, Department of Computer Science, Princeton University, July 1999.
[7]
V. Bono, A. Patel, and V. Shmatikov. A core calculus of classes and mixins. In R. Guerraoui, editor, ECOOP'00 - European Conference on Object-Oriented Programming , number 1628 in Lecture Notes in Computer Science, pages 43-66, Berlin, 1999. Springer Verlag.
[8]
G. Bracha and W. Cook. Mixin-based inheritance. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1990 , pages 303- 311. ACM Press, October 1990. SIGPLAN Notices, volume 25, number 10.
[9]
G. Bracha and G. Lindstrom. Modularity meets inheritance. In Proc. International Conference on Computer Languages , pages 282-290, San Francisco, April 1992. IEEE Computer Society.
[10]
G. Bracha, M. Odersky, D. Stoutmire, and P. Wadler. Making the future safe for the past: Adding genericity to the Java programming language. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1998 , October 1998. Home page: http://www.cs.bell-labs.com/who/wadler/pizza/gj/.
[11]
M. Büchi and W. Weck. Generic wrapping. In E. Bertino, editor, ECOOP'00 - European Conference on Object-Oriented Programming , number 1850 in Lecture Notes in Computer Science, pages 201-225. Springer Verlag, 2000.
[12]
K. Crary, R. Harper, and S. Puri. What is a recursive module? In PLDI'99 - ACM Conf. on Programming Language Design and Implementation , 1999.
[13]
S. Drossopoulou and S. Eisenbach. Describing the semantics of Java and proving type soundness. In J. Alves-Foss, editor, Formal Syntax and Semantics of Java , number 1523 in Lecture Notes in Computer Science, pages 41-82. Springer Verlag, Berlin, 1999.
[14]
D. Duggan. A mixin-based, semantics-based approach to reusing domain-specific programming languages. In E. Bertino, editor, ECOOP'00 - European Conference on Object-Oriented Programming , number 1850 in Lecture Notes in Computer Science, pages 179-200. Springer Verlag, 2000.
[15]
D. Duggan and C. Sourelis. Mixin modules. In Intl. Conf. on Functional Programming , pages 262-273, Philadelphia, June 1996. ACM Press.
[16]
R.B. Findler and M. Flatt. Modular object-oriented programming with units and mixins. In Intl. Conf. on Functional Programming 1998 , September 1998.
[17]
K. Fisher and J. Reppy. The design of a class mechanism for Moby. In PLDI'99 - ACM Conf. on Programming Language Design and Implementation , pages 37-49, May 1999.
[18]
K. Fisher and J. Reppy. Extending Moby with inheritance-based subtyping. In European Symposium on Programming 2000 , Lecture Notes in Computer Science, Berlin, 2000. Springer Verlag. To appear.
[19]
M. Flatt and M. Felleisen. Units: Cool modules for HOT languages. In PLDI'98 - ACM Conf. on Programming Language Design and Implementation , pages 236- 248, 1998.
[20]
M. Flatt, S. Krishnamurthi, and M. Felleisen. Classes and mixins. In ACM Symp. on Principles of Programming Languages 1998 , pages 171-183, January 1998.
[21]
J. Gosling, B. Joy, and G. Steele. The Java¿ Language Specification . Addison-Wesley, 1996.
[22]
R. Harper and M. Lillibridge. A type theoretic approach to higher-order modules with sharing. In ACM Symp. on Principles of Programming Languages 1994 , pages 127-137. ACM Press, 1994.
[23]
A. Igarashi, B. Pierce, and P.Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1999 , pages 132-146, November 1999.
[24]
X. Leroy. Manifest types, modules and separate compilation. In ACM Symp. on Principles of Programming Languages 1994 , pages 109-122. ACM Press, 1994.
[25]
X. Leroy. A modular module system. Journal of Functional Programming , 10(3):269-303, May 2000.
[26]
B. Meyer. Eiffel: The language . Prentice Hall, 1992.
[27]
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML . TheMIT Press, Cambridge, Massachussetts, 1990.
[28]
M. Odersky and P. Wadler. Pizza into Java: Translating theory into practice. In ACM Symp. on Principles of Programming Languages 1997 . ACM Press, January 1997.
[29]
D. Remy and J. Vouillon. Objective ML: An effective object-oriented extension to ML. Theory and Practice of Object Systems , 4(1): 27-50, 1998.
[30]
C. Szyperski. Import is not inheritance. why we need both: Modules and classes. In O. Lehrmann Madsen, editor, ECOOP'92 - European Conference on Object-Oriented Programming , number 615 in Lecture Notes in Computer Science, pages 19-32, Berlin, 1992. Springer Verlag.

Cited By

View all
  • (2014)Automated software remodularization based on move refactoringProceedings of the 13th international conference on Modularity10.1145/2577080.2577097(73-84)Online publication date: 22-Apr-2014
  • (2012)A type system for checking specialization of packages in object-oriented programmingProceedings of the 27th Annual ACM Symposium on Applied Computing10.1145/2245276.2232058(1737-1742)Online publication date: 26-Mar-2012
  • (2011)DeepFJigProceedings of the 9th International Conference on Principles and Practice of Programming in Java10.1145/2093157.2093172(101-110)Online publication date: 24-Aug-2011
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming
June 2001
428 pages
ISBN:3540422064

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 18 June 2001

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2014)Automated software remodularization based on move refactoringProceedings of the 13th international conference on Modularity10.1145/2577080.2577097(73-84)Online publication date: 22-Apr-2014
  • (2012)A type system for checking specialization of packages in object-oriented programmingProceedings of the 27th Annual ACM Symposium on Applied Computing10.1145/2245276.2232058(1737-1742)Online publication date: 26-Mar-2012
  • (2011)DeepFJigProceedings of the 9th International Conference on Principles and Practice of Programming in Java10.1145/2093157.2093172(101-110)Online publication date: 24-Aug-2011
  • (2011)JavaGIACM Transactions on Programming Languages and Systems10.1145/1985342.198534333:4(1-83)Online publication date: 1-Jul-2011
  • (2010)Isolating untrusted software extensions by custom scoping rulesComputer Languages, Systems and Structures10.1016/j.cl.2009.12.00236:3(268-287)Online publication date: 1-Oct-2010
  • (2007)The java module systemACM SIGPLAN Notices10.1145/1297105.129706442:10(499-514)Online publication date: 21-Oct-2007
  • (2007)Component nextgenACM SIGPLAN Notices10.1145/1297105.129703942:10(153-170)Online publication date: 21-Oct-2007
  • (2007)The java module systemProceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications10.1145/1297027.1297064(499-514)Online publication date: 21-Oct-2007
  • (2007)Component nextgenProceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications10.1145/1297027.1297039(153-170)Online publication date: 21-Oct-2007
  • (2006)A framework for modular linking in OO languagesProceedings of the 7th joint conference on Modular Programming Languages10.5555/2111746.2111755(116-135)Online publication date: 13-Sep-2006
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media