Vagueness is the phenomenon that natural language predicates have borderline regions of applicability and that the boundaries of the borderline region are not determinable. A theory is presented which argues that vagueness is due to the fact that we are computationally bound by Church's Thesis. Syntactic and semantic models motivated by the theory are introduced. Each disallows the use of classical negation, capturing the fact that it is generally only possible to semidecide but not decide our interpretations of natural language predicates. The role of negation is filled, for each predicate R, by the existence of a dual predicate nonR that acts as if it is the negation, although its interpretation is generally, at best, only an approximation to the complement of R. Multiple "levels" of vagueness are modeled using concepts from recursion theory.