As long as your language is good enough to generate correct code at any point, it is a specification. If not, it is an ambiguous approximation.