element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum Is Automatic Code Generation in Our Future?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 8 replies
  • Subscribers 474 subscribers
  • Views 775 views
  • Users 0 members are here
  • automatic_code_generation
  • embedded
Related

Is Automatic Code Generation in Our Future?

GardenState
GardenState over 15 years ago
This morning in his blog TechOnline editor-in-chief Patrick Mannion brought to my a attention an interactive, automatic code generator and design environment called ECCM. (for Embedded Controller Code Maker).  I went to the website (the URL is revealing, too, in its use of the term lego-code:http://www.lego-code.com/INDEX.htm) and among the claims being made is that ECCM will create assembler code for typical embedded controller applications in less than 4 hours without manual coding required. Mannion wonders aloud, and so did I, if automatic code generation is the wave of the future and, if so, what does this mean for embedded developers? What do you think?
  • Sign in to reply
  • Cancel
Parents
  • michaelkellett
    michaelkellett over 15 years ago

    I certainly hope that ECCM isn't our future !!

     

    There are some quite well established automatic code generation design flows in use in Automotive and Aerospace applications (eg MATLAB/SIMULINK -> RTC -> C) - these do work and can produce useable production code. The tools are expensive.

     

    The issue with all of these approaches is that they do not remove the need for programming but provide a new programming langauge (possibly graphical, higher level whatever).

     

    If they provide very high level code blocks (or library functions in C) then you are stuck with using what you are given - which may be quick but may not be very well optimised - if you need to get to low level coding (and you always will if you want optimal performance) your are better off (much) using a well known and standard langauge.

     

    We're going to see a lot of these new "no code required" approaches over the next few years and I'm sure that they will promise a great deal and deliver very little - try parsing  a string, calculating  a CRC and adding two 64 bit integers in the "ncr" on offer. (I chose these as tasks easily accomplished in assembler or C but frequently challenging for graphical systems - using  a ready made block doesn't count !!).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 15 years ago in reply to michaelkellett

    You are right about the current state of code generation.  Primarily because the code generation continues to be based on a spatial logic approach.  That's the standard "if-then-else" logic that is so difficult to understand and maintain that dominates the industry.  I've developed a temporal approach that improves the logic because it eliminates the need to test for its place in the logic.  I wrote a book to explain this: Breaking the Time Barrier - The Temporal Engineering of Software.  My website at www.vsmerlot.com has some information showing how one can make the transition.

     

    I started using CASE tools back in the 1988 and was disapointed in their complexity.  That's when I began the process of trying to understand what the problem was and then fix that problem.  As you've pointed out the code generation leaves a lot to be desired.  I tried working the problem backwards but the code was so bad that the model was just as bad.  That's how I discovered a better code structure using temporal engineering and applied for a patent.  The patent issued in Feb 2004 as US Patent No. 6,345,387.  I decided in 2009 not to enforce the patent and allow the public to use the technology.

     

    My background: I'm the inventor of "Time Domain Architecture" (TDA) US Patent 4,847,755.  This time domain technology is better known as Multi-Core & Hyper-Threading Technology. Understanding time was important in creating parallel code and real-time tasks which led to the hardware architecture and today to the temporal software architecture.

     

    As of this writing DARPA is looking into the Temporal Engineering of Software. In addition I’ve been selected as a presenter at the DOD sponsored 2010 Systems & Software Technology Conference in Salt Lake City.  I’m excited about being selected and looking forward to presenting.

     
    The theme of the conference is "Technology: Changing the Game".
     
    From the website: “This year, the Systems and Software Technology Conference will explore various technologies which are expected to make abrupt changes to common thought. We will explore the tools, the processes, and the ideas which will "change the game" and make the way we have done things in the past - obsolete.”
     
    I believe that code generation as good as common computer languages is possible as the technology evolves, time will tell.
     
    Gordon Morrison, Inventor / Author / Consultant
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Former Member
    Former Member over 15 years ago in reply to michaelkellett

    You are right about the current state of code generation.  Primarily because the code generation continues to be based on a spatial logic approach.  That's the standard "if-then-else" logic that is so difficult to understand and maintain that dominates the industry.  I've developed a temporal approach that improves the logic because it eliminates the need to test for its place in the logic.  I wrote a book to explain this: Breaking the Time Barrier - The Temporal Engineering of Software.  My website at www.vsmerlot.com has some information showing how one can make the transition.

     

    I started using CASE tools back in the 1988 and was disapointed in their complexity.  That's when I began the process of trying to understand what the problem was and then fix that problem.  As you've pointed out the code generation leaves a lot to be desired.  I tried working the problem backwards but the code was so bad that the model was just as bad.  That's how I discovered a better code structure using temporal engineering and applied for a patent.  The patent issued in Feb 2004 as US Patent No. 6,345,387.  I decided in 2009 not to enforce the patent and allow the public to use the technology.

     

    My background: I'm the inventor of "Time Domain Architecture" (TDA) US Patent 4,847,755.  This time domain technology is better known as Multi-Core & Hyper-Threading Technology. Understanding time was important in creating parallel code and real-time tasks which led to the hardware architecture and today to the temporal software architecture.

     

    As of this writing DARPA is looking into the Temporal Engineering of Software. In addition I’ve been selected as a presenter at the DOD sponsored 2010 Systems & Software Technology Conference in Salt Lake City.  I’m excited about being selected and looking forward to presenting.

     
    The theme of the conference is "Technology: Changing the Game".
     
    From the website: “This year, the Systems and Software Technology Conference will explore various technologies which are expected to make abrupt changes to common thought. We will explore the tools, the processes, and the ideas which will "change the game" and make the way we have done things in the past - obsolete.”
     
    I believe that code generation as good as common computer languages is possible as the technology evolves, time will tell.
     
    Gordon Morrison, Inventor / Author / Consultant
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube