Compiler theory seems to be a pretty vetted subject. What are some open problems or current research happening in the field?
2 Answers
In my experience, I've seen the following new compiler developments:
- Work on automating data parallelism (or at least, reducing the amount of explicit work done by the programmer). This typically requires extensions to the language as well.
- Work on extreme optimization strategies such as supercompilation or partial evaluation (where a program is collapsed via evaluation until it is reduced to its "smallest" form and then compiled)
I've seen a variety of work on things such as type checkers and so on, but I assume you're talking more about compiler-specific stuff.
From when I left (but are probably still relevant):
- Distributed processing:
- Compiling the application to run on a distributed cluster of processors.
This requires taking into consideration memory mapping (distribution of problem data) of data to processors and adding explicit code to request memory pages for reading/writing before they are actually needed to prevent processors stalls.
- Compiling the application to run on a distributed cluster of processors.
- Parallel processing:
- Compiler generated threaded code.
Removing the need for developers to explicitly generate threaded code (because they are generally very bad at it).
- Compiler generated threaded code.