My point were that and did answered to that when code monkeys at Bell labs did wrote the first C-compiler they did bootstrap it or wrote it (to solve causality dilemma) with existing language. Just like if you do make a lathe, the axels are not made with lathe because a such tool doesn't exist.
That Freepascal as far as I know is independent just like you describe for which ever C is at your example or use some inline assembly code here and there.
Programming languages are merely a tools (for fools).
Sorry i was talking more about the startup of a C program. Where a C program requires its execution environment(stack,globals,heap...) to be set up by the startup script before the actual C code is run. This startup script that bootstraps the actual compiled C code into execution can itself be written in C code so that the first instruction executed by the CPU is actually coming from C code and is used to start execution of the actual C code you wanted to run.
As for how the first working C compiler came into existence when there was no C compiler to compile it. well... it depends a bit on how you look at it. The way it happened is this:
1) A compiler for a weird cut down primordial version of C was written in NB (newB that was written in assembler) and compiled to machine code so it could be executed
2) This compiler was then fed the "weird primordial C" source code of itself and as a result generated an assembler translation of that source code
3) This compiled assembler source code was then fed trough a assembler to turn it into machine code
4) We now have machine code that can compile itself by looping back to step 2
Once this was working the cycle from 2 3 4 is repeated in small steps, each step adding more features to C. Some steps supporting multiple syntaxes for the same thing so that a new syntax could be introduced but still compile with the old compiler, once the new syntax was in the compiler the old one could be deprecated once all traces of it are removed from the source code. After enough of these steps you eventually get to something that would be considered real C code and will compile on modern compilers such as gcc (That first source code from step 1 won't successfully compile on any of our existing C compilers because its too different from C that any of the todays compilers can understand). So one way to interpret this is "The first C compiler was written in a beta version of C"
But yes if you go down the chain the beta version of C had to be compiled first in NB. But NB had to be compiled from assembly code. But to compile the assembly code there had to be a assembler program, and this assembly program had to at some point have been loaded into memory using switches, said switched being toggled by a human directly or a from a set of holes in tape that that some point got punched out by a human. So from that view even assembler needed to be bootstrapped by the ultimate bootstrapping tool, a human flipping bits in memory.
EDIT: Oh and the first assembler program ever run on a given system was likely not written entirely in machine code toggled into memory by hand. But instead the engineer likely used another already working computer to compile it and then just transfer the machine code into its memory. Or if they didn't have a already working computer at there disposal they would manually toggle in a small tool into memory to make a crude "hex editor" so that they could easily manipulate memory and execute it using the computer itself. Perhaps using the hex editor to add some features to the hex editor itself and once that was usable enough start writing the assembler program using the hex editor. The result would likely be a crappy dumb assembler program that would end up being used to write a smarter better version of itself.