A
context-free grammar is
deterministic iff its rules allow a (left-to-right, bottom-up)
parser to proceed without having to guess the correct continuation at any point.
A language is deterministic context-free iff it is generated by some deterministic context-free grammar. Not all context-free languages are deterministic.
To illustrate: the following grammar is not deterministic:
S -> aS
S -> aSb
S -> b
While we are parsing, we cannot decide which rule to apply without knowing the rest of the string in advance. The language being described is in fact nondeterministic: it is
impossible to write a deterministic context-free grammar for it.
Determinism is a stronger notion than nonambiguity. A grammar is ambiguous if it allows two different parses for the same sentence. Determinism requires that ambiguity never arises even temporarily during parsing.