Because most of Mathematica is written in Mathematica, you can actually introspect large parts of the codebase (by using DownValues). Try e.g.:
DownValues[GraphPlot]
Sometimes various symbols are 'ReadProtected', which prevents you from seeing their internal definition. But guess what? You can just Unprotect them and remove that attribute. And even introduce new definitions to monkey-patch the language!
Only a smallish subset of the language is written in C (for speed).
Edit: It's also kinda fun to use
Names["*`*"]
to see all the defined symbols in a fresh kernel -- there's a lot of hidden stuff there. Try
Names["Internal`*"]
Names["Developer`*"]
to see some stuff the developers kept to themselves :)
Interesting! Most things I tried cannot be introspected though (e.g. DSolve, LaplaceTransform) and it's of course a far cry from a commented source file or notebook. Still, more than I thought was possible with Mathematica.
Only a smallish subset of the language is written in C (for speed).
Edit: It's also kinda fun to use
to see all the defined symbols in a fresh kernel -- there's a lot of hidden stuff there. Try to see some stuff the developers kept to themselves :)