Filters








25 Hits in 1.3 sec

KiCS2: A New Compiler from Curry to Haskell [chapter]

Bernd Braßel, Michael Hanus, Björn Peemöller, Fabian Reck
2011 Lecture Notes in Computer Science  
In this paper we present our first steps towards a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs.  ...  This enables the application of various search strategies to extract values from the search space.  ...  Apart from the parser, where we reused an existing one implemented in Haskell, the compiler is completely written in Curry.  ... 
doi:10.1007/978-3-642-22531-4_1 fatcat:cyitk3hjnncoddwrcobjih2a7q

A New Functional-Logic Compiler for Curry: Sprite [article]

Sergio Antoy, Andy Jost
2016 arXiv   pre-print
We introduce a new native code compiler for Curry codenamed Sprite.  ...  We outline salient features of Sprite, discuss its implementation of Curry programs, and present benchmarking results. Sprite is the first-to-date operationally complete implementation of Curry.  ...  KiCS2's compiler translates Curry source code into Haskell source code which is then processed by GHC [13] , a mainstream Haskell compiler.  ... 
arXiv:1608.04016v1 fatcat:ulsvv7qr35cpffl3ebqrsphile

A New Functional-Logic Compiler for Curry: Sprite [chapter]

Sergio Antoy, Andy Jost
2017 Lecture Notes in Computer Science  
We introduce a new native code compiler for Curry codenamed Sprite.  ...  We outline salient features of Sprite, discuss its implementation of Curry programs, and present benchmarking results. Sprite is the first-to-date operationally complete implementation of Curry.  ...  KiCS2's compiler translates Curry source code into Haskell source code which is then processed by GHC [13] , a mainstream Haskell compiler.  ... 
doi:10.1007/978-3-319-63139-4_6 fatcat:5iqmxm6ftva5vmbposwwxbk36q

Implementing Equational Constraints in a Functional Language [chapter]

Bernd Braßel, Michael Hanus, Björn Peemöller, Fabian Reck
2013 Lecture Notes in Computer Science  
KiCS2 is a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs.  ...  To overcome this drawback, we propose new techniques to implement equational constraints in this framework.  ...  In this paper we consider KiCS2 [12] , a new system that compiles functional logic programs of the source language Curry [21] into purely functional Haskell programs.  ... 
doi:10.1007/978-3-642-45284-0_9 fatcat:jrt5kqbabbd2jdhimbzqyii264

Implementing Equational Constraints in a Functional Language [article]

Bernd Braßel, Michael Hanus, Björn Peemöller, Fabian Reck
2011 arXiv   pre-print
KiCS2 is a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs.  ...  To overcome this drawback, we propose new techniques to implement equational constraints in this framework.  ...  In this paper we consider KiCS2 [12] , a new system that compiles functional logic programs of the source language Curry [21] into purely functional Haskell programs.  ... 
arXiv:1108.5609v1 fatcat:j5nee5yj5vfgdlt4llrdn76od4

Integration of functional and logic programming

Michael Hanus, Herbert Kuchen
1996 ACM Computing Surveys  
In such cases, one has to explain from the beginning the pitfalls of backtracking which harms the understanding of declarative programming. From a declarative point of view,  ...  This combination led to new design patterns [AH02, AH11] and better abstractions for application programming, e.g., as shown for programming with databases [BHM08, Fis05], GUI programming [Han00], web  ...  Since KiCS2 compiles Curry programs into Haskell programs, we used the Glasgow Haskell Compiler (GHC 7.0.4, option -O2) to compile and execute the generated target programs.  ... 
doi:10.1145/234528.234734 fatcat:o34vgwwnbbcllnwozymoizu3am

Improving Lazy Non-Deterministic Computations by Demand Analysis

Michael Hanus, Marc Herbstritt
2012 International Conference on Logic Programming  
We demonstrate the positive effects of this program transformation with KiCS2, a recent highly efficient implementation of the functional logic programming language Curry.  ...  In order to improve the execution behavior in such situations, we propose a program analysis that guides a program transformation to avoid such inefficiencies.  ...  In this paper we consider KiCS2 [19] , a new system that compiles functional logic programs of the source language Curry [38] into purely functional Haskell programs.  ... 
doi:10.4230/lipics.iclp.2012.130 dblp:conf/iclp/Hanus12 fatcat:brk5o7y5rvajrgcoiqkpnxgop4

Memoized Pull-Tabbing for Functional Logic Programming [article]

Michael Hanus, Finn Teegen
2020 arXiv   pre-print
This could result in a dramatic increase of execution time compared to a backtracking implementation.  ...  It has been used to compile functional logic languages into imperative or purely functional target languages. Pull-tab steps might duplicate choices in case of shared subexpressions.  ...  The Curry compiler KiCS2 [13] is based on pull-tabbing and compiles Curry programs into a purely functional Haskell programs.  ... 
arXiv:2008.11999v1 fatcat:i7c6gnt22jblveiamsljjgkwwe

A Generic Analysis Server System for Functional Logic Programs [article]

Michael Hanus, Fabian Reck
2013 arXiv   pre-print
CASS is completely implemented in the functional logic language Curry as a master/worker architecture to exploit parallel or distributed execution environments.  ...  For this purpose, CASS can also be invoked as a server system to get a language-independent access to its functionality.  ...  The authors are grateful to Heiko Hoffmann for his contribution to an initial version of the analysis system and Sandra Dylus for her suggestions to improve the paper.  ... 
arXiv:1307.4648v1 fatcat:lmhunncxzjcp3ejgudeyzedcu4

Adding Data to Curry [article]

Michael Hanus, Finn Teegen
2019 arXiv   pre-print
In this paper, we present a solution to these problems by introducing a new type class "Data" which is associated with specific algebraic data types, logic variables, and strict equality.  ...  Thus, the definition of an appropriate meaning of equality has a long history in these languages, ranging from reflexive equality in early equational logic languages to strict equality in contemporary  ...  The authors are grateful to Sandra Dylus and Marius Rasch for fruitful discussions during the conception phase of this paper.  ... 
arXiv:1908.10607v1 fatcat:vubjepbn2ba37owpqffzzqzgbi

ICurry [article]

Sergio Antoy, Michael Hanus, Andy Jost, Steven Libby
2019 arXiv   pre-print
FlatCurry is a well-established intermediate representation of Curry programs used in compilers that translate Curry code into Prolog and Haskell code.  ...  We introduce a new representation of Curry programs, called ICurry, and derive a translation from all FlatCurry constructs into ICurry.  ...  KiCS2 translates source Curry code into Haskell, leveraging the existence of first-class function and their efficient demand-driven execution in Haskell.  ... 
arXiv:1908.11101v1 fatcat:nuehgz5f3ndt3ck5tb6muyar4u

From Boolean Equalities to Constraints [chapter]

Sergio Antoy, Michael Hanus
2015 Lecture Notes in Computer Science  
Consequently, the language Curry, which amalgamates functional and logic programming features, offers two kinds of equational expressions so that the programmer has to distinguish between these uses.  ...  A typical example is the factorial function where the base case is distinguished from the recursive case by comparing the argument with 0: 1 fac n = if n==0 then 1 else n * fac (n-1) On the other hand,  ...  KiCS2 (Version 0.4.0) has been used with the Glasgow Haskell Compiler (GHC 7.6.3, option -O2) as its backend.  ... 
doi:10.1007/978-3-319-27436-2_5 fatcat:bo4mpvk2pnhhfdsir37dvebhiy

A semantics for weakly encapsulated search in functional logic programs

Jan Christiansen, Michael Hanus, Fabian Reck, Daniel Seidel
2013 Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming - PPDP '13  
Encapsulated search is a key feature of (functional) logic languages. It allows the programmer to access and process different results of a non-deterministic computation within a program.  ...  The semantics is also the basis of a practical implementation of search operators in the functional logic language Curry.  ...  The authors are grateful to the anonymous referees for helpful comments and suggestions to improve the paper.  ... 
doi:10.1145/2505879.2505896 dblp:conf/ppdp/ChristiansenHRS13 fatcat:q6r4b5hmnzhspdsr3t46h47ntq

Combining Static and Dynamic Contract Checking for Curry [article]

Michael Hanus
2017 arXiv   pre-print
Based on a formal model of contract checking for functional logic programming, we propose an automatic method to verify contracts at compile time.  ...  To improve this situation for declarative languages, we present an approach to combine static and dynamic contract checking for the functional logic language Curry.  ...  The author is grateful to the anonymous reviewers for their helpful comments.  ... 
arXiv:1709.04816v1 fatcat:gubkjo2vszawnc4efd2xji6mw4

From Logic to Functional Logic Programs [article]

Michael Hanus
2022 arXiv   pre-print
Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow.  ...  To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable functions into predicates in order to stay in the logic programming framework  ...  KiCS2 compiles Curry programs to Haskell programs by representing non-deterministic computations as search trees, i.e., the generated Haskell functions return a tree of all result values.  ... 
arXiv:2205.06841v1 fatcat:du6oucg3zrfptfxrlxhkky55ue
« Previous Showing results 1 — 15 out of 25 results