SwePub
Sök i SwePub databas

  Utökad sökning

Träfflista för sökning "WFRF:(Jeuring Johan 1965) "

Sökning: WFRF:(Jeuring Johan 1965)

  • Resultat 1-10 av 12
Sortera/gruppera träfflistan
   
NumreringReferensOmslagsbildHitta
1.
  • Backhouse, Roland, et al. (författare)
  • Generic Programming: An Introduction
  • 1999
  • Ingår i: Advanced Functional Programming. ; 1608, s. 28--115-
  • Bokkapitel (övrigt vetenskapligt/konstnärligt)
  •  
2.
  • Gerdes, Alex, 1978, et al. (författare)
  • Ask-Elle: an Adaptable Programming Tutor for Haskell Giving Automated Feedback
  • 2017
  • Ingår i: International Journal of Artificial Intelligence in Education. - : Springer Science and Business Media LLC. - 1560-4306 .- 1560-4292. ; 27:1, s. 65-100
  • Tidskriftsartikel (refereegranskat)abstract
    • Ask-Elle is a tutor for learning the higher-order, strongly-typed functional programming language Haskell. It supports the stepwise development of Haskell programs by verifying the correctness of incomplete programs, and by providing hints. Programming exercises are added to Ask-Elle by providing a task description for the exercise, one or more model solutions, and properties that a solution should satisfy. The properties and model solutions can be annotated with feedback messages, and the amount of flexibility that is allowed in student solutions can be adjusted. The main contribution of our work is the design of a tutor that combines (1) the incremental development of different solutions in various forms to a programming exercise with (2) automated feedback and (3) teacher-specified programming exercises, solutions, and properties. The main functionality is obtained by means of strategy-based model tracing and property-based testing. We have tested the feasibility of our approach in several experiments, in which we analyse both intermediate and final student solutions to programming exercises, amongst others.
  •  
3.
  • Jansson, Patrik, 1972, et al. (författare)
  • A Framework for Polytypic Programming on Terms, with an Application to Rewriting
  • 2000
  • Ingår i: Workshop on Generic Programming.
  • Konferensbidrag (refereegranskat)abstract
    • Rewriting is a typical example of a polytypic function. Given any value of a datatype (an algebra of terms), and rules to rewrite values of that datatype, we want a function that rewrites the value to normal form if the value is normalizable. This paper develops a polytypic rewriting function that uses the parallel innermost rewriting strategy. It improves upon our earlier work on polytypic rewriting in two fundamental ways. Firstly, the rewriting function uses a term interface that hides the polytypic part from the rest of the program. The term interface is a framework for polytypic programming on terms. This implies that the rewriting function is independent of the particular implementation of polytypism. We give several functions and laws on terms, which simplify calculating with programs. Secondly, the rewriting function is developed together with a correctness proof. We just present the result of the correctness proof, the proof itself is published elsewhere.
  •  
4.
  • Jansson, Patrik, 1972, et al. (författare)
  • Functional Pearl: Polytypic Unification
  • 1998
  • Ingår i: Journal of Functional Programming. - 1469-7653 .- 0956-7968. ; 8:5, s. 527-536
  • Tidskriftsartikel (refereegranskat)abstract
    • Unification, or two-way pattern matching, is the process of solving an equation involving two first-order terms with variables. Unification is used in type inference in many programming languages and in the execution of logic programs. This means that unification algorithms have to be written over and over again for different term types. Many other functions also make sense for a large class of datatypes; examples are pretty printers, equality checks, maps etc. They can be defined by induction on the structure of user-defined datatypes. Implementations of these functions for different datatypes are closely related to the structure of the datatypes. We call such functions polytypic. This paper describes a unification algorithm parametrised on the type of the terms, and shows how to use polytypism to obtain a unification algorithm that works for all regular term types.
  •  
5.
  • Jansson, Patrik, 1972, et al. (författare)
  • PolyLib - a polytypic function library
  • 1998
  • Ingår i: Workshop on Generic Programming.
  • Konferensbidrag (refereegranskat)abstract
    • A polytypic program is a program that behaves uniformly over a large class of datatypes. For functional polytypic programming this uniformity is achieved by parameterizing functions over type constructors to obtain polytypic functions. A polytypic function is defined either by induction on the structure of regular type constructors or in terms of other polytypic functions. PolyP is an extension of the functional programming language Haskell with a construct for defining polytypic functions. PolyP is a type guided preprocessor that generates instances of polytypic functions and inserts applications of these instances where needed.During the last few years we have used PolyP to construct a number of polytypic programs, for example for unification, parsing, rewriting, pattern matching, etc. These polytypic programs use several basic polytypic functions, such as the relatively well-known cata and map, but also less well-known functions such as propagate and thread. We have collected these basic polytypic functions in the library of PolyP: PolyLib. This paper describes the polytypic functions in PolyLib, motivates their presence in the library, and gives a rationale for their design. Thus we hope to share our experience with other researchers in the field. We will assume the reader has some familiarity with the field of polytypic programming.Of course, a library is an important part of a programming language. Languages like Java, Delphi, Perl and Haskell are popular partly because of their useful and extensive libraries. For a polytypic programming language it is even more important to have a clear and well-designed library: writing polytypic programs is difficult, and we do not expect many programmers to write polytypic programs. On the other hand, many programmers use polytypic programs such as parser generators, equality functions, etc.This is a first attempt to describe the library of PolyP; we expect that both the form and content of this description will change over time. One of the goals of this paper is to obtain feedback on the library design from other researchers working within the field. At the moment the library only contains the basic polytypic functions. In the future we will develop special purpose sublibraries for polytypic functions with more advanced functionality, for example for parsing and the other programs mentioned above.
  •  
6.
  • Jansson, Patrik, 1972, et al. (författare)
  • PolyP - a polytypic programming language extension
  • 1997
  • Ingår i: Principles of Programming Languages. - 0897918533 ; POPL97, s. 470-482
  • Konferensbidrag (refereegranskat)abstract
    • Many functions have to be written over and over again for different datatypes, either because datatypes change during the development of programs, or because functions with similar functionality are needed on different datatypes. Examples of such functions are pretty printers, debuggers, equality functions, unifiers, pattern matchers, rewriting functions, etc. Such functions are called polytypic functions. A polytypic function is a function that is defined by induction on the structure of user-defined datatypes. This paper extends a functional language (a subset of Haskell) with a construct for writing polytypic functions. The extended language type checks definitions of polytypic functions, and infers the types of all other expressions using an extension of Jones' theories of qualified types and higher-order polymorphism. The semantics of the programs in the extended language is obtained by adding type arguments to functions in a dictionary passing style. Programs in the extended language are translated to Haskell.
  •  
7.
  • Jansson, Patrik, 1972, et al. (författare)
  • Polytypic Compact Printing and Parsing
  • 1999
  • Ingår i: European Symposium on Programming. ; 1576, s. 273-287
  • Konferensbidrag (refereegranskat)abstract
    • A generic compact printer and a corresponding parser are constructed. These programs transform values of any regular datatype to and from a bit stream. The algorithms are constructed along with a proof that printing followed by parsing is the identity. Since the binary representation is very compact, the printer can be used for compressing data - possibly supplemented with some standard algorithm for compressing bit streams. The compact printer and the parser are described in the polytypic Haskell extension PolyP.
  •  
8.
  • Jansson, Patrik, 1972, et al. (författare)
  • Polytypic Data Conversion Programs
  • 2002
  • Ingår i: Science of Computer Programming. - 0167-6423. ; 43:1, s. 35-75
  • Tidskriftsartikel (refereegranskat)abstract
    • Several generic programs for converting values from regular datatypes to some other format, together with their corresponding inverses, are constructed. Among the formats considered are shape plus contents, compact bit streams and pretty printed strings. The different data conversion programs are constructed using John Hughes arrow combinators along with a proof that printing (from a regular datatype to another format) followed by parsing (from that format back to the regular datatype) is the identity. The printers and parsers are described in PolyP, a polytypic extension of the functional language Haskell.
  •  
9.
  • Jansson, Patrik, 1972, et al. (författare)
  • Testing Properties of Generic Functions
  • 2006
  • Rapport (övrigt vetenskapligt/konstnärligt)abstract
    • Software testing is an important part of the software development process. Testing comes in many flavours: unit testing, property testing, regression testing, contract checking, etc. QuickCheck is probably one of the most advanced tools for testing properties of functional programs. It supports the definition of properties and random test-data generators in Haskell, and checks that a property passes the test cases. A datatype-generic function is parametrised by a type. Examples of generic functions are equality tests, maps and pretty printers. A generic function can be seen as a template algorithm that can be instantiated with (the structure of) a data type. Generic functions satisfy generic properties. This paper discusses testing properties of generic functions. It shows how generic properties can be formulated, and how QuickCheck can be used to test generic properties. Furthermore, it shows how to automatically generate QuickCheck generators using Generic Haskell.
  •  
10.
  • Jansson, Patrik, 1972, et al. (författare)
  • Testing Properties of Generic Functions
  • 2007
  • Ingår i: LNCS, Proceedings of IFL 2006. ; 4449
  • Konferensbidrag (refereegranskat)abstract
    • A datatype-generic function is a family of functions indexed by (the structure of) a type. Examples include equality tests, maps and pretty printers. Property based testing tools like QuickCheck and Gast support the definition of properties and test-data generators, and they check if a monomorphic property is satisfied by the test cases. Generic functions satisfy generic properties and this paper discusses specifying and testing such properties. It shows how generic properties and generators can be expressed, and explains three bugs we found and corrected in the Generic Haskell library.
  •  
Skapa referenser, mejla, bekava och länka
  • Resultat 1-10 av 12

Kungliga biblioteket hanterar dina personuppgifter i enlighet med EU:s dataskyddsförordning (2018), GDPR. Läs mer om hur det funkar här.
Så här hanterar KB dina uppgifter vid användning av denna tjänst.

 
pil uppåt Stäng

Kopiera och spara länken för att återkomma till aktuell vy