I can define "reasoning". Given number of observations and inference rules, infer new calculated observations.
> What if a C compiler's semantic analysis pass is a limited form of reasoning?
I guess you can say that C compiler can reason in specific narrow domain, because it is also a program and someone programmed it to reason in that domain.
I think C compiler was wrong analogy, because it is also a program. More correct could refer on some machine which executes ASM/C/bytecode etc. That machine(e.g. CPU or VM) is turing complete, but one need to write program to do reasoning. C compiler doing some semantic reasoning over say datatypes is example of such program.
> What if a C compiler's semantic analysis pass is a limited form of reasoning?
I guess you can say that C compiler can reason in specific narrow domain, because it is also a program and someone programmed it to reason in that domain.
I think C compiler was wrong analogy, because it is also a program. More correct could refer on some machine which executes ASM/C/bytecode etc. That machine(e.g. CPU or VM) is turing complete, but one need to write program to do reasoning. C compiler doing some semantic reasoning over say datatypes is example of such program.