<?xml version="1.0" encoding="UTF-8"?><xml><records><record><source-app name="Biblio" version="6.x">Drupal-Biblio</source-app><ref-type>47</ref-type><contributors><authors><author><style face="normal" font="default" size="100%">Joost Visser</style></author><author><style face="normal" font="default" size="100%">José Nuno Oliveira</style></author><author><style face="normal" font="default" size="100%">Luis Soares Barbosa</style></author><author><style face="normal" font="default" size="100%">João F. Ferreira</style></author><author><style face="normal" font="default" size="100%">Alexandra Mendes</style></author></authors><secondary-authors><author><style face="normal" font="default" size="100%">Nico Plat</style></author><author><style face="normal" font="default" size="100%">Peter Gorm Larsen</style></author></secondary-authors></contributors><titles><title><style face="normal" font="default" size="100%">Camila Revival: VDM meets Haskell</style></title><secondary-title><style face="normal" font="default" size="100%">Proceedings of Overture Workshop </style></secondary-title></titles><dates><year><style  face="normal" font="default" size="100%">2005</style></year><pub-dates><date><style  face="normal" font="default" size="100%">July</style></date></pub-dates></dates><urls><related-urls><url><style face="normal" font="default" size="100%">https://haslab.uminho.pt/sites/default/files/lsb/files/2005-camilarevival.pdf</style></url></related-urls></urls><publisher><style face="normal" font="default" size="100%">University of Newcastle TR series</style></publisher><pub-location><style face="normal" font="default" size="100%">University of Newcastle upon Tyne, UK</style></pub-location><language><style face="normal" font="default" size="100%">eng</style></language><abstract><style face="normal" font="default" size="100%">&lt;p&gt;We have experimented with modeling some of the key concepts of the VDM speciﬁcation language inside the functional programming language Haskell. For instance, VDM’s sets and maps are directly available as data types deﬁned in standard libraries; we merely needed to deﬁne some additional functions to make the match complete. A bigger challenge is posed by VDM’s data type invariants, and pre- and post- conditions. For these we resorted to Haskell’s constructor class mechanism, and its support for monads. This allows us to switch between diﬀerent modes of evaluation (e.g. with or without property checking) by simply coercing user deﬁned functions and operations to diﬀerent speciﬁc types.&lt;/p&gt;
</style></abstract></record></records></xml>