ABSTRACT
Component programming techniques encourage abstraction and reuse through external linking. Some parts of a program, however, must use concrete, internally specified references, so a pure component system is not a sufficient mechanism for structuring programs. We present the combination of a static, internally-linked module system and a purely abstractive component system. The latter extends our previous model of typed units to properly account for translucency and sharing. We also show how units and modules can express an SML-style system of structures and functors, and we explore the consequences for recursive structures and functors.
- D. Ancona, F. Damiani, S. Drossopoulou, and E. Zucca. Polymorphic bytecode: compositional compilation for Java-like languages. In Proc. Principles of Programming Languages, 2005.]] Google Scholar
Digital Library
- D. Ancona and E. Zucca. True modules for Java-like languages. In Proc. European Conference on Object-Oriented Programming, 2001.]] Google Scholar
Digital Library
- D. Ancona and E. Zucca. A calculus of module systems. J. Funct. Program., 12(2):91--132, 2002.]] Google Scholar
Digital Library
- M. Blume and A. W. Appel. Hierarchical modularity. ACM Trans. Program. Lang. Syst., 21(4):813--847, 1999.]] Google Scholar
Digital Library
- G. Boudol. The recursive record semantics of objects revisited. J. Funct. Program., 14(3):263--315, 2004.]] Google Scholar
Digital Library
- H. Cejtin, M. Fluet, S. Jagannathan, and S. Weeks. Formal specification of the ML basis system. http://mlton. org/pages/MLBasis/attachments/mlb-formal.pdf, January 2005.]]Google Scholar
- K. Crary, R. Harper, and S. Puri. What is a recursive module? In Proc. Programming Language Design and Implementation, 1999.]] Google Scholar
Digital Library
- D. Dreyer. A type system for well-founded recursion. In Proc. Principles of Programming Languages, 2004.]] Google Scholar
Digital Library
- D. Dreyer. Recursive type generativity. In Proc. International Conference on Functional Programming, 2005.]] Google Scholar
Digital Library
- D. Dreyer. Understanding and Evolving the ML Module System. PhD thesis, Carnegie Mellon University, 2005.]] Google Scholar
Digital Library
- D. Dreyer, K. Crary, and R. Harper. A type system for higher-order modules. In Proc. Principles of Programming Languages, 2003.]] Google Scholar
Digital Library
- D. Duggan and C. Sourelis. Mixin modules. In Proc. International Conference on Functional Programming, 1996.]] Google Scholar
Digital Library
- M. Flatt and M. Felleisen. Units: Cool modules for HOT languages. In Proc. Programming Language Design and Implementation, 1998.]] Google Scholar
Digital Library
- R. Harper and M. Lillibridge. A type-theoretic approach to higherorder modules with sharing. In Proc. Principles of Programming Languages, 1994.]] Google Scholar
Digital Library
- T. Hirschowitz and X. Leroy. Mixin modules in a call-by-value setting. ACM Trans. Program. Lang. Syst., 27(5):857--881, 2005.]] Google Scholar
Digital Library
- T. Hirschowitz, X. Leroy, and J. B. Wells. Compilation of extended recursion in call-by-value functional languages. In Proc. Principles and Practice of Declaritive Programming, 2003.]] Google Scholar
Digital Library
- T. Hirschowitz, X. Leroy, and J. B. Wells. Call-by-value mixin modules: Reduction semantics, side effects, types. In Proc. The European Symposium on Programming, 2004.]]Google Scholar
Cross Ref
- S.P. Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.]]Google Scholar
- R. Kelsey, J. Rees, and M. Sperber. Scheme48 Reference Manual, 1.3 edition, 2005. http://s48.org/1.3/s48manual.pdf.]]Google Scholar
- X. Leroy. Manifest types, modules, and separate compilation. In Proc. Principles of Programming Languages, 1994.]] Google Scholar
Digital Library
- X. Leroy. The Objective Caml System, 3.08 edition, 2004. http://caml.inria.fr/pub/docs/manual-ocaml/index.html.]]Google Scholar
- H. Makholm and J.B. Wells. Type inference, principal typings, and let-polymorphism for first-class mixin modules. In Proc. International Conference on Functional Programming, 2005.]] Google Scholar
Digital Library
- R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML (Revised). The MIT Press, Cambridge, Massachusetts, 1997.]] Google Scholar
Digital Library
- M. Odersky and M. Zenger. Scalable component abstractions. In Proc. Object Oriented Programming, Systems, Languages, and Applications, 2005.]] Google Scholar
Digital Library
- C. Okasaki. Purely Functional Data Structures. Cambridge University Press, 1998.]] Google Scholar
Digital Library
- C.V. Russo. Recursive structures for Standard ML. In Proc. International Conference on Functional Programming, 2001.]] Google Scholar
Digital Library
- M. Serrano. Bigloo: A "practical Scheme compiler", 2.6e edition, Aug. 2004. http://www-sop.inria.fr/mimosa/fp/Bigloo/doc/bigloo.html.]]Google Scholar
- D. Swasey, T. Murphy VII, K. Crary, and R. Harper. A separate compilation extension to Standard ML (working draft). Technical Report CMU-CS-06-104, School of Computer Science, Carnegie Mellon University, January 2006.]]Google Scholar
Cross Ref
- D. Syme. Initializing mutually referential abstract objects: The value recursion challenge. In Proc. Workshop on ML, 2005.]]Google Scholar
- C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, New York, 1997.]] Google Scholar
Digital Library
- O. Waddell and R.K. Dybvig. Extending the scope of syntactic abstraction. In Proc. Principles of Programming Languages, 1999.]] Google Scholar
Digital Library
- J.B. Wells and R. Vestergaard. Equational reasoning for linking with first-class primitive modules. In Proc. European Symposium on Programming Languages and Systems, 2000.]] Google Scholar
Digital Library
Index Terms
From structures and functors to modules and units
Recommendations
From structures and functors to modules and units
Proceedings of the 2006 ICFP conferenceComponent programming techniques encourage abstraction and reuse through external linking. Some parts of a program, however, must use concrete, internally specified references, so a pure component system is not a sufficient mechanism for structuring ...
Generalized Lowen functors
TopologyAccording to their value ranges, L-topological spaces form different categories. Clearly, the investigation on their relationships is certainly important and necessary. Lowen was one of the first authors who had studied the relation between the category ...
Results on the use of category theory for the study of lattice-valued finite state machines
In this paper, we introduce the concepts of category of lattice-valued finite state machines, category of quasi-lattice-valued transformation semigroups, category of quasi-lattice-valued transformation monoids, category of lattice-valued transformation ...







Comments