2 ms·
If you want to pick nits, many C and C++ programs and OS kernels also rely on technically undefined and implementation/machine-specific behavior. From which I
by musicale 4y ago
If you want to pick nits, many C and C++ programs and OS kernels also rely on technically undefined and implementation/machine-specific behavior.
From which I suppose we can conclude that C/C++ without undefined and/or implementation-specific behavior has been found to be unsuitable for systems programming. Or that systems programs tend to be non-portable by nature.
Perhaps a more charitable conclusion is that languages like Wirth Pascal and K&R C (for example) contain (sometimes explicit and intentional) loopholes and unsafe/technically undefined behavior which can be useful for systems programming but problematic for memory safety and security/reliability.
Sadly Pascal standardization seems to have stalled after ISO Extended Pascal in 1991, while C is still evolving into C23.
- Rochus 4y agoAll languages have loopholes; even Oberon has at least one, in the type case statement (uncovered by C. Szyperski).