The concepts around the meaning of a program normally contemplate execution of a complete fixed program. With the advent of the web and web scripting languages, especially JavaScript, it became possible to begin execution of a program before it had finished arriving. I would call this streaming execution. This would be impossible in some languages (PL/I, Algol) in which a declaration that contributes to the meaning of a statement may follow the statement. Recent languages are more amenable to streaming execution. The initial portion of this C program can be performed when only the initial portion has arrived:
#include <stdio.h> int main(){ printf("Hello World\n");While the program is incomplete the meaning of the printf is clear and further that it is the first statement to be executed. The program is incomplete yet execution can begin.
Many languages define a program to be a sequence of declarations. In C, for instance, one must declare a routine named “main” which itself may contain executable statements. The first executable statement in main is the first to be executed. PL/I is similar. Other languages allow executable statements at the top level, and begin by executing the first of those. Algol, JavaScript, ActionScript are like this. In Streaming languages, a declaration must appear textually before use and executable statements appear at the top level—outside definitions of procedures.
If type state declarations are included in a byte code form of the program, then streaming execution bundled with translation to machine code can be supported.