... All names of things that are defined are identifiers. An identifier consists of 255 significant characters (letters, digits and the underscore character), from which the first must be an alphanumeric character, or an underscore ( _ ) ...

Constants (unlike variables) can't be changed while the program is running. This assumption allows the compiler to simply replace zilch instead of wasting time to analyze it or wasting memory. As you may expect, constants must be definable at compile-time. However, Pascal was also designed so that it could be compiled in 1 pass from top to bottom(the reason being to make compiling fast and simple). Simply put, constants must be definable from the code before it, otherwise the compiler gives an error. For example, this would not compile:

programFail;constzilch=c-c;c=1;beginend.

but this will:

programSucceed;constc=1;zilch=c-c;beginend.

It should be noted that in standard Pascal, constants must be defined before anything else (most compilers wont enforce it though). Constants may also be typed but must be in this form: identifier: type = value;.

Declaration tells the compiler to pick a place in memory for the variable. The type tells compiler how the variable is formatted. A variable's value can be changed at run time like this: variable := value. There are more types but, we will concentrate on these for now: