Various languages which are interpreted or semi-interpreted (i.e. not fully-compiled, Thaddy's point) will allow you to recover ("reflect upon") the source and/or Abstract Syntax Tree without reference to the original source files; in some cases this may be manipulated. This does not include mainstream compilers.
The above is somewhat beginner-friendly. The remainder is not.
You will, in some cases, be able to get access to RTTI information, but this definitely does not include descriptive comments. You might also be able to use debugging information to cross-reference- to some extent- between a location in memory and a sourcecode line.
You will also be able to use an external debugger to generate a backtrace from the point at which a program dumps its state an exception etc.
MarkMLl