Search code examples
c#language-specifications

C# language specification "Program Instantiation" appears to be mis-identified


In the C# language specification a Program is defined as

Program the input to the compiler.

While an Application is defined as

Application an assembly that has an entry point

But, they define

Program instantiation — the execution of an application.

Given the definition of "Program", shouldn't this be...

Application instantiation — the execution of an application.

instead?


Solution

  • As far as I can tell, this term doesn't occur in the Microsoft version of the specification. The annotated ECMA spec has this annotation after "Program":

    Programs, assemblies, applications and class libraries
    This definition of program differs from common usage. In C#, a program is just the input to the compiler. The output of the compiler is an assembly, which is either an application or a class library.

    There aren't any other annotations nearby though. It does seem somewhat odd, which is perhaps why it doesn't appear in the MS spec.