Evan Martin (evan) wrote in evan_tech,
Evan Martin
evan
evan_tech

parse as you type

In compilers class we were told that a significant portion of the compile time (the majority?) is spent in the parsing and lexing stages. Beyond precompiled headers, I've also seen work that keeps compiled versions of files around in memory.

We have gobs of RAM now, and these fast processors that are usually idle while you type and then suddenly strained when you compile. Why doesn't the IDE continually build parse trees as you type? They have to do some preliminary parsing already to do syntax highlighting. But with more of the compiler integrated you not only get more contextual help (see, for example, Visual Studio, which shows you in a tooltip the type of the argument expected for the function you're calling), but also an incredible boost in compile time.

(This seems obvious enough that someone would be doing research in it...)
Subscribe

  • your vcs sucks

    I've been hacking on some Haskell stuff lately that's all managed in darcs and it's reminded me of an observation I made over two years ago now (see…

  • ghc llvm

    I read this thesis on an LLVM backend for GHC, primarily because I was curious to learn more about GHC internals. The thesis serves well as an…

  • found my bug!

    Not too interesting, but this has been bugging me for a week. Been working on a toy program that proxies a TCP connection. It was working fine for…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • your vcs sucks

    I've been hacking on some Haskell stuff lately that's all managed in darcs and it's reminded me of an observation I made over two years ago now (see…

  • ghc llvm

    I read this thesis on an LLVM backend for GHC, primarily because I was curious to learn more about GHC internals. The thesis serves well as an…

  • found my bug!

    Not too interesting, but this has been bugging me for a week. Been working on a toy program that proxies a TCP connection. It was working fine for…