Abstract
Functional programming languages are ideally suited for developing dependable software, but not much work have been done on modeling functional programs. Although UML is mainly based on concepts which are native to imperative object-oriented programming languages, this chapter shows how – through the profile mechanism – it can be used to model software that is to be implemented in a functional programming language. In this chapter Haskell was chosen as one of the most popular modern, pure functional languages. First, a partial metamodel of Haskell is defined and then the corresponding UML profile is presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Backus, J.: Can Programming Be Liberated from the von Neumann Style?A Functional Style and Its Algebra of Programs. Communications of the ACM 21(8), 613–641 (1978)
Cardelli, L.: Two-dimensional syntax for functional languages. In: Proceedings of ECICS, vol. 82, pp. 139–151 (1983)
Harrop, J.: F# for Scientists. Wiley Interscience, Hoboken (2008)
Hudak, P.: Conception, Evolution, and Application of Functional Programming Languages. ACM Computing Surveys 21(3), 359–411 (1989)
Hutton, G.: Programming in Haskell. Cambridge University Press, Cambridge (2007)
Jones, S.P.: Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)
Warmer, J., Kleppe, A.: The Object Constraint Language: Precise Modeling With UML. Addison-Wesley, Reading (1998)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)
Object Management Group, MDA Guide Version 1.0.1 (omg/03-06-01) (2003)
Object Management Group, Metamodel and UML Profile for Java and EJB Specification (formal/04-02-02) (2004)
Object Management Group UML 2.3 Superstructure Specification (formal/2010-05-05) (2010)
Reekie, H.J .: Realtime Signal Processing: Dataflow, Visual, and Functional Programming. PhD thesis, University of Technology at Sydney (1995)
Rémy, D.: Using, Understanding, and Unraveling the OCaml Language. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 413–537. Springer, Heidelberg (2002)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual, 2nd edn. Addison-Wesley, Reading (2004)
Russell, D.: FAD: A Functional Analysis and Design Methodology. PhD thesis, University of Kent at Canterbury (2001)
Turner, D.A.: Miranda: A non-strict functional language with polymorphic types. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 1–16. Springer, Heidelberg (1985)
Wakeling, D.: A Design Methodology for Functional Programs. In: Taha, W. (ed.) SAIG 2001. LNCS, vol. 2196, pp. 146–161. Springer, Heidelberg (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Szlenk, M. (2011). Metamodel and UML Profile for Functional Programming Languages. In: Zamojski, W., Kacprzyk, J., Mazurkiewicz, J., Sugier, J., Walkowiak, T. (eds) Dependable Computer Systems. Advances in Intelligent and Soft Computing, vol 97. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21393-9_18
Download citation
DOI: https://doi.org/10.1007/978-3-642-21393-9_18
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21392-2
Online ISBN: 978-3-642-21393-9
eBook Packages: EngineeringEngineering (R0)