Search Results

Documents authored by Hanus, Michael


Document
Semantic Versioning Checking in a Declarative Package Manager

Authors: Michael Hanus

Published in: OASIcs, Volume 58, Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)


Abstract
Semantic versioning is a principle to associate version numbers to different software releases in a meaningful manner. The correct use of version numbers is important in software package systems where packages depend on other packages with specific releases. When patch or minor version numbers are incremented, the API is unchanged or extended, respectively, but the semantics of the operations should not be affected (apart from bug fixes). Although many software package management systems assumes this principle, they do not check it or perform only simple syntactic signature checks. In this paper we show that more substantive and fully automatic checks are possible for declarative languages. We extend a package manager for the functional logic language Curry with features to check the semantic equivalence of two different versions of a software package. For this purpose, we combine CurryCheck, a tool for automated property testing, with program analysis techniques in order to ensure the termination of the checker even in case of possibly non-terminating operations defined in some package. As a result, we obtain a software package manager which checks semantic versioning and, thus, supports a reliable and also specification-based development of software packages.

Cite as

Michael Hanus. Semantic Versioning Checking in a Declarative Package Manager. In Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017). Open Access Series in Informatics (OASIcs), Volume 58, pp. 6:1-6:16, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


Copy BibTex To Clipboard

@InProceedings{hanus:OASIcs.ICLP.2017.6,
  author =	{Hanus, Michael},
  title =	{{Semantic Versioning Checking in a Declarative Package Manager}},
  booktitle =	{Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)},
  pages =	{6:1--6:16},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-058-3},
  ISSN =	{2190-6807},
  year =	{2018},
  volume =	{58},
  editor =	{Rocha, Ricardo and Son, Tran Cao and Mears, Christopher and Saeedloei, Neda},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICLP.2017.6},
  URN =		{urn:nbn:de:0030-drops-84568},
  doi =		{10.4230/OASIcs.ICLP.2017.6},
  annote =	{Keywords: functional logic programming, semantic versioning, program testing}
}
Document
Improving Lazy Non-Deterministic Computations by Demand Analysis

Authors: Michael Hanus

Published in: LIPIcs, Volume 17, Technical Communications of the 28th International Conference on Logic Programming (ICLP'12) (2012)


Abstract
Functional logic languages combine lazy (demand-driven) evaluation strategies from functional programming with non-deterministic computations from logic programming. The lazy evaluation of non-deterministic subexpressions results in a demand-driven exploration of the search space: if the value of some subexpression is not required, the complete search space connected to it is not explored. On the other hand, this improvement could cause efficiency problems if unevaluated subexpressions are duplicated and later evaluated in different parts of a program. In order to improve the execution behavior in such situations, we propose a program analysis that guides a program transformation to avoid such inefficiencies. We demonstrate the positive effects of this program transformation with KiCS2, a recent highly efficient implementation of the functional logic programming language Curry.

Cite as

Michael Hanus. Improving Lazy Non-Deterministic Computations by Demand Analysis. In Technical Communications of the 28th International Conference on Logic Programming (ICLP'12). Leibniz International Proceedings in Informatics (LIPIcs), Volume 17, pp. 130-143, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2012)


Copy BibTex To Clipboard

@InProceedings{hanus:LIPIcs.ICLP.2012.130,
  author =	{Hanus, Michael},
  title =	{{Improving Lazy Non-Deterministic Computations by Demand Analysis}},
  booktitle =	{Technical Communications of the 28th International Conference on Logic Programming (ICLP'12)},
  pages =	{130--143},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-43-9},
  ISSN =	{1868-8969},
  year =	{2012},
  volume =	{17},
  editor =	{Dovier, Agostino and Santos Costa, V{\'\i}tor},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICLP.2012.130},
  URN =		{urn:nbn:de:0030-drops-36167},
  doi =		{10.4230/LIPIcs.ICLP.2012.130},
  annote =	{Keywords: functional logic programming, implementation, program analysis}
}
Document
Declarative Processing of Semistructured Web Data

Authors: Michael Hanus

Published in: LIPIcs, Volume 11, Technical Communications of the 27th International Conference on Logic Programming (ICLP'11) (2011)


Abstract
In order to give application programs access to data stored in the web in semistructured formats, in particular, in XML format, we propose a domain-specific language (DSL) for declarative processing such data. Our language is embedded in the functional logic programming language Curry and offers powerful matching constructs that enable a declarative description of accessing and transforming XML data. We exploit advanced features of functional logic programming to provide a high-level and maintainable implementation of our language. Actually, this paper contains the complete code of our implementation so that the source text of this paper is an executable implementation of our embedded DSL.

Cite as

Michael Hanus. Declarative Processing of Semistructured Web Data. In Technical Communications of the 27th International Conference on Logic Programming (ICLP'11). Leibniz International Proceedings in Informatics (LIPIcs), Volume 11, pp. 198-208, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2011)


Copy BibTex To Clipboard

@InProceedings{hanus:LIPIcs.ICLP.2011.198,
  author =	{Hanus, Michael},
  title =	{{Declarative Processing of Semistructured Web Data}},
  booktitle =	{Technical Communications of the 27th International Conference on Logic Programming (ICLP'11)},
  pages =	{198--208},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-31-6},
  ISSN =	{1868-8969},
  year =	{2011},
  volume =	{11},
  editor =	{Gallagher, John P. and Gelfond, Michael},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICLP.2011.198},
  URN =		{urn:nbn:de:0030-drops-31629},
  doi =		{10.4230/LIPIcs.ICLP.2011.198},
  annote =	{Keywords: functional logic programming, domain specific languages, XML}
}
Document
Integration of Functional and Logic Languages (Dagstuhl Seminar 9621)

Authors: Michael Hanus, John W. Lloyd, and Juan José Moreno Navarro

Published in: Dagstuhl Seminar Reports. Dagstuhl Seminar Reports, Volume 1 (2021)


Abstract

Cite as

Michael Hanus, John W. Lloyd, and Juan José Moreno Navarro. Integration of Functional and Logic Languages (Dagstuhl Seminar 9621). Dagstuhl Seminar Report 146, pp. 1-2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (1996)


Copy BibTex To Clipboard

@TechReport{hanus_et_al:DagSemRep.146,
  author =	{Hanus, Michael and Lloyd, John W. and Moreno Navarro, Juan Jos\'{e}},
  title =	{{Integration of Functional and Logic Languages (Dagstuhl Seminar 9621)}},
  pages =	{1--2},
  ISSN =	{1619-0203},
  year =	{1996},
  type = 	{Dagstuhl Seminar Report},
  number =	{146},
  institution =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/DagSemRep.146},
  URN =		{urn:nbn:de:0030-drops-150337},
  doi =		{10.4230/DagSemRep.146},
}
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail