gi focused auto programming
play

GI++ == Focused Auto Programming? Robert Feldt Chalmers University - PowerPoint PPT Presentation

GI++ == Focused Auto Programming? Robert Feldt Chalmers University of Technology, Sweden at the COW-50, UCL, London, 2017-01-31 @drfeldt One view of SBSE: Ever-expanding Success! A contrarian view of SBSE: Not quite there yet A contrarian


  1. GI++ == Focused Auto Programming? Robert Feldt Chalmers University of Technology, Sweden at the COW-50, UCL, London, 2017-01-31 @drfeldt

  2. One view of SBSE: Ever-expanding Success!

  3. A contrarian view of SBSE: Not quite there yet…

  4. A contrarian view of SBSE: Not quite there yet…

  5. A contrarian view of SBSE: Not quite there yet…

  6. A contrarian view of SBSE: Not quite there yet… "Evolution is the natural way to program” - Tom Ray

  7. A contrarian view of SBSE: Not quite there yet… "I would rather fly on a plane running software evolved by a program like this, than fly on a plane running software I wrote myself," says Hillis, programmer extraordinaire.

  8. Of course it all started much earlier (with Turing)… ;) [Koza2010] in GPEM Anniversary issue

  9. Some common GP/SBSE “cop outs”

  10. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program •

  11. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code •

  12. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes •

  13. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience

  14. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience Evolve test data rather than programs •

  15. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience Evolve test data rather than programs • Evolve test cases and not programs •

  16. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience Evolve test data rather than programs • Evolve test cases and not programs • Requiring lots and lots of example Input/Outputs •

  17. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience Evolve test data rather than programs • Evolve test cases and not programs • Requiring lots and lots of example Input/Outputs • … •

  18. Some common GP/SBSE “cop outs” Tune only constants/numbers in fixed program • Delete/remix existing code • Focus on (minimal) interfaces between existing codes • Focus on non-mainstream/obscure languages / • processing formalisms where humans (currently) have less experience Evolve test data rather than programs • Evolve test cases and not programs • Requiring lots and lots of example Input/Outputs • … • Clear goal, small search space, less/short structure

  19. A continuum of Automated Programming

  20. A continuum of Automated Programming Complexity Time

  21. A continuum of Automated Programming Complexity GP Time

  22. A continuum of Automated Programming Complexity AP? GP Time

  23. A continuum of Automated Programming Complexity AP! AP? GP Time

  24. A continuum of Automated Programming Complexity AP! AP? GI!? GP Time

  25. A continuum of Automated Programming Complexity AP! Focused AP!? AP? GI!? GP Time

  26. Focused Automated Programming

  27. Focused Automated Programming I propose we should study FAP! aka… •

  28. Focused Automated Programming I propose we should study FAP! aka… • Domain-specific Automated Programming (DAP) •

  29. Focused Automated Programming I propose we should study FAP! aka… • Domain-specific Automated Programming (DAP) • Task-specific Automated Programming (TAP) •

  30. Focused Automated Programming I propose we should study FAP! aka… • Domain-specific Automated Programming (DAP) • Task-specific Automated Programming (TAP) • Defined as: “Focused application of search and • optimisation to create/adapt/tune (parts of) program code during its development, setup and/or execution”

  31. Focused Automated Programming I propose we should study FAP! aka… • Domain-specific Automated Programming (DAP) • Task-specific Automated Programming (TAP) • Defined as: “Focused application of search and • optimisation to create/adapt/tune (parts of) program code during its development, setup and/or execution” Focused here essentially means “human-guided”, i.e. • it is a hybrid/interactive development philosophy

  32. Focused Automated Programming I propose we should study FAP! aka… • Domain-specific Automated Programming (DAP) • Task-specific Automated Programming (TAP) • Defined as: “Focused application of search and • optimisation to create/adapt/tune (parts of) program code during its development, setup and/or execution” Focused here essentially means “human-guided”, i.e. • it is a hybrid/interactive development philosophy => we need ideas, intuition and methods/processes • for how to use search/optimisation more actively in the software development process

  33. Example: Web extraction library

  34. Example: Web extraction library

  35. Example: Web extraction library { “name”: “V Basili”, “citations”: 33501, “h-index”: 82 }

  36. Web extraction, traditional solution vs AdaptiLib

  37. Web extraction, traditional solution vs AdaptiLib WebGet Lib

  38. Web extraction, traditional solution vs AdaptiLib WebGet + Lib

  39. Web extraction, traditional solution vs AdaptiLib XML Parser WebGet Lib + Lib

  40. Web extraction, traditional solution vs AdaptiLib XML Parser WebGet Lib + Lib Regex Lib

  41. Web extraction, traditional solution vs AdaptiLib XML Parser WebGet Lib + + Lib Regex Lib

  42. Web extraction, traditional solution vs AdaptiLib XML Parser Custom WebGet Lib + + code Lib Regex Lib

  43. Web extraction, traditional solution vs AdaptiLib XML Parser Custom WebGet Lib + + code Lib Regex Lib AWE Lib

  44. Web extraction, traditional solution vs AdaptiLib XML Parser Custom WebGet Lib + + code Lib Regex Lib AWE + Lib

  45. Web extraction, traditional solution vs AdaptiLib XML Parser Custom WebGet Lib + + code Lib Regex Lib AWE + Examples Lib

  46. Adaptive Libraries

  47. Adaptive Libraries A normal library (lib): •

  48. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called •

  49. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks •

  50. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks • 3. has documentation to describe the functions •

  51. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks • 3. has documentation to describe the functions • 4. and examples to understand API & how to put together •

  52. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks • 3. has documentation to describe the functions • 4. and examples to understand API & how to put together • But only 1 above is directly useable without a human •

  53. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks • 3. has documentation to describe the functions • 4. and examples to understand API & how to put together • But only 1 above is directly useable without a human • 2-4 requires a human to assemble solution based on text •

  54. Adaptive Libraries A normal library (lib): • 1. has a number of functions that can be called • 2. to solve specific tasks • 3. has documentation to describe the functions • 4. and examples to understand API & how to put together • But only 1 above is directly useable without a human • 2-4 requires a human to assemble solution based on text • Adaptive libraries (AdaptiLibs): •

Recommend


More recommend