A concept of a new PL for embedded applications

Discussion in 'Embedded Systems and Microcontrollers' started by Hutorny, Aug 30, 2006.

  1. Hutorny

    Thread Starter New Member

    Aug 30, 2006
    4
    0
    I would like to discuss with you my ideas on a new programming language for embedded applications, denoted further as e#. Here I post only the core concept. More details can be found on this link

    The core concept
    e# is a tool language that should be suitable for all kind of embedded-related development activities, starting from defining the device architecture and its instruction set, documenting device specifics and finishing with programming the device with a developed application. Instead of allowing the developer to write an arbitrary language constructions and pushing the compiler to made an executable out of it, e# should let a developer (a device vendor) to express the device resources, capabilities and constraints in the language terms. These capabilities and constraints than are applied to the application sources, simulation model and executable image. If any of the constraints are violated the e# builder would produce error, either compilation, simulation or code generation time.
    It should retain major assembler’s capability to express application’s logic in terms of processors instructions, where each statement is translated into known number of know instruction of a given CPU/MCU.
    The language should allow writing generic libraries for a given architecture operating on common architecture-wide facilities expressed in terms of a lowest subset of ‘abstract device instructions’ declared for the architecture, which then, at application level, are implemented/instantiated for a given MCU.
    Shortly e# can be defined as a compilable code generator – at first sources are compiled then they are executed and, as a result of this execution, application code is generated. Compilation should not generate any target device code, it should only verify syntax and generate instructions on how to generate target device code. e# definitely is a high level programming language, however, applications written in it should still be able to use features of a low-level programming language, such as access to all available device resources.
    It is believed that the concept could be applicable to RISC, CISC and VLIW architectures, although, the latter one will require more efforts on describing the device.
     
  2. beenthere

    Retired Moderator

    Apr 20, 2004
    15,815
    282
    Hi,

    It sounds like quite an interesting project. Are you familiar with the history of ADA?
     
  3. Hutorny

    Thread Starter New Member

    Aug 30, 2006
    4
    0
    I have heard it was developed for military?
     
  4. Dave

    Retired Moderator

    Nov 17, 2003
    6,960
    144
    To quote the Wikipedia article on the Ada Programming Language:

    Since I am currently a little strapped for time, so I can't at this moment look at you proposals fully, can you give me a concise list of the reasons why I as an embedded system software developer would want to use e# as oppose to some other language, say for example C?

    Thanks.

    Dave
     
  5. Hutorny

    Thread Starter New Member

    Aug 30, 2006
    4
    0
    Dave, thanks for a good question and for pointing to ADA (I still have my book I've bought in school, so I'll look at it)
    In a day or two I promise to give you an answer.
     
  6. Hutorny

    Thread Starter New Member

    Aug 30, 2006
    4
    0
    I have looked it ADA. Thanks again, while looking for ADA I found some sources on how to properly design a language.

    ADA is a high level language and e# is not going to compete with ADA, Pascal or C. I propose e# as a replacement of assemblers.

    I envision the following benefits of using e#

    1. It will allow writing better quality code in shorter time
    2. It will reduce maintenance cost by providing abilities for regression testing (on a simulator or in-circuit debugger)
    3. It will reduce impact of migrating to another device/platform
    Elaboration on theses can be found in this post

    BTW, as I see, OO wave hit the ADA rock and the only archipelago not (yet?) reached by OO are assemblers.
     
Loading...