Conforme solicitação do @Agos, transformei o comentário em uma resposta.
Primeiro, devo admitir que não tenho muito conhecimento nesse campo. No entanto, sugiro que você leia os documentos Construindo analisadores amigáveis e Análise incremental eficiente e flexível para ter uma visão de quais algoritmos foram usados para análise incremental antes de 2000.
Para tratamentos atualizados, você pode dar uma olhada nestes documentos:
Mais informações: Existem (pelo menos) duas abordagens para análise / compilação:
- A abordagem em lote , na qual todo o bloco de código é analisado / compilado.
- A abordagem incremental , na qual o documento é analisado / compilado primeiro no modo em lote, e então as alterações são detectadas e a re-análise / recompilação mínima é aplicada. Essa abordagem não apenas aumenta a velocidade de análise / compilação, mas também ajuda nos recursos interessantes do IDE, como a compilação em segundo plano , que está relacionada à compilação lenta . (Você também pode pesquisar sobre recursos comerciais, como o IntelliSense ).