SlideShare a Scribd company logo
2
Most read
5
Most read
12
Most read
Automatic Code Generation Present by Jiajing Liu Team 10
Outline Introduction to CODE GENERATION Forms of Auto-Code Generation Click and Code Generating Purpose Language Code Generation Engine Code Generator Concerns and Constraints Reference Q & A
Introduction CODE GENERATION  is code that writes code [1] . Automatic Code Generation can Maintain consistent code quality and allows your code to evolve quickly in response to metadata changes Extend reuse to include code with similar patterns Result:  increased  speed, reusability, agility, and consistency  in your application development
Forms of Code Generation Click and Code -  Visual IDE Microsoft Visual Studio .net Altova Enterprise XML Suite Borland ECO (Enterprise Core Object) Generating Purpose Language XSL/XSLT Code Generation Engine Velocity MiddleGen
Example - Visual IDE Microsoft VS.net
Example - Visual IDE Borland C# Builder with Enterprise Core Object (ECO)
Example - XSL/XSLT XSL/XSLT(Template) + XML (Data)  =  HTML Page (Static Code)
Example – CodeGen Engine #foreach($action in $actions) ${action.Name}Action() { int i; web_submit_data(&quot;${wrapperName}DetailNavBarAction.do&quot;, &quot;Action=$actionURL/${wrapperName}DetailNavBarAction.do&quot;, &quot;Referer=$refererURL/${wrapperName}NavBar.jsp&quot;, &quot;Name=navToPage&quot;, &quot;Value=$action.Name&quot;, ENDITEM, LAST); for(i=0; i<NO_OF_LIST_ENTRIES; i++) { #foreach($vObj in $action.valueObjects) #set($vObjName = $vObj.Name) lr_start_transaction(&quot;${vObjName}DetailAction&quot;); web_submit_data(&quot;${vObjName}DetailAction.do&quot;, &quot;Action=$actionURL/${vObjName}DetailAction.do&quot;, &quot;Referer=$refererURL/${vObjName}Detail.jsp&quot;, ITEMDATA, #foreach($parameter in $vObj.Parameters) &quot;Name=valueObject.${parameter.Name}&quot;, &quot;Value=${parameter.Value}&quot;, ENDITEM, #end LAST); lr_end_transaction(&quot;${vObjName}DetailAction&quot;,LR_AUTO); #end } } #end CustomerDetailAction() { int i; web_submit_data(&quot;CustomerDetailNavBarAction.do&quot;, &quot;Action=$actionURL/CustomerDetailNavBarAction.do&quot;, &quot;Referer=$refererURL/CustomerNavBar.jsp&quot;, &quot;Name=navToPage&quot;, &quot;Value=CustomerDetail&quot;, ENDITEM, LAST); for(i=0; i<NO_OF_LIST_ENTRIES; i++) { lr_start_transaction(&quot;CustomerDetailDetailAction&quot;); web_submit_data(&quot;CustomerDetailDetailAction.do&quot;, &quot;Action=$actionURL/CustomerDetailDetailAction.do&quot;, &quot;Referer=$refererURL/CustomerDetailDetail.jsp&quot;, ITEMDATA, &quot;Name=valueObject.IdName&quot;, &quot;Value=India&quot;, ENDITEM, &quot;Name=valueObject.MasterMediaSysId&quot;, &quot;Value=45&quot;, ENDITEM, &quot;Name=valueObject.TerritoryArray&quot;, &quot;Value=${parameter.Value}&quot;, ENDITEM, &quot;Name=valueObject.MasterMedia&quot;, &quot;Value=Home Video&quot;, ENDITEM, &quot;Name=valueObject.PartnerSysId&quot;, &quot;Value=20266&quot;, ENDITEM, &quot;Name=valueObject.MediaName&quot;, &quot;Value=Home Video&quot;, ENDITEM, &quot;Name=valueObject.Partner&quot;, &quot;Value=Satyam-Hyd5&quot;, ENDITEM, &quot;Name=valueObject.PartnerChannelSysId&quot;, &quot;Value=89&quot;, ENDITEM, &quot;Name=valueObject.Id&quot;, &quot;Value=163&quot;, ENDITEM, LAST); lr_end_transaction(&quot;CustomerDetailDetailAction&quot;,LR_AUTO); } } Velocity  Template (left) and Generated Result (right)
Forms of Code Generation Code Generator Template independent Domain Specific Template based Code Munger Inline Code Expander Mixed Code Generator Partial Class Generator Tier Generator
Example – Code Generator CodeSmith nHibernate Mapping Files Generation
Concerns and Constraints Code generation is a design smell.  Engineers will ignore the 'do not edit' comments.  The generator won't be used or maintained.  My application isn't complex enough for generation.  My application is too complex for generation.
Reference [1] Code Generation in Microsoft .NET . Kathleen Dollard.  Apress.  [2] Generative Programming: Methods, Tools, and Applications . Krzysztof Czarnecki.  [3]  Click and code [automatic code generation].  Maclay, D. IEE Review. Volume 46,  Issue 3,  May 2000. [4]  Graphical modelling and design with automatic code generation . Smith, M. Partitioning in Hardware-Software Codesigns, IEE Colloquium on.13 Feb 1995. [5]  Automatic code generation for actuator interfacing from a declarative specification . Jung, E.; Kapoor, C.; Batory, D. (IROS 2005). 2005 IEEE/RSJ International Conference on. 2-6 Aug. 2005 [6]  Tools for the code generation . Johanna Ambrosio. Application Development Trends. 6/30/2003. [7]  http://www.codegeneration.net/tiki-index.php [8]  http://www.codesmithtools.com/
Thank you Question on Auto-Code Generation?

More Related Content

What's hot (20)

PPTX
Bus Structure, Memory and I/O Interfacing
Hetauda City College
 
DOC
Professor Cv
guest6857e6
 
PPTX
north western railway jodhpur
Neha Chouhan
 
PPTX
Mobility Management
Hira Shaukat
 
PDF
Verilog full adder in dataflow & gate level modelling style.
Omkar Rane
 
PPT
Verilog tutorial
Maryala Srinivas
 
PPSX
USART - 8251 / usart-8251A Pallav Shukla
Pallav Shukla
 
PPTX
Hdlc ppt..
Prince Pal Singh
 
PDF
Question Bank Microprocessor 8085
Nilesh Bhaskarrao Bahadure
 
PDF
COMPARISON OF BIT ERROR RATE PERFORMANCE OF VARIOUS DIGITAL MODULATION SCHEME...
ijasa
 
PPTX
Encoders and decoders
DeepikaDG1
 
PPTX
Gsm architecture
Naveen Sihag
 
PPTX
Addressing modes of 8086
Dr. AISHWARYA N
 
PPT
VLSI unit 1 Technology - S.ppt
indrajeetPatel22
 
DOCX
VIDEO INTERFACING AND THEIR CONNECTORS
Sumeet Patel
 
PPTX
Go Back N ARQ
guesta1b35273
 
DOC
8051 Microcontroller Notes
Dr.YNM
 
PPT
cdma
Shakil hossen
 
PPTX
Design Hierarchy, Concepts of Regularity, Modularity and Locality
AdiSeshu16
 
PPT
Event driven simulator
Sahil Abrol
 
Bus Structure, Memory and I/O Interfacing
Hetauda City College
 
Professor Cv
guest6857e6
 
north western railway jodhpur
Neha Chouhan
 
Mobility Management
Hira Shaukat
 
Verilog full adder in dataflow & gate level modelling style.
Omkar Rane
 
Verilog tutorial
Maryala Srinivas
 
USART - 8251 / usart-8251A Pallav Shukla
Pallav Shukla
 
Hdlc ppt..
Prince Pal Singh
 
Question Bank Microprocessor 8085
Nilesh Bhaskarrao Bahadure
 
COMPARISON OF BIT ERROR RATE PERFORMANCE OF VARIOUS DIGITAL MODULATION SCHEME...
ijasa
 
Encoders and decoders
DeepikaDG1
 
Gsm architecture
Naveen Sihag
 
Addressing modes of 8086
Dr. AISHWARYA N
 
VLSI unit 1 Technology - S.ppt
indrajeetPatel22
 
VIDEO INTERFACING AND THEIR CONNECTORS
Sumeet Patel
 
Go Back N ARQ
guesta1b35273
 
8051 Microcontroller Notes
Dr.YNM
 
Design Hierarchy, Concepts of Regularity, Modularity and Locality
AdiSeshu16
 
Event driven simulator
Sahil Abrol
 

Similar to Automatic Code Generation (20)

PPT
php
bhuvana553
 
PPTX
AEM & eCommerce integration
Lokesh BS
 
PPTX
Client-side JavaScript Vulnerabilities
Ory Segal
 
PPTX
Application Generation
Siwat Jirawiwatpat
 
PPT
CGI Presentation
Sopan Shewale
 
ODP
Improving code quality using CI
Martin de Keijzer
 
PPTX
Sst hackathon express
Aeshan Wijetunge
 
PDF
Apache Roller, Acegi Security and Single Sign-on
Matt Raible
 
PPT
Enterprise AIR Development for JavaScript Developers
AndreCharland
 
PPT
ASP_NET Features
Biswadip Goswami
 
PPT
Spring AOP @ DevClub.eu
arsenikum
 
PPTX
5 Reasons To Love CodeIgniter
nicdev
 
ODP
Introduction to Web Programming with Perl
Dave Cross
 
PPT
CIS 451: Introduction to ASP.NET
webhostingguy
 
PPT
Code Quality Practice and Tools
Bob Paulin
 
PPTX
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB
 
PPT
Introduction to ASP.NET MVC
Maarten Balliauw
 
PPT
Thadomal IEEE-HTML5-Workshop
Romin Irani
 
PPTX
An Introduction to Web Components
Red Pill Now
 
PPTX
PHP on Windows and on Azure
Maarten Balliauw
 
AEM & eCommerce integration
Lokesh BS
 
Client-side JavaScript Vulnerabilities
Ory Segal
 
Application Generation
Siwat Jirawiwatpat
 
CGI Presentation
Sopan Shewale
 
Improving code quality using CI
Martin de Keijzer
 
Sst hackathon express
Aeshan Wijetunge
 
Apache Roller, Acegi Security and Single Sign-on
Matt Raible
 
Enterprise AIR Development for JavaScript Developers
AndreCharland
 
ASP_NET Features
Biswadip Goswami
 
Spring AOP @ DevClub.eu
arsenikum
 
5 Reasons To Love CodeIgniter
nicdev
 
Introduction to Web Programming with Perl
Dave Cross
 
CIS 451: Introduction to ASP.NET
webhostingguy
 
Code Quality Practice and Tools
Bob Paulin
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB
 
Introduction to ASP.NET MVC
Maarten Balliauw
 
Thadomal IEEE-HTML5-Workshop
Romin Irani
 
An Introduction to Web Components
Red Pill Now
 
PHP on Windows and on Azure
Maarten Balliauw
 
Ad

More from elliando dias (20)

PDF
Clojurescript slides
elliando dias
 
PDF
Why you should be excited about ClojureScript
elliando dias
 
PDF
Functional Programming with Immutable Data Structures
elliando dias
 
PPT
Nomenclatura e peças de container
elliando dias
 
PDF
Geometria Projetiva
elliando dias
 
PDF
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
PDF
Javascript Libraries
elliando dias
 
PDF
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
PDF
Ragel talk
elliando dias
 
PDF
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
PDF
Introdução ao Arduino
elliando dias
 
PDF
Minicurso arduino
elliando dias
 
PDF
Incanter Data Sorcery
elliando dias
 
PDF
Rango
elliando dias
 
PDF
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
PDF
The Digital Revolution: Machines that makes
elliando dias
 
PDF
Hadoop + Clojure
elliando dias
 
PDF
Hadoop - Simple. Scalable.
elliando dias
 
PDF
Hadoop and Hive Development at Facebook
elliando dias
 
PDF
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
elliando dias
 
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Ad

Recently uploaded (20)

PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 

Automatic Code Generation

  • 1. Automatic Code Generation Present by Jiajing Liu Team 10
  • 2. Outline Introduction to CODE GENERATION Forms of Auto-Code Generation Click and Code Generating Purpose Language Code Generation Engine Code Generator Concerns and Constraints Reference Q & A
  • 3. Introduction CODE GENERATION is code that writes code [1] . Automatic Code Generation can Maintain consistent code quality and allows your code to evolve quickly in response to metadata changes Extend reuse to include code with similar patterns Result: increased speed, reusability, agility, and consistency in your application development
  • 4. Forms of Code Generation Click and Code - Visual IDE Microsoft Visual Studio .net Altova Enterprise XML Suite Borland ECO (Enterprise Core Object) Generating Purpose Language XSL/XSLT Code Generation Engine Velocity MiddleGen
  • 5. Example - Visual IDE Microsoft VS.net
  • 6. Example - Visual IDE Borland C# Builder with Enterprise Core Object (ECO)
  • 7. Example - XSL/XSLT XSL/XSLT(Template) + XML (Data) = HTML Page (Static Code)
  • 8. Example – CodeGen Engine #foreach($action in $actions) ${action.Name}Action() { int i; web_submit_data(&quot;${wrapperName}DetailNavBarAction.do&quot;, &quot;Action=$actionURL/${wrapperName}DetailNavBarAction.do&quot;, &quot;Referer=$refererURL/${wrapperName}NavBar.jsp&quot;, &quot;Name=navToPage&quot;, &quot;Value=$action.Name&quot;, ENDITEM, LAST); for(i=0; i<NO_OF_LIST_ENTRIES; i++) { #foreach($vObj in $action.valueObjects) #set($vObjName = $vObj.Name) lr_start_transaction(&quot;${vObjName}DetailAction&quot;); web_submit_data(&quot;${vObjName}DetailAction.do&quot;, &quot;Action=$actionURL/${vObjName}DetailAction.do&quot;, &quot;Referer=$refererURL/${vObjName}Detail.jsp&quot;, ITEMDATA, #foreach($parameter in $vObj.Parameters) &quot;Name=valueObject.${parameter.Name}&quot;, &quot;Value=${parameter.Value}&quot;, ENDITEM, #end LAST); lr_end_transaction(&quot;${vObjName}DetailAction&quot;,LR_AUTO); #end } } #end CustomerDetailAction() { int i; web_submit_data(&quot;CustomerDetailNavBarAction.do&quot;, &quot;Action=$actionURL/CustomerDetailNavBarAction.do&quot;, &quot;Referer=$refererURL/CustomerNavBar.jsp&quot;, &quot;Name=navToPage&quot;, &quot;Value=CustomerDetail&quot;, ENDITEM, LAST); for(i=0; i<NO_OF_LIST_ENTRIES; i++) { lr_start_transaction(&quot;CustomerDetailDetailAction&quot;); web_submit_data(&quot;CustomerDetailDetailAction.do&quot;, &quot;Action=$actionURL/CustomerDetailDetailAction.do&quot;, &quot;Referer=$refererURL/CustomerDetailDetail.jsp&quot;, ITEMDATA, &quot;Name=valueObject.IdName&quot;, &quot;Value=India&quot;, ENDITEM, &quot;Name=valueObject.MasterMediaSysId&quot;, &quot;Value=45&quot;, ENDITEM, &quot;Name=valueObject.TerritoryArray&quot;, &quot;Value=${parameter.Value}&quot;, ENDITEM, &quot;Name=valueObject.MasterMedia&quot;, &quot;Value=Home Video&quot;, ENDITEM, &quot;Name=valueObject.PartnerSysId&quot;, &quot;Value=20266&quot;, ENDITEM, &quot;Name=valueObject.MediaName&quot;, &quot;Value=Home Video&quot;, ENDITEM, &quot;Name=valueObject.Partner&quot;, &quot;Value=Satyam-Hyd5&quot;, ENDITEM, &quot;Name=valueObject.PartnerChannelSysId&quot;, &quot;Value=89&quot;, ENDITEM, &quot;Name=valueObject.Id&quot;, &quot;Value=163&quot;, ENDITEM, LAST); lr_end_transaction(&quot;CustomerDetailDetailAction&quot;,LR_AUTO); } } Velocity Template (left) and Generated Result (right)
  • 9. Forms of Code Generation Code Generator Template independent Domain Specific Template based Code Munger Inline Code Expander Mixed Code Generator Partial Class Generator Tier Generator
  • 10. Example – Code Generator CodeSmith nHibernate Mapping Files Generation
  • 11. Concerns and Constraints Code generation is a design smell. Engineers will ignore the 'do not edit' comments. The generator won't be used or maintained. My application isn't complex enough for generation. My application is too complex for generation.
  • 12. Reference [1] Code Generation in Microsoft .NET . Kathleen Dollard. Apress. [2] Generative Programming: Methods, Tools, and Applications . Krzysztof Czarnecki. [3] Click and code [automatic code generation]. Maclay, D. IEE Review. Volume 46, Issue 3, May 2000. [4] Graphical modelling and design with automatic code generation . Smith, M. Partitioning in Hardware-Software Codesigns, IEE Colloquium on.13 Feb 1995. [5] Automatic code generation for actuator interfacing from a declarative specification . Jung, E.; Kapoor, C.; Batory, D. (IROS 2005). 2005 IEEE/RSJ International Conference on. 2-6 Aug. 2005 [6] Tools for the code generation . Johanna Ambrosio. Application Development Trends. 6/30/2003. [7] http://www.codegeneration.net/tiki-index.php [8] http://www.codesmithtools.com/
  • 13. Thank you Question on Auto-Code Generation?