SlideShare a Scribd company logo
1 of 15
Download to read offline
DEEPCODER
LEARNING TO WRITE PROGRAMS
dinh-cuong.duong@epita.frA small research about DeepCoder
Review today’s
white papers and
related articles.
Study the existing
published open
source code.
See how it works!
Try out the Deep
Coder to solve a
real situation.
Figure out the
limitations of the
current result.
Further solving...
Interpret output
into machine
runnable code.
Further works!
EXPERIMENTAL
RESEARCH
DEEPCODER
KEY CONCEPT
THE DEEPCODER’s KEY CONCEPT
The main objective of DeepCoder is to solve a problem that takes the name of
Inductive Program Synthesis (IPS): given a pair of input-output, the purpose is
to generate high-level source code, which produces exactly the associated
output from input previously given.
There are two main techniques that arise in solving it:
1. Using Deep Learning to search and sort the functions that will lead to
the desired result, among the various possible functions.
2. Using Domain Specific Languages (DSLs) to restrict the complicated
datatypes and the sophisticated operations, loops or other flow controls.
DEEPCODER
NEURAL NETWORK
THE DEEPCODER’s ENGINE
The heart of DeepCoder consists of an artificial neural network with feed-
forward architecture consisting of 3 layers hidden by 256 neurons per layer ,
with a sigmoid activation function .
DOMAIN SPECIFIC
LANGUAGE (DSL)
THE DEEPCODER’s SUPPORTED DSL FUNCTIONS
Input Function Transformation and Aggregation Function
read list sum reverse
read int count take
zip with head
maximum last
minimum access
map drop
scanl1 sort
filter
Consist of 17 domain specific functions
Review today’s
white papers and
related articles.
Study the existing
published open
source code.
See how it works!
Play around with
Deep Coder to
solve a real
situation.
Figure out the
limitations of the
current result.
Further solving...
Interpret output
into machine
runnable code.
Further works!
EXPERIMENTAL
RESEARCH
TENNIS MATCH
EVALUATION
GENERATE A DSL PROGRAM
In a tennis match, the winner is the side that wins more than half of the sets,
and the match ends as soon as this is achieved. Write a program from a set of
sample inputs and outputs to know how many wins of the 1st player?
TENNIS MATCH
EVALUATION
GENERATE A DSL PROGRAM
In a tennis match, the winner is the side that wins more than half of the sets,
and the match ends as soon as this is achieved. Write a program from a set of
sample inputs and outputs to know how many wins the 1st player has?
TENNIS MATCH
EVALUATION
GENERATE A DSL PROGRAM
In a tennis match, the winner is the side that wins more than half of the sets,
and the match ends as soon as this is achieved. Write a program from a set of
sample inputs and outputs to know how many wins the 1st player has?
Review today’s
white papers and
related articles.
Study the existing
published open
source code.
See how it works!
Try out the Deep
Coder to solve a
real situation.
Figure out the
limitations of the
current result.
Further solving...
Interpret output
into machine
runnable code.
Further works!
EXPERIMENTAL
RESEARCH
TENNIS MATCH
EVALUATION
GENERATE A MACHINE RUNNABLE PROGRAM
DSL program is a pseudo code that generated by DeepCoder. In order to run
this program likely generated by a software developer. It’s need to be
interpreted into machine runnable code. In this scope, it’s translated into a
Node program.
I wrote a Node tool called deep-coder-codegen to translated a DeepCoder’s
DSL program into a Node program with ES6 JavaScript syntax.
Review today’s
white papers and
related articles.
Study the existing
published open
source code.
See how it works!
Try out the Deep
Coder to solve a
real situation.
Figure out the
limitations of the
current result.
Further solving...
Interpret output
into machine
runnable code.
Further works!
EXPERIMENTAL
RESEARCH
TENNIS MATCH
EVALUATION
GENERATE A DSL PROGRAM
In a tennis match, the winner is the side that wins more than half of the sets, and
the match ends as soon as this is achieved. Write a program from a set of sample
inputs and outputs to know how many different wins of the 1st player?
3
2
2
-1
2
DEEPCODER
PROS & CONS
DEEPCODER vs. ME
In order to evaluate the Pros and Cons of DeepCoder, we compare some metrics
with a real life software programmer within the same domain specific context.
Items DeepCoder Me
Cost Of Living 50 € (t2.medium) 1500 € (f2.medium)
Performance 1 second/program 3600 seconds/program
Productivity 1000 programs / sec 8 programs / day
DEEPCODER
REFERENCES
THE DEEPCODER’s REFERENCES
1. White paper: https://openreview.net/pdf?id=ByldLrqlx
2. DeepCoder Source Code: https://github.com/HiroakiMikami/deep-coder
3. Deep Coder CodeGen: https://bitbucket.org/cuongquay/deep-coder-codegen/src/master/

More Related Content

Similar to Deep Coder - Experimental Research Presentation

PRG/420 ENTIRE CLASS UOP TUTORIALS
PRG/420 ENTIRE CLASS UOP TUTORIALSPRG/420 ENTIRE CLASS UOP TUTORIALS
PRG/420 ENTIRE CLASS UOP TUTORIALSSharon Reynolds
 
Cis 170 ilab 4 of 7
Cis 170 ilab 4 of 7Cis 170 ilab 4 of 7
Cis 170 ilab 4 of 7comp274
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll buildMark Stoodley
 
Code Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Code Refactoring or Rewrite: How to Properly Dispose of Legacy CodeCode Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Code Refactoring or Rewrite: How to Properly Dispose of Legacy CodeRoman Labunsky
 
PRG 420 NERD Become Exceptional--prg420nerd.com
PRG 420 NERD Become Exceptional--prg420nerd.comPRG 420 NERD Become Exceptional--prg420nerd.com
PRG 420 NERD Become Exceptional--prg420nerd.comagathachristie127
 
PRG 420 NERD Education Counseling--prg420nerd.com
PRG 420 NERD Education Counseling--prg420nerd.comPRG 420 NERD Education Counseling--prg420nerd.com
PRG 420 NERD Education Counseling--prg420nerd.comvenkat60044
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddRodrigo Urubatan
 
Dictionary project report.docx
Dictionary project report.docxDictionary project report.docx
Dictionary project report.docxkishoreadhikari2
 
Programming in Java: Getting Started
Programming in Java: Getting StartedProgramming in Java: Getting Started
Programming in Java: Getting StartedMartin Chapman
 
Encode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in MotokoEncode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in MotokoKlaraOrban
 
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecTDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecPatrick Luca Fazzi
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmerLeylimYaln
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application growsCarolina Karklis
 
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasHire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasWithTheBest
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as codeChristian Rasp
 
python workshop(one of the 15 chapters)
python workshop(one of the 15 chapters)python workshop(one of the 15 chapters)
python workshop(one of the 15 chapters)Mehul shah
 
Android Beat the-quiz application
Android Beat the-quiz applicationAndroid Beat the-quiz application
Android Beat the-quiz applicationAyush Singh
 

Similar to Deep Coder - Experimental Research Presentation (20)

PRG/420 ENTIRE CLASS UOP TUTORIALS
PRG/420 ENTIRE CLASS UOP TUTORIALSPRG/420 ENTIRE CLASS UOP TUTORIALS
PRG/420 ENTIRE CLASS UOP TUTORIALS
 
Cis 170 ilab 4 of 7
Cis 170 ilab 4 of 7Cis 170 ilab 4 of 7
Cis 170 ilab 4 of 7
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
Code Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Code Refactoring or Rewrite: How to Properly Dispose of Legacy CodeCode Refactoring or Rewrite: How to Properly Dispose of Legacy Code
Code Refactoring or Rewrite: How to Properly Dispose of Legacy Code
 
PRG 420 NERD Become Exceptional--prg420nerd.com
PRG 420 NERD Become Exceptional--prg420nerd.comPRG 420 NERD Become Exceptional--prg420nerd.com
PRG 420 NERD Become Exceptional--prg420nerd.com
 
PRG 420 NERD Education Counseling--prg420nerd.com
PRG 420 NERD Education Counseling--prg420nerd.comPRG 420 NERD Education Counseling--prg420nerd.com
PRG 420 NERD Education Counseling--prg420nerd.com
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bdd
 
Dictionary project report.docx
Dictionary project report.docxDictionary project report.docx
Dictionary project report.docx
 
Programming in Java: Getting Started
Programming in Java: Getting StartedProgramming in Java: Getting Started
Programming in Java: Getting Started
 
Encode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in MotokoEncode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in Motoko
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspecTDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
TDD BDD PHP - Sviluppo guidato dai test in PHP con phpspec
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmer
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application grows
 
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien NicolasHire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
Hire a Machine to Code - Michael Arthur Bucko & Aurélien Nicolas
 
Rule jenkins with configuration as code
Rule jenkins with configuration as codeRule jenkins with configuration as code
Rule jenkins with configuration as code
 
python workshop(one of the 15 chapters)
python workshop(one of the 15 chapters)python workshop(one of the 15 chapters)
python workshop(one of the 15 chapters)
 
Game Studio
Game StudioGame Studio
Game Studio
 
Pong
PongPong
Pong
 
Android Beat the-quiz application
Android Beat the-quiz applicationAndroid Beat the-quiz application
Android Beat the-quiz application
 

Recently uploaded

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Recently uploaded (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

Deep Coder - Experimental Research Presentation

  • 1. DEEPCODER LEARNING TO WRITE PROGRAMS dinh-cuong.duong@epita.frA small research about DeepCoder
  • 2. Review today’s white papers and related articles. Study the existing published open source code. See how it works! Try out the Deep Coder to solve a real situation. Figure out the limitations of the current result. Further solving... Interpret output into machine runnable code. Further works! EXPERIMENTAL RESEARCH
  • 3. DEEPCODER KEY CONCEPT THE DEEPCODER’s KEY CONCEPT The main objective of DeepCoder is to solve a problem that takes the name of Inductive Program Synthesis (IPS): given a pair of input-output, the purpose is to generate high-level source code, which produces exactly the associated output from input previously given. There are two main techniques that arise in solving it: 1. Using Deep Learning to search and sort the functions that will lead to the desired result, among the various possible functions. 2. Using Domain Specific Languages (DSLs) to restrict the complicated datatypes and the sophisticated operations, loops or other flow controls.
  • 4. DEEPCODER NEURAL NETWORK THE DEEPCODER’s ENGINE The heart of DeepCoder consists of an artificial neural network with feed- forward architecture consisting of 3 layers hidden by 256 neurons per layer , with a sigmoid activation function .
  • 5. DOMAIN SPECIFIC LANGUAGE (DSL) THE DEEPCODER’s SUPPORTED DSL FUNCTIONS Input Function Transformation and Aggregation Function read list sum reverse read int count take zip with head maximum last minimum access map drop scanl1 sort filter Consist of 17 domain specific functions
  • 6. Review today’s white papers and related articles. Study the existing published open source code. See how it works! Play around with Deep Coder to solve a real situation. Figure out the limitations of the current result. Further solving... Interpret output into machine runnable code. Further works! EXPERIMENTAL RESEARCH
  • 7. TENNIS MATCH EVALUATION GENERATE A DSL PROGRAM In a tennis match, the winner is the side that wins more than half of the sets, and the match ends as soon as this is achieved. Write a program from a set of sample inputs and outputs to know how many wins of the 1st player?
  • 8. TENNIS MATCH EVALUATION GENERATE A DSL PROGRAM In a tennis match, the winner is the side that wins more than half of the sets, and the match ends as soon as this is achieved. Write a program from a set of sample inputs and outputs to know how many wins the 1st player has?
  • 9. TENNIS MATCH EVALUATION GENERATE A DSL PROGRAM In a tennis match, the winner is the side that wins more than half of the sets, and the match ends as soon as this is achieved. Write a program from a set of sample inputs and outputs to know how many wins the 1st player has?
  • 10. Review today’s white papers and related articles. Study the existing published open source code. See how it works! Try out the Deep Coder to solve a real situation. Figure out the limitations of the current result. Further solving... Interpret output into machine runnable code. Further works! EXPERIMENTAL RESEARCH
  • 11. TENNIS MATCH EVALUATION GENERATE A MACHINE RUNNABLE PROGRAM DSL program is a pseudo code that generated by DeepCoder. In order to run this program likely generated by a software developer. It’s need to be interpreted into machine runnable code. In this scope, it’s translated into a Node program. I wrote a Node tool called deep-coder-codegen to translated a DeepCoder’s DSL program into a Node program with ES6 JavaScript syntax.
  • 12. Review today’s white papers and related articles. Study the existing published open source code. See how it works! Try out the Deep Coder to solve a real situation. Figure out the limitations of the current result. Further solving... Interpret output into machine runnable code. Further works! EXPERIMENTAL RESEARCH
  • 13. TENNIS MATCH EVALUATION GENERATE A DSL PROGRAM In a tennis match, the winner is the side that wins more than half of the sets, and the match ends as soon as this is achieved. Write a program from a set of sample inputs and outputs to know how many different wins of the 1st player? 3 2 2 -1 2
  • 14. DEEPCODER PROS & CONS DEEPCODER vs. ME In order to evaluate the Pros and Cons of DeepCoder, we compare some metrics with a real life software programmer within the same domain specific context. Items DeepCoder Me Cost Of Living 50 € (t2.medium) 1500 € (f2.medium) Performance 1 second/program 3600 seconds/program Productivity 1000 programs / sec 8 programs / day
  • 15. DEEPCODER REFERENCES THE DEEPCODER’s REFERENCES 1. White paper: https://openreview.net/pdf?id=ByldLrqlx 2. DeepCoder Source Code: https://github.com/HiroakiMikami/deep-coder 3. Deep Coder CodeGen: https://bitbucket.org/cuongquay/deep-coder-codegen/src/master/