Machine X Language

334 views

Published on

Presented in Functional Thursday Meetup #4

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
334
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Machine X Language

  1. 1. MACHINE X LANGUAGE Yun-Yan Chi
  2. 2. Programming and Machine Learning Inductive Programming Program Synthesis
  3. 3. Programming problems / tasks specifications algorithms (in mind) programs
  4. 4. Programming problems / tasks understand and realize specifications precise
  5. 5. Programming problems / tasks unknown or too complicated specifications (static or dynamic behavior) vague or incomplete
  6. 6. Machine Learning learning from information examples => problem solver Neural network Bayesian networks Rule learning
  7. 7. Inductive Programming Machine Learning Artificial Intelligence Programming Language Software Engineering
  8. 8. Inductive Programming deductive view of software development from the general to the specific code generation from UML program transformation theorem proving model checking
  9. 9. Inductive Programming inductive view of software development mathematical induction from the specific to the general incomplete specification -> program inputs: test cases, I/O examples, traces, behavior of a program, etc. outputs: program, algorithm
  10. 10. Inductive Programming inductive logic programming learn concepts(hypotheses), represented by logic clauses, from examples generate-and-test somehow generate functions test functions by examples e.g. genetic programming, enumeration, etc. (term rewriting / search / ranking)
  11. 11. DEMO
  12. 12. De-typechecker Oleg Kiselyov converting from undefined to defined [input] purely polymorphic function types function types as logic programs (on type level) implement SLD resolution (by typeclass) [output] lambda function http://okmij.org/ftp/Haskell/de-typechecker.lhs http://okmij.org/ftp/Haskell/types.html#de-typechecker
  13. 13. De-typechecker undefined::(a->a) undefined::(a->b) undefined::(b -> c) -> (a -> b) -> a -> c (((. head . uncurry zip . splitAt 1 . repeat) . uncurry) .) . (.) . flip reify (undefined `asTypeOf` ((((. head . uncurry zip . splitAt 1 . repeat) . uncurry) .) . (.) . flip)) gamma0
  14. 14. MagicHaskeller Susumu Katayama (片山 晋) Synthesize by exhaustive searching [input] inputs and predicates proposition (by type inference) proof trees (by sequent calculus) [output] function definition http://okmij.org/ftp/Haskell/de-typechecker.lhs http://okmij.org/ftp/Haskell/types.html#de-typechecker
  15. 15. MagicHaskeller webpage f [5,1,3,4,2] == [1,2,3,4,5] f [1,2,3] == [[3,2,1],[3,2],[3],[]] && f [4,5,6] == [[6,5,4],[6,5],[6],[]] f (1,3) >= 4 && f (7,3) <= 10 f ([1,2,3],[3,2,1]) == [(1,3),(2,2),(3,1)] && (f ([], []) == []) && (f ([3],[2]) == [(3,2)]) http://www.inductive-programming.org/repository/problems/mhask/examples.txt
  16. 16. Program Synthesis Inductive programming: 2005 2009, 2010, 2011 Sumit Gulwani (Microsoft Research) (Inductive) Program Synthesis
  17. 17. Program Synthesis [1] Programmers software develop algorithm design program inverse [2] Users Education enabling them to bring their creativity to life!
  18. 18. GLANCE
  19. 19. Program Synthesis [input] User Intent examples logic natural language [output] Application / Tool
  20. 20. Program Synthesis AI-style search Formal reasoning (SAT/SMT solver) FLOLAC 13
  21. 21. ICFPC
  22. 22. Reference http://www.inductive-programming.org/ http://okmij.org/ftp/Haskell/types.html#de-typechecker http://okmij.org/ftp/Haskell/de-typechecker.lhs http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskellerLib.html http://www.inductive-programming.org/repository/problems/mhask/ examples.txt http://research.microsoft.com/en-us/um/people/sumitg/pubs/ synthesis.html

×