Adding practical (runtime) facts to a program



Traditionally, the compiler and the debugger are researched and
developed separately. I think the programmer could add information
about a program's practical requirements to the source code of this
program (or the debugger could also automatically collect such
information from test runs), and such information would be useful for
the compiler to further optimize the binary code (e.g. translate a
"for" loop according to its practical runtime loop count) and for
program verifiers to find potential logical problems (e.g. boundary
check).

Such information could also give other programmers an understanding of
the magnitude of input data the program can handle, etc.

What do you think of this?

Yao Ziyuan

.



Relevant Pages

  • how to create a c# based programming language
    ... I would like to create a new programming language that is based on ... calls the csc compiler to compile the resulting code. ... how would the source code debugger work with such a thing? ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Adding practical (runtime) facts to a program
    ... about a program's practical requirements to the source code of this ... program (or the debugger could also automatically collect such ...
    (comp.theory)
  • Re: VM as target, was Is Assembler Language essential
    ... In general it costs nothing - local variable addressing is simply ... compiler to figure out the constant offsets involved when/if the frame ... the code has to maintain some kind of frame ... From that starting point the debugger has ...
    (comp.compilers)
  • [ANN] ECL 9.6.0
    ... Important changes related to the usability of the debugger and ... inspector, debugging of compiled C code, handling of floating point ... Formerly ECL would refuse to print those pathnames if ... The compiler can now generate some Lisp constants as static C ...
    (comp.lang.lisp)
  • Re: Interview Embedded Software Questions
    ... Although this is NOT 100% true if we talk about the debugger! ... int x=1; ... The compiler doesn't have to be broken at all. ... it means that if z does not equal 3 it equals to something else ...
    (comp.arch.embedded)