Inductive Programming

Size: px
Start display at page:

Download "Inductive Programming"

Transcription

1 Inductive Programming A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems Hofmann, Kitzelmann, Schmid Cognitive Systems Group University of Bamberg AGI 2009 CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 1 / 22

2 Inductive Program Synthesis (IP) Inductive Program Synthesis (IP) researches the automatic construction of (recursive) programs from incomplete specifications, i.e. input/ouput examples (I/O examples) Example (reverse) I/O-examples: reverse [] = [] reverse [a] = [a] reverse [a,b] = [b,a] reverse [a,b,c] = [c,b,a] Induced functional program: reverse [] = [] reverse (x:xs) = (reverse xs) ++ [x] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 2 / 22

3 Key Concepts Preference Bias criteria to choose among (semantically different!) candidate solutions, i.e syntactic size, number of case distinctions, runtime (search strategy). Restriction Bias Restricts the inducable class of problems, through syntactic constraints, i.e. linear recursion as sole kind of recursion (hypothese language) Background Knowledge already implemented functions, which can by used for synthesis, i.e. append and partition for quicksort Sub Functions Functions neither defined as target functions nor in the background knowledge, but automaticallly introduced as auxiliary functions by the IP algorithm CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 3 / 22

4 Key Concepts Preference Bias criteria to choose among (semantically different!) candidate solutions, i.e syntactic size, number of case distinctions, runtime (search strategy). Restriction Bias Restricts the inducable class of problems, through syntactic constraints, i.e. linear recursion as sole kind of recursion (hypothese language) Background Knowledge already implemented functions, which can by used for synthesis, i.e. append and partition for quicksort Sub Functions Functions neither defined as target functions nor in the background knowledge, but automaticallly introduced as auxiliary functions by the IP algorithm CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 3 / 22

5 Key Concepts Preference Bias criteria to choose among (semantically different!) candidate solutions, i.e syntactic size, number of case distinctions, runtime (search strategy). Restriction Bias Restricts the inducable class of problems, through syntactic constraints, i.e. linear recursion as sole kind of recursion (hypothese language) Background Knowledge already implemented functions, which can by used for synthesis, i.e. append and partition for quicksort Sub Functions Functions neither defined as target functions nor in the background knowledge, but automaticallly introduced as auxiliary functions by the IP algorithm CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 3 / 22

6 Key Concepts Preference Bias criteria to choose among (semantically different!) candidate solutions, i.e syntactic size, number of case distinctions, runtime (search strategy). Restriction Bias Restricts the inducable class of problems, through syntactic constraints, i.e. linear recursion as sole kind of recursion (hypothese language) Background Knowledge already implemented functions, which can by used for synthesis, i.e. append and partition for quicksort Sub Functions Functions neither defined as target functions nor in the background knowledge, but automaticallly introduced as auxiliary functions by the IP algorithm CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 3 / 22

7 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Inductive Logic Programming (ILP) Inductive Functional Programming (IFP) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 4 / 22

8 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Inductive Logic Programming (ILP) ILP is machine learning with representation and inference based on Computational Logic (PROLOG). IP as special case of ILP. Inductive Functional Programming (IFP) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 4 / 22

9 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Inductive Logic Programming (ILP) Inductive Functional Programming (IFP) Based Term Rewriting or Combinatory Logic / λ-calculus primary objective is program learning CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 4 / 22

10 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Analytic Generate & Test CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 5 / 22

11 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Analytic different inputs are sub problems of each other so their output is included in other outputs as subterms analyze I/Os and fold regularities into a recursive definition Generate & Test CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 5 / 22

12 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Analytic Generate & Test (1): systematic enumerate all correct programs systematically constraints limit search space (type information, library, modes) I/Os are only used as filter CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 5 / 22

13 Different Approaches analytic generate & test systematic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II GOLEM MAGIC- HASKELLER evolutionary ADATE Analytic Generate & Test (2): evolutionary heuristic use genetic coperators to traverse search space fitness function maps programs to numeric space evaluated program attributes are e.g. runtime, program size, etc. CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 5 / 22

14 Different Approaches analytic logic DIALOGS-II FOIL/FFOIL, functional THESYS, IGOR I, IGOR II generate & test systematic evolutionary GOLEM MAGIC- HASKELLER ADATE large diversity of underlying theoretical concepts and requirements hard to compare and evaluate CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 6 / 22

15 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

16 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

17 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

18 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

19 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

20 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

21 Need for Unifying Framework Provide system independent syntax and operational semantics Benefits + consistent representation of different target languages + gives a unifying ( normalised ) perspecitve on IP systems + helps identifying system specific strength and weaknesses + provide a transparent evaluation and comparison of IP systems + basis for a general IP algorithm + means for an abstract problem definition language (IP Problem Definition Language) Conditional Constructor (Rewrite) Systems (CCS) CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 7 / 22

22 The paper at one glance C F T F B F I E + E BK X 2 search strategy ADATE { } global search, g n t FLIP, sequential covering FFOIL c, sequential covering GOLEM { } sequential covering IGOR I { } 2-step, global search IGOR II global search MAGH. { } breadth first, g n t unrestricted / conditional rules restricted / unconditional rules { } singleton set empty set c constants built in predicates CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 8 / 22

23 Empirical Results isort reverse weave shiftr mult/add allodds ADATE FLIP FFOIL 0.4 < GOLEM IGOR II MAGH lasts last member odd/even multlast ADATE FLIP FFOIL < 0.1 < 0.1 GOLEM < < IGOR II MAGH not tested stack overflow timeout wrong all runtimes in seconds CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 9 / 22

24 Our Project Publications Downloads Links CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 10 / 22

25 inductive-programming.org Introduction to IP Systems overview Repository with benchmark problems IP related publications Mailing list... CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 11 / 22

26 Thank you for your attention! CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 12 / 22

27 ... estion Questions? Questions? Questions? Questions? Questions? Questions? Questions? Questions? Questions? Questions? CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 12 / 22

28 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

29 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

30 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

31 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

32 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

33 CCS in a nutshell given a set of function symbols Σ and a set of variables X terms over Σ and X denoted as T Σ (X ) constructors C and defined function symbols F Σ = F C, F C = programs are sets of rewrite rules lhs rhs lhs is of the form F (p 1,..., p n ) with F F and p i T C (X ) conditional rewrite rules lhs rhs cond where cond {v 1 = u 1,..., v n = u n } and v i, u i T Σ (X ) rewriting binds free variables in v i, modelling variable declaration, let- and case-expressions higher-order context with X = X 1 X 2 and abstraction operator [ ] CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 13 / 22

34 CCS Target Languages in the CCS Framework multlast([]) -> [] multlast([a]) -> [A] multlast([a,b C]) -> [D,D E] <= [D E] = multlast([b C]) Haskell multlast [] = [] multlast [A] = [A] multlast [A,B C] = let [D E] = multlast([b C]) in [D,D E] Prolog multlast([], []). multlast([a], [A]). multlast([a,b C],[D,D E]) :- multlast([b C],[D E]). CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 14 / 22

35 The IP task in CCS function symbols F = F T F B F I user defined rules R = E + E BK restriction bias (lhs, rhs, u, v T Σ (X )) preference bias ( ) IP Task CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

36 The IP task in CCS function symbols F = F T F B F I F T F B F I function symbols of target functions function symbols of background knowledge pool of function symbols for inventing sub functions user defined rules R = E + E BK restriction bias (lhs, rhs, u, v T Σ (X )) preference bias ( ) IP Task CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

37 The IP task in CCS function symbols F = F T F B F I user defined rules R = E + E BK E + positive evidence F(t 1,..., t n ) r E negative evidence as inequalities F(t 1,..., t n ) r BK background knowledge F(t 1,..., t n ) r {v 1 = u 1,..., v n = u n } restriction bias (lhs, rhs, u, v T Σ (X )) preference bias ( ) IP Task CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

38 The IP task in CCS function symbols F = F T F B F I user defined rules R = E + E BK restriction bias (lhs, rhs, u, v T Σ (X )) Allow only a subset of T Σ (X ) for lhss, rhss, and conditions preference bias ( ) IP Task CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

39 The IP task in CCS function symbols F = F T F B F I user defined rules R = E + E BK restriction bias (lhs, rhs, u, v T Σ (X )) preference bias ( ) Partial ordering on terms, lhss, rhss, conditions, rules, and programs IP Task CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

40 The IP task in CCS function symbols F = F T F B F I user defined rules R = E + E BK restriction bias (lhs, rhs, u, v T Σ (X )) preference bias ( ) IP Task Find a set of rules R T s.t. R T BK = E + R T BK = E and R T is optimal w.r.t. restriction and preference bias. CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 15 / 22

41 Higher-Order Rewriting map([u]z(u),nil) map([u]z(u),cons(x,y)) -> nil -> cons(z(x),map([u]z(u),y)) more Terese p 612 CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 16 / 22

42 ADATE F T F B F I C unrestricted singleton unrestricted E + unrestricted E unrestricted BK unrestricted X 2 restr. bias subset of SML pref. bias user defined fitness function search str. global search, generate and test CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 17 / 22

43 F T F B C unrestricted F I unrestricted unrestricted E + unconditional FLIP E unconditional (may be empty) BK unrestricted X 2 restr.bias lhs is a consistent (w.r.t. evidence) but restricted (no new variables on rhs least general generalisation of two positive examples rhs is derived via inverse narrowing from two lhss pref. bias minimum discription length and coverage search str. heuristic search with sequential covering CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 18 / 22

44 FFOIL F T C constants, including {true, false} singleton F B {=,, <,, >,, } F I E + unconditional E unconditional (may be empty) BK unconditional X 2 restr. bias l, v {F(i 1,..., i n ) i i X 1, F F} r, u T Σ (X ) pref. bias foil gain search str. sequential covering CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 19 / 22

45 F T F B C {true, false} F I singleton unrestricted E + unconditional E unconditional BK unrestricted X 2 GOLEM restr. bias l, v {F(i 1,..., i n ) i i T Σ (X ), F F} r, u T Σ (X ) pref. bias clause with highest coverage in a lattice of least general generalisations relative to BK of randomly picked examples search str. sequential covering CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 20 / 22

46 F T F B C unrestricted F I unrestricted unrestricted IGOR II domain of invented function equals domain of calling function (no variable invention) E + unconditional E BK unconditional X 2 restr. bias non-overlapping lhss, rhs = F(...), F F I, conditions model only let-expressions pref. bias fewer case distinctions, most specific patterns, fewer recursive calls or calls to BK search str. best first CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 21 / 22

47 MAGICHASKELLER F T F B F I C unrestricted singleton unrestricted E + unrestricted E unrestricted BK unrestricted X 2 only via paramorphisms from BK restr. bias type constraints, composition of functions from BK pref. bias smallest w.r.t. BK search str. breadth first, generate and test CogSys Group (Univ. Bamberg) Inductive Programming AGI 2009, Arlington 22 / 22

A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems

A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems A Unifying Framework for Analysis and Evaluation of Inductive Programming Systems Martin Hofmann and Emanuel Kitzelmann and Ute Schmid Faculty Information Systems and Applied Computer Science University

More information

Lecture 13: Inductive Program Synthesis

Lecture 13: Inductive Program Synthesis Lecture 13: Inductive Program Synthesis Cognitive Systems - Machine Learning Part III: Learning Programs and Strategies Inductive Programming, Functional Programs, Program Schemes, Traces, Folding last

More information

SC7: Inductive Programming and Knowledge-level Learning Lecture 3

SC7: Inductive Programming and Knowledge-level Learning Lecture 3 SC7: Inductive Programming and Knowledge-level Learning Lecture 3 Ute Schmid Cognitive Systems Fakultät Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich Universität Bamberg IK 13 U. Schmid

More information

Inductive Program Synthesis

Inductive Program Synthesis Inductive Program Synthesis Ute Schmid Joint work with Emanuel Kitzelmann and Martin Hofmann Igor2 slides by Martin Hofmann Cognitive Systems Fakultät Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich

More information

Data-Driven Induction of Recursive Functions from Input/Output-Examples

Data-Driven Induction of Recursive Functions from Input/Output-Examples Data-Driven Induction of Recursive Functions from Input/Output-Examples Emanuel Kitzelmann Faculty of Information Systems and Applied Computer Sciences University of Bamberg ECML/PKDD 2007 Workshop on

More information

A Short Introduction to Inductive Functional Programming

A Short Introduction to Inductive Functional Programming A Short Introduction to Inductive Functional Programming Ute Schmid Cognitive Systems Fakultät Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich Universität Bamberg based on an ExCape Webinar

More information

Data-Driven Induction of Recursive Functions from Input/Output-Examples

Data-Driven Induction of Recursive Functions from Input/Output-Examples Data-Driven Induction of Recursive Functions from Input/Output-Examples Emanuel Kitzelmann Faculty of Information Systems and Applied Computer Sciences, University of Bamberg, 96045 Bamberg, Germany emanuel.kitzelmann@wiai.uni-bamberg.de

More information

SC7: Inductive Programming and Knowledge-level Learning Lecture 2

SC7: Inductive Programming and Knowledge-level Learning Lecture 2 SC7: Inductive Programming and Knowledge-level Learning Lecture 2 Ute Schmid Cognitive Systems Fakultät Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich Universität Bamberg IK 13 U. Schmid

More information

Multi-paradigm Declarative Languages

Multi-paradigm Declarative Languages Michael Hanus (CAU Kiel) Multi-paradigm Declarative Languages ICLP 2007 1 Multi-paradigm Declarative Languages Michael Hanus Christian-Albrechts-University of Kiel Programming Languages and Compiler Construction

More information

Combining Analytical and Evolutionary Inductive Programming

Combining Analytical and Evolutionary Inductive Programming Combining Analytical and Evolutionary Inductive Programming Neil Crossley and Emanuel Kitzelmann and Martin Hofmann and Ute Schmid Faculty Information Systems and Applied Computer Science, University of

More information

Lecture 8: Genetic Algorithms

Lecture 8: Genetic Algorithms Lecture 8: Genetic Algorithms Cognitive Systems - Machine Learning Part II: Special Aspects of Concept Learning Genetic Algorithms, Genetic Programming, Models of Evolution last change December 1, 2010

More information

Gen := 0. Create Initial Random Population. Termination Criterion Satisfied? Yes. Evaluate fitness of each individual in population.

Gen := 0. Create Initial Random Population. Termination Criterion Satisfied? Yes. Evaluate fitness of each individual in population. An Experimental Comparison of Genetic Programming and Inductive Logic Programming on Learning Recursive List Functions Lappoon R. Tang Mary Elaine Cali Raymond J. Mooney Department of Computer Sciences

More information

Inductive Programming: A Survey of Program Synthesis Techniques

Inductive Programming: A Survey of Program Synthesis Techniques Inductive Programming: A Survey of Program Synthesis Techniques Emanuel Kitzelmann Cognitive Systems Group, University of Bamberg emanuel.kitzelmann@uni-bamberg.de Abstract. Inductive programming (IP)

More information

Lecture 6: Inductive Logic Programming

Lecture 6: Inductive Logic Programming Lecture 6: Inductive Logic Programming Cognitive Systems - Machine Learning Part II: Special Aspects of Concept Learning FOIL, Inverted Resolution, Sequential Covering last change November 15, 2010 Ute

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

CSE 3302 Programming Languages Lecture 8: Functional Programming

CSE 3302 Programming Languages Lecture 8: Functional Programming CSE 3302 Programming Languages Lecture 8: Functional Programming (based on the slides by Tim Sheard) Leonidas Fegaras University of Texas at Arlington CSE 3302 L8 Spring 2011 1 Functional Programming Languages

More information

Evaluation Strategies for Functional Logic Programming

Evaluation Strategies for Functional Logic Programming Evaluation Strategies for Functional Logic Programming WRS 01, Utrecht, May 26 Sergio Antoy antoy@cs.pdx.edu Portland State University 1 Outline Whats, hows and whys of Functional Logic Programming. Constructor-based

More information

PROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions

PROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions PROGRAMMING IN HASKELL CS-205 - Chapter 6 - Recursive Functions 0 Introduction As we have seen, many functions can naturally be defined in terms of other functions. factorial :: Int Int factorial n product

More information

Learning Rules. How to use rules? Known methods to learn rules: Comments: 2.1 Learning association rules: General idea

Learning Rules. How to use rules? Known methods to learn rules: Comments: 2.1 Learning association rules: General idea 2. Learning Rules Rule: cond è concl where } cond is a conjunction of predicates (that themselves can be either simple or complex) and } concl is an action (or action sequence) like adding particular knowledge

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2011.3.1 COMPUTER SCIENCE TRIPOS Part IB Monday 6 June 2011 1.30 to 4.30 COMPUTER SCIENCE Paper 3 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Lecture 5: Declarative Programming. The Declarative Kernel Language Machine. September 12th, 2011

Lecture 5: Declarative Programming. The Declarative Kernel Language Machine. September 12th, 2011 Lecture 5: Declarative Programming. The Declarative Kernel Language Machine September 12th, 2011 1 Lecture Outline Declarative Programming contd Dataflow Variables contd Expressions and Statements Functions

More information

Multi-paradigm Declarative Languages

Multi-paradigm Declarative Languages c Springer-Verlag In Proc. of the International Conference on Logic Programming, ICLP 2007. Springer LNCS 4670, pp. 45-75, 2007 Multi-paradigm Declarative Languages Michael Hanus Institut für Informatik,

More information

Functional Logic Programming. Kristjan Vedel

Functional Logic Programming. Kristjan Vedel Functional Logic Programming Kristjan Vedel Imperative vs Declarative Algorithm = Logic + Control Imperative How? Explicit Control Sequences of commands for the computer to execute Declarative What? Implicit

More information

Functional Logic Programming: From Theory to Curry

Functional Logic Programming: From Theory to Curry Functional Logic Programming: From Theory to Curry Michael Hanus Institut für Informatik, CAU Kiel, D-24098 Kiel, Germany. mh@informatik.uni-kiel.de Abstract. Functional logic programming languages combine

More information

Functional programming with Common Lisp

Functional programming with Common Lisp Functional programming with Common Lisp Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 81 Expressions and functions

More information

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dk The most popular purely functional, lazy programming language Functional programming language : a program

More information

Homework 5. Notes. Turn-In Instructions. Reading. Problems. Handout 19 CSCI 334: Spring (Required) Read Mitchell, Chapters 6 and 7.

Homework 5. Notes. Turn-In Instructions. Reading. Problems. Handout 19 CSCI 334: Spring (Required) Read Mitchell, Chapters 6 and 7. Homework 5 Due Wednesday, 14 March Handout 19 CSCI 334: Spring 2018 Notes This homework has two types of problems: Problems: You will turn in answers to these questions. Pair Programming: This part involves

More information

Parsing. Zhenjiang Hu. May 31, June 7, June 14, All Right Reserved. National Institute of Informatics

Parsing. Zhenjiang Hu. May 31, June 7, June 14, All Right Reserved. National Institute of Informatics National Institute of Informatics May 31, June 7, June 14, 2010 All Right Reserved. Outline I 1 Parser Type 2 Monad Parser Monad 3 Derived Primitives 4 5 6 Outline Parser Type 1 Parser Type 2 3 4 5 6 What

More information

An introduction introduction to functional functional programming programming using usin Haskell

An introduction introduction to functional functional programming programming using usin Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dkau Haskell The most popular p purely functional, lazy programming g language Functional programming language : a program

More information

CSCI-GA Scripting Languages

CSCI-GA Scripting Languages CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation

More information

Program Calculus Calculational Programming

Program Calculus Calculational Programming Program Calculus Calculational Programming National Institute of Informatics June 21 / June 28 / July 5, 2010 Program Calculus Calculational Programming What we will learn? Discussing the mathematical

More information

Infinite Derivations as Failures

Infinite Derivations as Failures Infinite Derivations as Failures Andrea Corradi and Federico Frassetto DIBRIS, Università di Genova, Italy name.surname@dibris.unige.it Abstract. When operating on cyclic data, programmers have to take

More information

Chapter 3. Semantics. Topics. Introduction. Introduction. Introduction. Introduction

Chapter 3. Semantics. Topics. Introduction. Introduction. Introduction. Introduction Topics Chapter 3 Semantics Introduction Static Semantics Attribute Grammars Dynamic Semantics Operational Semantics Axiomatic Semantics Denotational Semantics 2 Introduction Introduction Language implementors

More information

Lambda Calculus and Type Inference

Lambda Calculus and Type Inference Lambda Calculus and Type Inference Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ October 13, 2004 Lambda Calculus and Type

More information

The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS

The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER 2012 2013 MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS Time allowed TWO hours Candidates may complete the front

More information

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University Talen en Compilers 2017-2018, period 2 Jurriaan Hage Department of Information and Computing Sciences Utrecht University November 13, 2017 1. Introduction 1-1 This lecture Introduction Course overview

More information

Denotational Semantics. Domain Theory

Denotational Semantics. Domain Theory Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning

More information

Programming in Haskell Aug-Nov 2015

Programming in Haskell Aug-Nov 2015 Programming in Haskell Aug-Nov 2015 LECTURE 11 SEPTEMBER 10, 2015 S P SURESH CHENNAI MATHEMATICAL INSTITUTE Measuring efficiency Measuring efficiency Computation is reduction Application of definitions

More information

Lecture 21: Relational Programming II. November 15th, 2011

Lecture 21: Relational Programming II. November 15th, 2011 Lecture 21: Relational Programming II November 15th, 2011 Lecture Outline Relational Programming contd The Relational Model of Computation Programming with choice and Solve Search Strategies Relational

More information

c constructor P, Q terms used as propositions G, H hypotheses scope identifier for a notation scope M, module identifiers t, u arbitrary terms

c constructor P, Q terms used as propositions G, H hypotheses scope identifier for a notation scope M, module identifiers t, u arbitrary terms Coq quick reference Meta variables Usage Meta variables Usage c constructor P, Q terms used as propositions db identifier for a hint database s string G, H hypotheses scope identifier for a notation scope

More information

Coq quick reference. Category Example Description. Inductive type with instances defined by constructors, including y of type Y. Inductive X : Univ :=

Coq quick reference. Category Example Description. Inductive type with instances defined by constructors, including y of type Y. Inductive X : Univ := Coq quick reference Category Example Description Meta variables Usage Meta variables Usage c constructor P, Q terms used as propositions db identifier for a hint database s string G, H hypotheses scope

More information

CS 242. Fundamentals. Reading: See last slide

CS 242. Fundamentals. Reading: See last slide CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language

More information

CS 457/557: Functional Languages

CS 457/557: Functional Languages CS 457/557: Functional Languages Lists and Algebraic Datatypes Mark P Jones Portland State University 1 Why Lists? Lists are a heavily used data structure in many functional programs Special syntax is

More information

Types and Type Inference

Types and Type Inference Types and Type Inference Mooly Sagiv Slides by Kathleen Fisher and John Mitchell Reading: Concepts in Programming Languages, Revised Chapter 6 - handout on the course homepage Outline General discussion

More information

Scheme. Functional Programming. Lambda Calculus. CSC 4101: Programming Languages 1. Textbook, Sections , 13.7

Scheme. Functional Programming. Lambda Calculus. CSC 4101: Programming Languages 1. Textbook, Sections , 13.7 Scheme Textbook, Sections 13.1 13.3, 13.7 1 Functional Programming Based on mathematical functions Take argument, return value Only function call, no assignment Functions are first-class values E.g., functions

More information

COMP4161: Advanced Topics in Software Verification. fun. Gerwin Klein, June Andronick, Ramana Kumar S2/2016. data61.csiro.au

COMP4161: Advanced Topics in Software Verification. fun. Gerwin Klein, June Andronick, Ramana Kumar S2/2016. data61.csiro.au COMP4161: Advanced Topics in Software Verification fun Gerwin Klein, June Andronick, Ramana Kumar S2/2016 data61.csiro.au Content Intro & motivation, getting started [1] Foundations & Principles Lambda

More information

CSCE 314 Programming Languages

CSCE 314 Programming Languages CSCE 314 Programming Languages Haskell: Higher-order Functions Dr. Hyunyoung Lee 1 Higher-order Functions A function is called higher-order if it takes a function as an argument or returns a function as

More information

Chapter 15. Functional Programming Languages

Chapter 15. Functional Programming Languages Chapter 15 Functional Programming Languages Copyright 2009 Addison-Wesley. All rights reserved. 1-2 Chapter 15 Topics Introduction Mathematical Functions Fundamentals of Functional Programming Languages

More information

Multi-Paradigm Programming

Multi-Paradigm Programming ETAPS 2000 Multi-Paradigm Programming Michael Hanus Christian-Albrechts-Universität Kiel Extend functional languages with features for ➀ logic (constraint) programming ➁ object-oriented programming ➂ concurrent

More information

Evolutionary Search in Machine Learning. Lutz Hamel Dept. of Computer Science & Statistics University of Rhode Island

Evolutionary Search in Machine Learning. Lutz Hamel Dept. of Computer Science & Statistics University of Rhode Island Evolutionary Search in Machine Learning Lutz Hamel Dept. of Computer Science & Statistics University of Rhode Island What is Machine Learning? Programs that get better with experience given some task and

More information

Lecture 6: Inductive Logic Programming

Lecture 6: Inductive Logic Programming Lecture 6: Inductive Logic Programming Cognitive Systems - Machine Learning Part II: Special Aspects of Concept Learning Sequential Covering, FOIL, Inverted Resolution, EBL last change November 26, 2014

More information

Lambda Calculus and Type Inference

Lambda Calculus and Type Inference Lambda Calculus and Type Inference Björn Lisper Dept. of Computer Science and Engineering Mälardalen University bjorn.lisper@mdh.se http://www.idt.mdh.se/ blr/ August 17, 2007 Lambda Calculus and Type

More information

CSCE 314 Programming Languages. Functional Parsers

CSCE 314 Programming Languages. Functional Parsers CSCE 314 Programming Languages Functional Parsers Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a text (set of tokens) and determines its syntactic structure. String or [Token]

More information

Machine Learning based Compilation

Machine Learning based Compilation Machine Learning based Compilation Michael O Boyle March, 2014 1 Overview Machine learning - what is it and why is it useful? Predictive modelling OSE Scheduling and low level optimisation Loop unrolling

More information

Exercise 1 (2+2+2 points)

Exercise 1 (2+2+2 points) 1 Exercise 1 (2+2+2 points) The following data structure represents binary trees only containing values in the inner nodes: data Tree a = Leaf Node (Tree a) a (Tree a) 1 Consider the tree t of integers

More information

Type Processing by Constraint Reasoning

Type Processing by Constraint Reasoning , Martin Sulzmann, Jeremy Wazny 8th November 2006 Chameleon Chameleon is Haskell-style language treats type problems using constraints gives expressive error messages has a programmable type system Developers:

More information

Inductive Synthesis of Functional Programs an Explanation Based Generalization Approach

Inductive Synthesis of Functional Programs an Explanation Based Generalization Approach Journal of Machine Learning Research () Submitted 7/05; Published Inductive Synthesis of Functional Programs an Eplanation Based Generalization Approach Emanuel Kitzelmann emanuel.kitzelmann@wiai.uni-bamberg.de

More information

Shell CSCE 314 TAMU. Higher Order Functions

Shell CSCE 314 TAMU. Higher Order Functions 1 CSCE 314: Programming Languages Dr. Dylan Shell Higher Order Functions 2 Higher-order Functions A function is called higher-order if it takes a function as an argument or returns a function as a result.

More information

Overview. A Compact Introduction to Isabelle/HOL. Tobias Nipkow. System Architecture. Overview of Isabelle/HOL

Overview. A Compact Introduction to Isabelle/HOL. Tobias Nipkow. System Architecture. Overview of Isabelle/HOL Overview A Compact Introduction to Isabelle/HOL Tobias Nipkow TU München 1. Introduction 2. Datatypes 3. Logic 4. Sets p.1 p.2 System Architecture Overview of Isabelle/HOL ProofGeneral Isabelle/HOL Isabelle

More information

Lists. Michael P. Fourman. February 2, 2010

Lists. Michael P. Fourman. February 2, 2010 Lists Michael P. Fourman February 2, 2010 1 Introduction The list is a fundamental datatype in most functional languages. ML is no exception; list is a built-in ML type constructor. However, to introduce

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

Inductive Definitions, continued

Inductive Definitions, continued 1 / 27 Inductive Definitions, continued Assia Mahboubi Jan 7th, 2016 2 / 27 Last lecture Introduction to Coq s inductive types: Introduction, elimination and computation rules; Twofold implementation :

More information

CPS 506 Comparative Programming Languages. Programming Language Paradigm

CPS 506 Comparative Programming Languages. Programming Language Paradigm CPS 506 Comparative Programming Languages Functional Programming Language Paradigm Topics Introduction Mathematical Functions Fundamentals of Functional Programming Languages The First Functional Programming

More information

Quick announcement. Midterm date is Wednesday Oct 24, 11-12pm.

Quick announcement. Midterm date is Wednesday Oct 24, 11-12pm. Quick announcement Midterm date is Wednesday Oct 24, 11-12pm. The lambda calculus = ID (λ ID. ) ( ) The lambda calculus (Racket) = ID (lambda (ID) ) ( )

More information

Chapter 3 Linear Structures: Lists

Chapter 3 Linear Structures: Lists Plan Chapter 3 Linear Structures: Lists 1. Lists... 3.2 2. Basic operations... 3.4 3. Constructors and pattern matching... 3.5 4. Polymorphism... 3.8 5. Simple operations on lists... 3.11 6. Application:

More information

Programming Language Concepts: Lecture 14

Programming Language Concepts: Lecture 14 Programming Language Concepts: Lecture 14 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 14, 11 March 2009 Function programming

More information

OCaml. ML Flow. Complex types: Lists. Complex types: Lists. The PL for the discerning hacker. All elements must have same type.

OCaml. ML Flow. Complex types: Lists. Complex types: Lists. The PL for the discerning hacker. All elements must have same type. OCaml The PL for the discerning hacker. ML Flow Expressions (Syntax) Compile-time Static 1. Enter expression 2. ML infers a type Exec-time Dynamic Types 3. ML crunches expression down to a value 4. Value

More information

Continuation Passing Style. Continuation Passing Style

Continuation Passing Style. Continuation Passing Style 161 162 Agenda functional programming recap problem: regular expression matcher continuation passing style (CPS) movie regular expression matcher based on CPS correctness proof, verification change of

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic 3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

More information

Symbolic Profiling for Multi-Paradigm Declarative Languages

Symbolic Profiling for Multi-Paradigm Declarative Languages Symbolic Profiling for Multi-Paradigm Declarative Languages Elvira Albert and Germán Vidal DSIC, UPV, Camino de Vera s/n, E-46022 Valencia, Spain {ealbert,gvidal}@dsic.upv.es Abstract. We present the basis

More information

Solution sheet 1. Introduction. Exercise 1 - Types of values. Exercise 2 - Constructors

Solution sheet 1. Introduction. Exercise 1 - Types of values. Exercise 2 - Constructors Solution sheet 1 Introduction Please note that there can be other solutions than those listed in this document. This is a literate Haskell file which is available as PDF, as well as literate Haskell source

More information

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242 Spring 2013 Foundations Yu Zhang Acknowledgement: modified from Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/ Course web site: http://staff.ustc.edu.cn/~yuzhang/fpl Reading Concepts

More information

CSCE 314 Programming Languages. Monadic Parsing

CSCE 314 Programming Languages. Monadic Parsing CSCE 314 Programming Languages Monadic Parsing Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a string of characters (or a set of tokens) as input and determines its syntactic structure.

More information

Lambda Calculus and Extensions as Foundation of Functional Programming

Lambda Calculus and Extensions as Foundation of Functional Programming Lambda Calculus and Extensions as Foundation of Functional Programming David Sabel and Manfred Schmidt-Schauß 29. September 2015 Lehrerbildungsforum Informatik Last update: 30. September 2015 Overview

More information

Haskell 98 in short! CPSC 449 Principles of Programming Languages

Haskell 98 in short! CPSC 449 Principles of Programming Languages Haskell 98 in short! n Syntax and type inferencing similar to ML! n Strongly typed! n Allows for pattern matching in definitions! n Uses lazy evaluation" F definition of infinite lists possible! n Has

More information

Functional Programming. Pure Functional Programming

Functional Programming. Pure Functional Programming Functional Programming Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends only on the values of its sub-expressions (if any).

More information

Introduction to Programming, Aug-Dec 2006

Introduction to Programming, Aug-Dec 2006 Introduction to Programming, Aug-Dec 2006 Lecture 3, Friday 11 Aug 2006 Lists... We can implicitly decompose a list into its head and tail by providing a pattern with two variables to denote the two components

More information

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur Module 6 Knowledge Representation and Logic (First Order Logic) 6.1 Instructional Objective Students should understand the advantages of first order logic as a knowledge representation language Students

More information

Lecture 19: Functions, Types and Data Structures in Haskell

Lecture 19: Functions, Types and Data Structures in Haskell The University of North Carolina at Chapel Hill Spring 2002 Lecture 19: Functions, Types and Data Structures in Haskell Feb 25 1 Functions Functions are the most important kind of value in functional programming

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages Lesson 14 Type Checking Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172 1 Type Checking We return to the issue of type safety we discussed informally,

More information

Efficient Exhaustive Generation of Functional Programs using Monte-Carlo Search with Iterative Deepening

Efficient Exhaustive Generation of Functional Programs using Monte-Carlo Search with Iterative Deepening Efficient Exhaustive Generation of Functional Programs using Monte-Carlo Search with Iterative Deepening Susumu Katayama University of Miyazaki 1-1 W. Gakuenkibanadai, Miyazaki, Miyazaki 889-2155, Japan

More information

Computability via Recursive Functions

Computability via Recursive Functions Computability via Recursive Functions Church s Thesis All effective computational systems are equivalent! To illustrate this point we will present the material from chapter 4 using the partial recursive

More information

Learning Rules. CS 391L: Machine Learning: Rule Learning. Raymond J. Mooney. Rule Learning Approaches. Decision-Trees to Rules. Sequential Covering

Learning Rules. CS 391L: Machine Learning: Rule Learning. Raymond J. Mooney. Rule Learning Approaches. Decision-Trees to Rules. Sequential Covering Learning Rules CS 9L: Machine Learning: Rule Learning Raymond J. Mooney University of Texas at Austin If-then rules in logic are a standard representation of knowledge that have proven useful in expert-systems

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Massachusetts Institute of Technology Language Definition Problem How to precisely define language Layered structure

More information

The Typed Racket Guide

The Typed Racket Guide The Typed Racket Guide Version 5.3.6 Sam Tobin-Hochstadt and Vincent St-Amour August 9, 2013 Typed Racket is a family of languages, each of which enforce

More information

MIT Specifying Languages with Regular Expressions and Context-Free Grammars

MIT Specifying Languages with Regular Expressions and Context-Free Grammars MIT 6.035 Specifying Languages with Regular essions and Context-Free Grammars Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Language Definition Problem How to precisely

More information

Introduction to Functional Programming in Haskell 1 / 56

Introduction to Functional Programming in Haskell 1 / 56 Introduction to Functional Programming in Haskell 1 / 56 Outline Why learn functional programming? The essence of functional programming What is a function? Equational reasoning First-order vs. higher-order

More information

1.3. Conditional expressions To express case distinctions like

1.3. Conditional expressions To express case distinctions like Introduction Much of the theory developed in the underlying course Logic II can be implemented in a proof assistant. In the present setting this is interesting, since we can then machine extract from a

More information

Overlapping Rules and Logic Variables in Functional Logic Programs

Overlapping Rules and Logic Variables in Functional Logic Programs ICLP 2006 Overlapping Rules and Logic Variables in Functional Logic Programs Michael Hanus Christian-Albrechts-Universität Kiel (joint work with Sergio Antoy, Portland State University) FUNCTIONAL LOGIC

More information

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions The AI War How machines should learn: inductive or deductive? Deductive: Expert => rules =>

More information

Programming Language Concepts, cs2104 Lecture 04 ( )

Programming Language Concepts, cs2104 Lecture 04 ( ) Programming Language Concepts, cs2104 Lecture 04 (2003-08-29) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2003-09-05 S. Haridi, CS2104, L04 (slides: C. Schulte, S. Haridi) 1

More information

CMSC 331 Final Exam Section 0201 December 18, 2000

CMSC 331 Final Exam Section 0201 December 18, 2000 CMSC 331 Final Exam Section 0201 December 18, 2000 Name: Student ID#: You will have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for

More information

EECS 700 Functional Programming

EECS 700 Functional Programming EECS 700 Functional Programming Dr. Andy Gill University of Kansas February 16, 2010 1 / 41 Parsing A parser is a program that analyses a piece of text to determine its syntactic structure. The expression

More information

INFOB3TC Solutions for the Exam

INFOB3TC Solutions for the Exam Department of Information and Computing Sciences Utrecht University INFOB3TC Solutions for the Exam Johan Jeuring Monday, 13 December 2010, 10:30 13:00 lease keep in mind that often, there are many possible

More information

THE CONCEPTION AND APPLICATION OF PFL : A PROCESS FUNCTIONAL PROGRAMMING LANGUAGE

THE CONCEPTION AND APPLICATION OF PFL : A PROCESS FUNCTIONAL PROGRAMMING LANGUAGE UDC 51:681.3 Ján Kollár THE CONCEPTION AND APPLICATION OF PFL : A PROCESS FUNCTIONAL PROGRAMMING LANGUAGE A new process functional programming paradigm and its application in PFL a process functional programming

More information

Processadors de Llenguatge II. Functional Paradigm. Pratt A.7 Robert Harper s SML tutorial (Sec II)

Processadors de Llenguatge II. Functional Paradigm. Pratt A.7 Robert Harper s SML tutorial (Sec II) Processadors de Llenguatge II Functional Paradigm Pratt A.7 Robert Harper s SML tutorial (Sec II) Rafael Ramirez Dep Tecnologia Universitat Pompeu Fabra Paradigm Shift Imperative Paradigm State Machine

More information

CSCE 314 Programming Languages. Monadic Parsing

CSCE 314 Programming Languages. Monadic Parsing CSCE 314 Programming Languages Monadic Parsing Dr. Hyunyoung Lee 1 What is a Parser? A parser is a program that takes a string of characters (or a set of tokens) as input and determines its syntactic structure.

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

CSCC24 Functional Programming Scheme Part 2

CSCC24 Functional Programming Scheme Part 2 CSCC24 Functional Programming Scheme Part 2 Carolyn MacLeod 1 winter 2012 1 Based on slides from Anya Tafliovich, and with many thanks to Gerald Penn and Prabhakar Ragde. 1 The Spirit of Lisp-like Languages

More information

Main Goal. Language-independent program verification framework. Derive program properties from operational semantics

Main Goal. Language-independent program verification framework. Derive program properties from operational semantics Main Goal Language-independent program verification framework Derive program properties from operational semantics Questions: Is it possible? Is it practical? Answers: Sound and complete proof system,

More information