Abstract
We present VMλ, a formalization and implementation of the functional language VML.
VML is a programming language proposed by discovery scientists for the purpose of assisting the process of knowledge discovery. It is a non-trivial extension of ML with hypothetical views. Operationally, a hypothetical view is a value with a representation that indicates how the value was created. The notion of hypothetical views has already been successful in the domain of genome analysis, and known to be useful in the process of knowledge discovery. However, VML as a programming language was only informally defined in English prose, and indeed found problematic both in theory and in practice. Thus, a proper definition and implementation of VML with formal foundations would be of great help to discovery science and hence corresponding domain sciences.
This paper gives a solid foundation of VML by extending the standard simply typed call-by-value λ-calculus. Although this extension, VMλ, is simple and clear, its design required much care to find and fix problems of the original VML. We also present a real implementation of VMλ, written in Camlp4 as a conservative translator into OCaml. This implementation makes extensive use of labeled arguments and polymorphic variants - two advanced features of OCaml that originate in OLabl.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Setsuo Arikawa and Koichi Furukawa, editors. Proceedings of the Second International Conference on Discovery Science, volume 1721 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1999. 290, 304
Setsuo Arikawa and Shinichi Morishita, editors. Proceedings of the Third International Conference on Discovery Science, volume 1967 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 2000. 290
Setsuo Arikawa and Hiroshi Motoda, editors. Proceedings of the First International Conference on Discovery Science, volume 1532 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1998. 290, 304
Hideo Bannai, Yoshinori Tamada, Osamu Maruyama, and Satoru Miyano. VML: A view modeling language for computational knowledge discovery. In Proceedings of the Fourth International Conference on Discovery Science, volume 2226 of Lecture Notes in Artificial Intelligence, pages 30–44, 2001. 292, 293, 297, 303
Hideo Bannai, Yoshinori Tamada, Osamu Maruyama, Kenta Nakai, and Satoru Miyano. Views: Fundamental building blocks in the process of knowledge discovery. In Proceedings of the 14th International FLAIRS Conference, pages 233–238. AAAI Press, 2001. 293, 299, 303
Olivier Danvy. Type-directed partial evaluation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 242–257, 1996. 292
Olivier Danvy. Type-directed partial evaluation. In Partial Evaluation — Practice and Theory, volume 1706 of Lecture Notes in Computer Science, pages 367–411. Springer-Verlag, 1999. 292
Daniel de Rauglaudre. Camlp4. http://caml.inria.fr/camlp4/. 293, 299
Jacques Garrigue. OLabl. http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/. 299
Jacques Garrigue. Programming with polymorphic variants. In Proceedings of the 1998 ACM SIGPLAN Workshop on ML, 1998. 299
Jacques Garrigue and Hassan Aït-Kaci. The typed polymorphic label-selective lambda-calculus. In Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 35–47, 1994. 296, 297
Haskell in practice (applications written in Haskell). http://www.haskell.org/practice.html. 290
John Hughes. Why functional programming matters. Computer Journal, 32(2):98–107, 1989. 290
Xavier Leroy. Applicative functors and fully transparent higher-order modules. In Proceedings of the 22th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1995. 300
Xavier Leroy and Francois Pessaux. Type-based analysis of uncaught exceptions. ACM Transactions on Programming Languages and Systems, 22(2):340–377, 2000. An extended abstract appeared in Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1999, pages 276–290. 300
Xavier Leroy et al. Objective Caml. http://caml.inria.fr/ocaml/. 291, 299
Osamu Maruyama and Satoru Miyano. Design aspects of discovery systems. IEICE Transactions in Information and Systems, E83-D(1):61–70, 2000. 293, 299, 303
Osamu Maruyama, Tomoyuki Uchida, Takayoshi Shoudai, and Satoru Miyano. Toward genomic hypothesis creator: View designer for discovery. In Hiroshi Motoda, editors. Proceedings of the First International Conference on Discovery Science, volume 1532 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1998 Arikawa and Motoda [3], pages 105–116. 293, 299, 303
Osamu Maruyama, Tomoyuki Uchida, Kim Lan Sim, and Satoru Miyano. Designing views in hypothesiscreator: System for assisting in discovery. In Koichi Furukawa, editors. Proceedings of the Second International Conference on Discovery Science, volume 1721 of Lecture Notes in Artificial Intelligence. Springer-Verlag, 1999 Arikawa and Furukawa [1], pages 115–127. 293, 299, 303
Atsushi Ohori and Nobuaki Yoshida. Type inference with rank 1 polymorphism for type-directed compilation of ML. In Proceedings of the Fourth ACM SIGPLAN International Conference on Functional Programming, pages 160–171, 1999. 300
Claudio V. Russo. Types For Modules. PhD thesis, University of Edinburgh, 1998. http://www.dcs.ed.ac.uk/home/cvr/ECS-LFCS-98-389.html. 302
Ian Stark. Names and Higher-Order Functions. PhD thesis, University of Cambridge, 1994. http://www.dcs.ed.ac.uk/home/stark/publications/thesis.html. 302
Basile Starynkevitch et al. Our users’ achievements (significant applications written in Caml). http://caml.inria.fr/users programs-eng.html. 290
Gerd Stolpmann. The O’Caml link database. http://www.npc.de/ocaml/linkdb. 290
Eijiro Sumii and Hideo Bannai. VMλ: A functional calculus for scientific discovery. http://www.yl.is.s.u-tokyo.ac.jp/sumii/pub/vml.ps.gz, 2001. 296
Eijiro Sumii and Benjamin Pierce. Logical relations for encryption. In 14th IEEE Computer Security Foundations Workshop, pages 256–269, 2001. 302
Philip Wadler. Functional programming in the real world. http://cm.bell-labs.com/cm/cs/who/wadler/realworld/. 290
Philip Wadler. Views: a way for pattern matching to cohabit with data abstraction. In Proceedings of the 14th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 307–313, 1987. 292, 302
Philip Wadler. Functional programming: An angry half-dozen. SIGPLAN Notices, 33(2):25–30, 1998. 290
Kwangkeun Yi. An abstract interpretation for estimating uncaught exceptions in Standard ML programs. Science of Computer Programming, 31(1):147–173, 1998. 300
Kwangkeun Yi and Sukyoung Ryu. A cost-effective estimation of uncaught exceptions in SML programs. Theoretical Computer Science. To appear. 300
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sumii, E., Bannai, H. (2002). VMλ: A Functional Calculus for Scientific Discovery. In: Hu, Z., Rodríguez-Artalejo, M. (eds) Functional and Logic Programming. FLOPS 2002. Lecture Notes in Computer Science, vol 2441. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45788-7_18
Download citation
DOI: https://doi.org/10.1007/3-540-45788-7_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44233-2
Online ISBN: 978-3-540-45788-6
eBook Packages: Springer Book Archive