 In a language with security types, the types of variables and expressions relate to the security policy of the application, and programmers may be able to specify the application security policy via type declarations.Types can be used to reason about various kinds of security policies, including authorization policies (as access control or capabilities) and information flow security.Security type systems can be formally related to the underlying security policy, and a security type system is sound if all programs that type-check satisfy the policy in a semantic sense.