There is so much information available for Java--the internal details of (for example) the JVM memory manager are well-documented, and the performance considerations arising from its interaction with user code have been publicly discussed. I am interested to know if there is any comparable documentation for the Mathematica kernel. Specifically:
- What are the major steps involved in evaluation?
- Which of these are the most important from a performance standpoint?
Is there any public documentation available about how all of this is implemented? If there is, I wasn't able to find it after searching the Internet: neither the mechanics of the evaluation process, nor the internal workings of particular functions, seem to be known outside of WRI.