Computação |
Introdução
A construção de compiladores está intimamente ligada à teoria dos autômatos, linguagens formais e expressões regulares.
Esses conceitos fornecem a base matemática para o reconhecimento de padrões e estruturas em linguagens de programação.
Antes de um compilador conseguir analisar o código-fonte, ele precisa reconhecer palavras, símbolos e estruturas válidas da linguagem.
Linguagens Formais
Linguagens formais são conjuntos de cadeias de símbolos (strings) construídas a partir de um alfabeto definido, com regras específicas de formação.
No contexto de compiladores, elas são usadas para descrever a sintaxe de linguagens de programação.
Alfabeto: Um alfabeto (Σ) é um conjunto finito de símbolos. Por exemplo, o alfabeto binário é:
Cadeia (ou palavra): Uma cadeia é uma sequência finita de símbolos do alfabeto. Exemplo: Se
Linguagem: Uma linguagem formal é um conjunto de cadeias formadas a partir de um alfabeto. Exemplo:
Expressões Regulares
As expressões regulares (ERs) são uma forma compacta e poderosa de descrever linguagens formais.
Elas definem padrões que um analisador léxico pode usar para identificar tokens.