Abstract
This paper reports on our industry-academia project of using a functional language in business software production. The general motivation behind the project is our ultimate goal of adopting an ML-style higher-order typed functional language in a wide range of ordinary software development in industry. To probe the feasibility and identify various practical problems and needs, we have conducted a 15 month pilot project for developing an enterprise resource planning (ERP) system in SML#. The project has successfully completed as we have planned, demonstrating the feasibility of SML#. In particular, seamless integration of SQL and direct C language interface are shown to be useful in reliable and efficient development of a data intensive business application. During the program development, we have found several useful functional programming patterns and a number of possible extensions of an ML-style language with records. This paper reports on the project details and the lessons learned from the project.
- G. Barthe. A computational view of implicit coercions in type theory. Mathematical. Structures in Comp. Sci., 15(5):839--874, 2005. Google Scholar
Digital Library
- P. Buneman, A. Jung, and A. Ohori. Using powerdomains to generalize relational databases. Theoretical Computer Science, 91(1):23--56, 1991. Google Scholar
Digital Library
- P. Buneman and A. Ohori. Polymorphism and type inference in database programming. ACM Transactions on Database Systems, 21(1):30--74, 1996. Google Scholar
Digital Library
- J. Cheney. S. Lindley, and P. Wadler. A practical theory of language-integrated query. In Proc. ACM International Conference on Functional Programming, 403--416, 2013. Google Scholar
Digital Library
- R. Di Cosmo. A short survey of isomorphisms of types. Mathematical. Structures in Comp. Sci., 15(5):825--838, 2005. Google Scholar
Digital Library
- G. E. Krasner and S. T. Pope. A cookbook for using the model-view controller user interface paradigm in smalltalk-80. J. Object Oriented Program., 1(3):26--49, 1988. Google Scholar
Digital Library
- D. Maier. The Theory of Relational Databases. Computer Science Press, 1983. Google Scholar
Digital Library
- R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, 1990. Google Scholar
Digital Library
- A. Ohori. Semantics of types for database objects. Theoretical Computer Science, 76:53--91, 1990. Google Scholar
Digital Library
- A. Ohori and P. Buneman. Type inference in a database programming language. In Proc. ACM Conference on LISP and Functional Programming, pages 174--183, 1988. Google Scholar
Digital Library
- A. Ohori, P. Buneman, and V. Breazu-Tannen. Database programming in Machiavelli - a polymorphic language with static type inference. In Proc. the ACM SIGMOD conference, pages 46--57, 1989. Google Scholar
Digital Library
- A. Ohori and K. Ueno. Making Standard ML a practical database programming language. In Proc. ACM ICFP, pages 307--319, 2011. Google Scholar
Digital Library
- SML#. http://www.riec.tohoku.ac.jp/smlsharp/, 2006 - 2014.Google Scholar
- Fieldslib. https://github.com/janestreet/fieldslibGoogle Scholar
Index Terms
SML# in industry: a practical ERP system development
Recommendations
SML# in industry: a practical ERP system development
ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programmingThis paper reports on our industry-academia project of using a functional language in business software production. The general motivation behind the project is our ultimate goal of adopting an ML-style higher-order typed functional language in a wide ...
A very high level programming language for data processing applications
Application development today is too labor-intensive. In recent years, very high-level languages have been increasingly explored as a solution to this problem. The Business Definition Language (BDL) is such a language, one aimed at business data ...
No assembly required: compiling standard ML to C
C has been used as a portable target language for implementing languages like Standard ML and Scheme. Previous efforts at compiling these languages to C have produced efficient code, but have compromised on portability and proper tail recursion. We show ...







Comments