{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:09:19Z","timestamp":1759032559095},"reference-count":31,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4351,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1994,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Z is a widely used, model\u2010oriented specification language. Haskell is a programming language that was recently developed to serve as a standard for non\u2010strict, purely functional languages. Although functional languages have proved to be excellent prototyping tools, Haskell was designed as a general purpose language which could be used when building large software systems.<\/jats:p><jats:p>This paper develops two designs for a computerized class roll. The development begins with a description of the requirements and initial specification. The next section delineates the designs and explains how each design targets a specific Haskell data structure: design one employs sequences to model lists, whereas design two uses a Z function to describe a Haskell array. The corresponding implementations follow, along with a critical analysis of each translation from Z notation to Haskell code. The paper demonstrates that Z design schemas map well to at least two Haskell data types, namely the list and the array. Furthermore, it includes insights into how software developers might translate similar Z designs to Haskell.<\/jats:p>","DOI":"10.1002\/spe.4380241205","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T05:53:47Z","timestamp":1163829227000},"page":"1159-1178","source":"Crossref","is-referenced-by-count":9,"title":["Experiences in translating Z designs to haskell implementations"],"prefix":"10.1002","volume":"24","author":[{"given":"Linda B.","family":"Sherrell","sequence":"first","affiliation":[]},{"given":"Doris L.","family":"Carver","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"An Introduction to Formal Specification and Z","author":"Potter B.","year":"1991"},{"key":"e_1_2_1_3_2","volume-title":"An Introduction to Discrete Mathematics, Formal System Specification, and Z","author":"Ince D. C.","year":"1992"},{"key":"e_1_2_1_4_2","volume-title":"Software Development with Z: A Practical Approach to Formal Methods in Software Engineering","author":"Wordsworth J. B.","year":"1992"},{"key":"e_1_2_1_5_2","first-page":"320","volume-title":"Proc. Seventeenth Annual International Computer Software and Applications Conference","author":"Sherrell L. B.","year":"1993"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/72551.72554"},{"issue":"5","key":"e_1_2_1_7_2","article-title":"SIGPLAN Notices special issue on the programming language Haskell","volume":"27","author":"Fasel J.","year":"1992","journal-title":"SIGPLAN Notices"},{"key":"e_1_2_1_8_2","volume-title":"An Introduction to Functional Programming Systems Using Haskell","author":"Davie A. J. T.","year":"1992"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-3166-3_18"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210505"},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"K.Chen P.HudakandM.Odersky \u2018Parametric type classes (extended abstract)\u2019 Proc. 1992 ACM Conference on LISP and Functional Programming San Francisco CA in LISP Pointers. V (1) 170\u2013181(1992).","DOI":"10.1145\/141478.141536"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312939"},{"key":"e_1_2_1_13_2","volume-title":"Software Prototyping, Formal Methods, and VDM","author":"Hekmatpour S.","year":"1988"},{"key":"e_1_2_1_14_2","unstructured":"S. M. M.Joosten \u2018The use of functional programming in software development\u2019 Ph.D. Thesis University of Twente Enschede the Netherlands 1989."},{"key":"e_1_2_1_15_2","volume-title":"Report on the Programming Language Haskell, A Non\u2010strict Purely Functional Language, Version 1.1","author":"Hudak P.","year":"1991"},{"key":"e_1_2_1_16_2","doi-asserted-by":"crossref","unstructured":"R. M.Burstall D. B.MacQueenandD. T.Sannella \u2018Hope: an experimental applicative language\u2019 The 1980 LISP Conference Stanford University University of Santa Clara The USP Co. 1980 pp.136\u2013143.","DOI":"10.1145\/800087.802799"},{"key":"e_1_2_1_17_2","unstructured":"R. M.BurstallandJ. A.Goguen \u2018Putting theories together to make specifications\u2019 Proc. 5th International Joint Conference on Artificial Intelligence Cambridge MA 1977 pp.1045\u20131058."},{"key":"e_1_2_1_18_2","first-page":"328","volume-title":"VDM '88: VDM\u2014The Way Ahead, 2nd VDM\u2010Europe Symposium","author":"J\u00e4ger M.","year":"1988"},{"key":"e_1_2_1_19_2","first-page":"509","volume-title":"Software Development Environments and CASE Technology","author":"Henhapl W.","year":"1991"},{"key":"e_1_2_1_20_2","first-page":"1","volume-title":"Research Topics in Functional Programming","author":"Turner D.","year":"1990"},{"key":"e_1_2_1_21_2","volume-title":"The Definition of Standard ML","author":"Milner R.","year":"1990"},{"key":"e_1_2_1_22_2","volume-title":"Commentary on Standard ML","author":"Milner R.","year":"1991"},{"key":"e_1_2_1_23_2","first-page":"328","volume-title":"VDM '88: VDM\u2014The Way Ahead, 2nd VDM\u2010Europe Symposium","author":"Arthan R. D.","year":"1988"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/35.6.623"},{"key":"e_1_2_1_25_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.127"},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/321992.321996"},{"key":"e_1_2_1_27_2","first-page":"86","volume-title":"Proc. Fourth Annual Z User Meeting","author":"Johnson M.","year":"1990"},{"key":"e_1_2_1_28_2","first-page":"99","volume-title":"3rd Refinement Workshop, Hursley Park, UK","author":"Sannella D.","year":"1990"},{"key":"e_1_2_1_29_2","first-page":"534","volume-title":"Proc. 7th Workshop on Specification of Abstract Data Types","author":"Sannella D.","year":"1991"},{"key":"e_1_2_1_30_2","volume-title":"Software Development: A Rigorous Approach","author":"Jones C. B.","year":"1980"},{"key":"e_1_2_1_31_2","volume-title":"The Z Notation: A Reference Manual","author":"Spivey J. M.","year":"1989"},{"key":"e_1_2_1_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/130697.130698"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380241205","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380241205","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,24]],"date-time":"2023-10-24T05:35:18Z","timestamp":1698125718000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380241205"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,12]]},"references-count":31,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1994,12]]}},"alternative-id":["10.1002\/spe.4380241205"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380241205","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1994,12]]}}}