During the ADA course I attended, the teacher mentioned that no inherited code or libraries are used in these safety critical environments. Therefore there are no unknown internals. Only known internals.
.exe and DLLs (C,C++) have unknown internals (AFAIK DLLs can't be decompiled). So at the beginning of a project you have made a decision that you will be doing black box testing and using unknown internals. In a best practice environment finding one self doing black box testing is avoided altogether. I also chose Java because one can decompile classes , so any unknown behaviour can be identified , so one is in a white box testing environment from the outset. Point being avoid black box environments.