Vis enkel innførsel

dc.contributor.authorBagge, Anya Heleneeng
dc.contributor.authorHaveraaen, Magneeng
dc.date.accessioned2015-04-16T09:23:29Z
dc.date.available2015-04-16T09:23:29Z
dc.date.issued2010-09-17eng
dc.identifier.issn1571-0661en_US
dc.identifier.urihttps://hdl.handle.net/1956/9805
dc.description.abstractA concept (or signature) describes the interface of a set of abstract types by listing the operations that should be supported for those types. When implementing a generic operation, such as sorting, we may then specify requirements such as “elements must be comparable” by requiring that the element type models the Comparable concept. We may also use axioms to describe behaviour that should be common to all models of a concept. However, the operations specified by the concept are not always the ones that are best suited for the implementation. For example, numbers and matrices may both be addable, but adding two numbers is conveniently done by using a return value, whereas adding a sparse and a dense matrix is probably best achieved by modifying the dense matrix. In both cases, though, we may want to pretend we're using a simple function with a return value, as this most closely matches the notation we know from mathematics. This paper presents two simple concepts to break the notational tie between implementation and use of an operation: functionalisation, which derives a set of canonical pure functions from a procedure; and mutification, which translates calls using the functionalised declarations into calls to the implemented procedure.en_US
dc.language.isoengeng
dc.publisherElsevieren_US
dc.rightsAttribution-NonCommercial-NoDerivs CC BY-NC-NDeng
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/eng
dc.subjectconceptseng
dc.subjectfunctionseng
dc.subjectprocedureseng
dc.subjectmutificationeng
dc.subjectaxiomseng
dc.subjectimperative vs functionaleng
dc.subjectconcept-based programmingeng
dc.titleInterfacing concepts: Why declaration style shouldn't matteren_US
dc.typePeer reviewed
dc.typeJournal article
dc.date.updated2015-03-31T14:17:46Zen_US
dc.description.versionpublishedVersionen_US
dc.rights.holderCopyright 2010 Elsevier B.V.en_US
dc.identifier.doihttps://doi.org/10.1016/j.entcs.2010.08.030
dc.identifier.cristin345641
dc.source.journalElectronical Notes in Theoretical Computer Science
dc.source.40253
dc.source.pagenumber37-50


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel

Attribution-NonCommercial-NoDerivs CC BY-NC-ND
Med mindre annet er angitt, så er denne innførselen lisensiert som Attribution-NonCommercial-NoDerivs CC BY-NC-ND