自分は初級プログラマなのですが、最近コンパイラの勉強(オートマトンや形式言語なども)を始めました。そこで思ったのですが、ビルトイン関数というのは結局のところコンパイラの中で実装されている、という認識でよいのでしょうか?

例えばPHPのsession_start()など、セッションに関する関数は、
https://github.com/php/php-src/blob/master/ext/session/session.c
で書かれているとおり、C言語で書かれているようです。

なので、
1)PHPでsession_start()などの関数を呼び出したとき、内部で何が行われているかについてはこのURLのソースコードを読めば理解できるようになるのですか?

2)C言語は高速な言語だからCで実装するのですか?PHPでビルトイン関数を書くということは普通しないのですか?

3)よく教科書なんかには、アセンブラを作るために機械語を使い、C言語を作るためにアセンブリを使うと書かれていますが、PHPの場合は構文とビルトイン関数をCで作る、ということなのですか?

かなり初歩的で奇妙な質問に思えるかもしれません。ですが自分の中で実際のところ何がどう結びついているのか、かなりモヤモヤした状態でいるので質問した次第です。よろしくお願いします。