|
|
| About site: Programming/Metaprogramming - Automated Code Generation |
Return to Computers also Computers |
| About site: http://c2.com/cgi/wiki?AutomatedCodeGeneration |
Title: Programming/Metaprogramming - Automated Code Generation Page on the original (Ward) Cunningham & Cunningham, Inc., Wiki. |
|
|
|
|
UFIDA_Software_Co__Ltd_ Chinese vendor of ERP software selling worldwide. Includes product and service offering, case studies, white papers, company background, and contact information.
| PyInventor A Python wrapper for SGI's OpenInventor library.
| Custom_Fibre_Channel_Products Offers products for interconnecting fibre channel hard drives and host bus adapters. Among the products offered are T-cards and fibre channel backplanes.
| Ice_Red_Designs Offers laptop bags, totes, sleeves, messenger bags, shoulder bags and tote bags for urban lifestyle.
| xmlhack_com__New_XForms_Requirements Article by Simon St. Laurent, which reviews the latest W3C working draft's additions, deletions and changes. (April 4, 2001)
| Process_Studio Offering multimedia design, photography and fine art.
|
|
| Alexa statistic for http://c2.com/cgi/wiki?AutomatedCodeGeneration |
Please visit: http://c2.com/cgi/wiki?AutomatedCodeGeneration
|
| Related sites for http://c2.com/cgi/wiki?AutomatedCodeGeneration |
| ICANN_2002 International Conference on Artificial Neural Networks - August 27-31 2002 in Madrid, Spain. (August 27, 2002) | | Dennis_Ritchie\'s_Home_Page Several historic technical reports, anecdotes, and stories from one of the fathers of Unix. | | Barcode_Component_Software Add barcode printing functionality to application. | | RFC_3258 Distributing Authoritative Name Servers via Shared Unicast Addresses. T. Hardie. April 2002. | | WPwriter_com Author Laura Acklen promotes her WordPerfect books and offers a large collection of articles, tips and links. | | RFC_0085 Network Working Group Meeting. S.D. Crocker. December 1970. | | XP_day_Germany eXtreme Programming and agile software development - an international conference for developers and project managers. Organisation, call for sessions, sponsoring, archives. | | RFC_0683 FTPSRV - Tenex Extension for Paged Files. R. Clements. April 1975. | | Bobby_Cronkhite_Software_-_ZeboPhoto Picture viewer, slide show and photo editing software with a file browser and basic word processor. It has print templates, screen capture to image or PDF, system information and a moviemaker. | | Tea_Trove Template toolkit for Java servlets | | Julian_Ziersch_Software WPTools, 16/32 bit text formatting components for C++Builder and Delphi. | | Trendmedia Services include: design, multimedia, database design, programming, content creation, management, and consulting. | | Aztronaut Provides web design and maintenance services to small companies. | | G_E_V_Electronics Offers site design and hosting. Located in Three Rivers, Michigan. | | ProtWare\'s_HTML_Guardian Protect your website by encrypting Html, Javascript, Asp and Vbscript source code. Encrypt Html formatted email, protection for links, images and Java applets. | | Extrapolation_Methods_for_Accelerating_PageRank_Computations This paper by Sepandar Kamvar, Taher Haveliwala, Chris Manning, and Gene Golub, published in WWW13, presents an algorithm to speed up the computation of PageRank by making some initial approximations. | | Stronghold_Enterprise_Apache Apache redesigned with rigid security features. | | Hierarchical_Data_Binding Techniques for performing ASP.NET data binding to hierarchical data sources by Fritz Onion. | | A_List_Apart__User-Proofing_Ajax Provides advices to get trust from users with Ajax applications. | | Double_Decker Two new books explore what it's like to build enterprise applications with aspects and offer a methodology to design AOP-implemented systems. Dr. Dobb's. |
|
This is websites2007.org cache of m/ as retrieved on 2008.09.08 websites2007.org's cache is the snapshot that we took of the page as we crawled the web. The page may have changed since that time.
|
Automated Code Generation Automated Code GenerationFalls into three categories (arguably!):
Templating - source code is generated to be edited. One-shot code generation. Often supported to some extent in IDEs and editors.
Round-Tripping - source code is generated to be edited, but the edited code may be re-imported into the generator to affect future generate-edit cycles. Most often found in CASE tools e.g. RationalRose, TogetherJ.
Compiling - source or binarycode is generated but is not intended to be edited. Eg JavaServerPages, compilers of all kinds.
My own personal preference is for compiling, as long as the compiled code supports the OpenClosedPrinciple to some extent - often the 'compiled' code will not do everything you need it to do out of the box. For this reason, many projects will develop their own code generation systems in order to gain control over what is being generated.
Typical uses of automated code generation are in CASE tools for 'roughing out' a system and in interface layers where a small amount of information can be used to generate all of the repetitive code required (eg IDL->CORBA code, WSDL->SOAP support, OO-RDBMS mapping, Tables->Forms)
Many problems can be eliminated with InstallableCodeGenerators. Instead of a tool generating code or most of the code, instead the the parse tree is made available and problem specific code generators can be run against the specification. For example, a FiniteStateMachine description can be generic, but the code generated can be customized by target environment. In my FSM generator I have installable code generators for C, C++, and for different OSs and different middleware layers. In my dreams I think developers would work at the specification layer with a few select others working at the code generation layer. -- AnonymousDonor
In circuit simulation tools, evaluating the state of the circuit is often the bottleneck. So my circuit simulator reads in the circuit description, parses it, generates code, compiles it and dynamically links with it. Code generation at runtime is great! The funny thing is: the simulator is written in Python and it is blindingly fast, since all the computation happens in code that is completely special-purposed C code for the problem at hand. -- StephanHouben
I was at a talk on Friday about a system where you could generate IDL.
So you type in some stuff, generate IDL, generate Java from the IDL, and compile.
The presenter proudly announced that from 3000 lines of input they could generate 28000 lines of source code.
I had to ask why would you want to - if you could possibly get away with 3000 lines, you should take that option.
I think this is not the simplest thing that could possibly work, I think it is a case of WeightMakesRight?.
-- JohnFarrell
"X thousand lines of code automatically generated for you" strikes me as a waste, and misses the point:
Why would you want X copies of Y lines of code to maintain (X*Y), instead of calling Y lines of truly reusable code?
Code generation is often little more than CopyAndPasteProgramming.
Consider the conversion from C to assembler - "X thousand lines of assembly code automatically generated for you from C" - you don't maintain the assembly, just the C. Where do you get (X*Y)? I doubt you would end up needing to edit 84 million lines of code. Aren't they saying you worked with the 3000 lines, and treated the 28000 lines as C treats assembly?
I subscribe to the notion that code generation is often a language smell - we need code generation because our language does not have all the types of abstraction we want. Because the language has a smell, though, does not always mean we should not use it. If we decide it is the best compromise for a task, and code generation would make it better, then that is our best option. Since there is not and never will be a language with all the abstraction capabilities we would like.
Actually, Lisp is that language, since macros are built-in code generators that allow you to create any new syntax you want.
I imagine there will always be a place for code generation to improve on a language.
There's another purpose for code generation, though, and that's generating the same code in different languages. If we, for instance, extract all our abstractions for a UI into metadata, perhaps, we can interpret the metadata directly on the fat client, but that's not practical for the HTML front-end, so we can use the same metadata to generate the HTML.
-- Steve Jorgensen
Instead of generating code from some input file, your program can interpret the instructions in that input file. An interpreter is easier to write, maintain, and deploy than a code generator. You can squeeze better runtime performance out of code generation, but few projects require that extra performance.
Compilation of a major programming language entails a totally different economy than does AutomatedCodeGeneration for a single project. A extraordinary amount of effort and expertise goes into creating a C compiler, and everyone who uses that compiler leverages the result. That's very different from AutomatedCodeGeneration that's used only a handful of times.
See also CodeGeneration, CodeGenerationIsaDesignSmell
CategoryAutomated EditText of this page(last edited November 27, 2004)FindPage by searching (or browse LikePages or take a VisualTour)_uacct = "UA-2377314-2";_udn="c2.com"; urchinTracker(); |
|
| |
Page | on | the | original | (Ward) | Cunningham | & | Cunningham, | Inc., | Wiki. |
|
http://c2.com/cgi/wiki?AutomatedCodeGeneration
Automated Code Generation 2008 September
dvd rental
dvd
Page on the original (Ward) Cunningham & Cunningham, Inc., Wiki.
Rules
|
© 2008 Internet Explorer 5+ or Netscape 6+
|
|
Recommended Sites: 1.
Arts -
Business -
Computers -
Games -
Health -
Home -
Kids and Teens -
News -
Recreation -
Reference -
Regional -
Science -
Shopping -
Society -
Sports -
World
Miss Gallery
- Top Anime Hentai
- DVD rental by mail
- Mobile Phones - McDonalds - Wills - Libros medicina - Credit Card
|