Explanation: To reduce the possibility that known exploitable language constructs will occur in programs, the developer restricts implementers to use only a subset of language features or constructs, avoiding those known to be risky or ambiguous. Use of a restricted subset of a language might also improve performance of static analysis tools on the software.
Vulnerabilities addressed: Addresses memory access and other weaknesses resulting from the use of the proscribed constructs.
Developer resources required: Requires programmers trained in subset use, as well as code scanners to enforce subset constraints.
Evaluator resources required: Requires access to source code and scanning tool to confirm that programs abide by subset constraints.