In informatica, una grammatica è detta ambigua se esistono stringhe da essa generate che possono essere prodotte con derivazioni sinistre diverse (in inglese leftmost derivation), o, equivalentemente, che hanno più di un possibile albero sintattico. Un linguaggio è detto inerentemente ambiguo quando può essere generato solo da grammatiche ambigue.
Per quanto riguarda i linguaggi di programmazione, le grammatiche ambigue possono rendere difficile l'analisi sintattica (parsificazione) del codice sorgente. In genere, i generatori di parsificatori (parser generator o compiler compiler in inglese) che permettono la definizione di linguaggi attraverso grammatiche ambigue (ad esempio GNU Bison) dispongono di metodi di risoluzione dell'ambiguità.