Compile time is a buzz phase often heard in discussions of computer programming languages. This is even true of languages that are not compiled. It may be true even of JavaScript programs that begin to execute within a browser before the program has finished arriving at the site of the browser. I suggest here that compile time generally refers to that processing that can be done in time and space proportional to the size of the program. Many program program flaws can be found by such analysis.

Languages such as JavaScript have pushed much function from compile time to run time. If you take the JavaScript object as the equivalent of a C struct, in the sense that it holds several named values within, then you can in general tell neither the field names nor types of such values except as the program runs. There is no analog to what the C compiler learns from a declaration such as typedef struct{float a; int b;} px;. Such information is at best a fleeting plan in the head of the JavaScript programmer. Beyond that it is an emergent pattern to be discovered by someone studying the program.