Ensuring Termination in ESFP

dc.creatorTelford,Alastair
dc.creatorTurner,David
dc.date2000
dc.date.accessioned2024-02-06T12:50:33Z
dc.date.available2024-02-06T12:50:33Z
dc.descriptionIn previous papers we have proposed an elementary discipline of strong functional programming (ESFP), in which all computations terminate. A key feature of the discipline is that we introduce a type distinction between data which is known to be finite, and codata which is (potentially) infinite. To ensure termination, recursion over data must be well-founded, and corecursion (the definition schema for codata) must be productive, and both of these restrictions must be enforced automatically by the compiler. In our previous work we used abstract interpretation to establish the productivity of corecursive definitions in an elementary strong functional language. We show here that similar ideas can be applied in the dual case to check whether recursive function definitions are strongly normalising. We thus exhibit a powerful termination analysis technique which we demonstrate can be extended to partial functions.
dc.formattext/html
dc.identifierhttps://doi.org/10.3217/jucs-006-04-0474
dc.identifierhttps://lib.jucs.org/article/27675/
dc.identifier.urihttps://openrepository.mephi.ru/handle/123456789/7746
dc.languageen
dc.publisherJournal of Universal Computer Science
dc.relationinfo:eu-repo/semantics/altIdentifier/eissn/0948-6968
dc.relationinfo:eu-repo/semantics/altIdentifier/pissn/0948-695X
dc.rightsinfo:eu-repo/semantics/openAccess
dc.rightsJ.UCS License
dc.sourceJUCS - Journal of Universal Computer Science 6(4): 474-488
dc.subjectfunctional programming
dc.subjecttermination analysis
dc.subjectabstract interpretation
dc.titleEnsuring Termination in ESFP
dc.typeResearch Article
Файлы
Коллекции