Content deleted Content added
Reverted good faith edits by Davide King (talk): No significant improvement |
review: tag unsourced material. clarify connection. |
||
Line 120:
Some languages exclude features that easily lead to bugs, at the expense of slower performance {{endash}} the principle being that it is usually better to write simpler, slower correct code than complicated, buggy code. For example, the [[Java (programming language)|Java]] does not support [[pointer (computer programming)|pointer]] arithmetic which is generally fast, but is considered dangerous; relatively likely to cause a major bug.
Some languages include features that add runtime overhead in order to prevent some bugs. For example, many languages include runtime [[bounds checking]] and a way to handle out-of-bounds conditions instead of crashing.
=== Techniques ===
Line 126:
Programming techniques such as [[programming style]] and [[defensive programming]] are intended to prevent typos.
For example, a bug may be caused by a relatively minor
if (condition) foo();
Line 144:
=== Specification ===
Some{{who?}} contend that writing a [[program specification]], which states the intended behavior of a program, can prevent bugs. Others{{who?}}, however, contend that formal specifications are impractical for anything but the shortest programs, because of problems of [[combinatorial explosion]] and [[Nondeterministic algorithm|indeterminacy]].<!--[[User:Kvng/RTH]]-->
=== Software testing ===
|