Self-hosting

A self-hosting compiler is one in which the source code for the compiler is written using the same language that the compiler translates. All C compilers and many Pascal compilers are self-hosting. This is an example of "eating your own dog food" where the developers of a language are using the very language that the compiler targets. It's also much easier to spot bugs, since you can't compile further changes to the compiler if it doesn't compile itself. Note that a compiler does not have to be 100% written in the language it compiles to be self-hosting. The compiler may have a run-time library or initialization system written in assembly language or in a system development language.

All compilers start out in one of three ways.
 * 1) The compiler is written in some other language that can generate something which can be compiled.. The compiler is re-written using the minimal subset of the language that this compiler can handle. Once this minimal compiler is "barely breathing" (can compile a compiler written in the target language that can compile itself)  and which when fed itself as input produces the exact same binary executable as the minimal compiler written in the other language,, further development can be done using this new compiler written in itself. Then, the same process continues, with the compiler being updated to support new features (but not actually using them, since the old compiler does not recognize them yet.) Once those features are accepted by the new compiler, further development of the compiler can then use those features. In simpler terms, the Version N compiler, which supports the new feature, is built using the Version N-1 compiler which does not. Once the new Version N compiler is tested and works, now, version N features may be used to develop the Version N+1 compiler.
 * 2) The compiler is written using an existing compiler for that language, or possibly as a cross-compiler on a different machine or system, which generates output for the target machine.
 * 3) The compiler is written only using a different programming language, and is never written using the language the compiler translates

Only in cases 1 or 2 can a compiler be self-hosting. Currently, there are three major Pascal compilers, one proprietary, closed source (Delphi, which is the successor to Turbo Pascal), and two open source compilers:
 * 1) Gnu Pascal is part of the Gnu Compiler Collection, written in C, because the Gnu Compiler Collection backend is.
 * 2) Free Pascal is a true self-hosting Object Pascal compiler, intended to be compatible with Delphi (plus adding its own extensions) and is written in Object Pascal.

the List of compilers and interpreters has links to many publicly-known Pascal compilers.