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): •

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend