Summary
Imagine a hypothetical language that compiles to assembly only once all input arrives. It would be ridiculously fast, but somewhat limited since it could only be used as a filter. Is this a worthwhile trade-off?

Advertisement

I am thinking about what happens if you only compile/optimize a program once all input arrives. This kind of language would not let you stop and take in new input in the middle of its execution. It would be very easy to optimize this kind of language, the performance would be astounding.

So let's say you are am writing a C# application, and at one point you load a 100 MB spreadsheet into memory and need to sort according to some field. So let's say you submit it to a program written in this hypothetical language (let's call it 'Big Cat' for fun). What would happen is this program would compile to assembly and then execute, but it would be optimized based on the fact that the input becomes a constant in the program.

My brain is spinning with the possibilities. There must be other languages which do this? I have seen applications do a similar kind of ad-hoc on-the-fly compilation with much success.

Talk Back!

Have an opinion?
Readers have already posted
9
comments
about this weblog entry. Why not
add yours?

RSS Feed

If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( www.heron-language.com ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at www.cdiggins.com.