LINGUAGENS FORMAIS Definiçõespalhares2.flu.angelfire.com/uniceub/tc/tct001.pdf · sequências de...
Transcript of LINGUAGENS FORMAIS Definiçõespalhares2.flu.angelfire.com/uniceub/tc/tct001.pdf · sequências de...
1
LINGUAGENS FORMAISDefinições
• Linguagens Naturais
→ Desenvolveram-se na História em função da necessidadedos grupos humanos que as empregavam
→ São muito “ricas”, mas também ambíguas e imprecisas.
Ex.: “João amarelou ao ver a silhueta na janela”
“O homem nasceu livre; mas por toda a parte se vêacorrentado” (Rousseau)
• Linguagens Formais (artificiais)
→ Linguagens Formais são utilizadas por cientistas paraevitar as imperfeições das linguagens naturais
Ex.: Explicar a Teoria da Relatividade em inglês, francêsou com a simbologia da matemática ?
→ Linguagens Formais são apenas um instrumento a serempregado, onde precisão e operacionalidade sãodesejáveis
2
LINGUAGENS FORMAISDefinições
→ Linguagens Formais (artificiais) ⇒ São sistemassimbólicos elaborados para fins científicos (práticos outeóricos), para representar determinados domínios deconhecimento
→ Os símbolos das LF são utilizados conforme regrasrigorosas de manipulação estabelecidas previamente.
Ex.: “o quadrado da hipotenusa é o resultado da soma dosquadrados dos catetos de um triângulo retângulo”
H2 = a2 + b2
3
LINGUAGENS FORMAISDefinições
• Semiótica
→ É Qualquer tipo de investigação em torno de umalinguagem-objeto (linguagem de interesse de estudo). Alinguagem objeto pode ser uma linguagem natural ouuma linguagem artificial
→ Semiótica é o estudo (metalinguístico) de qualquersistema simbólico.
→ Semiótica = Sintáctica + Semântica + Pragmática
→ Semiótica - Sintáctica = Sequência de ordenação dos símbolos de uma
determinada linguagem
→ Semiótica - Semântica = Sentidos e denotações de uma determinada expressão
linguística
→ Semiótica - Pragmática = Dimensão do sistema simbólico que o relaciona com
o mundo nos contextos sociais, psicológicos,econômicos, políticos, etc
4
LINGUAGENS FORMAISDefinições
• Linguagens Formais (artificiais)
→ Desenvolvida na 1a metade do século XX com o objetivode desenvolver teorias relacionadas com as linguagensnaturais.
→ Investigação inicial: Estrutura matemática das linguagens
→ Áreas de aplicação
� Análise léxica e sintática de linguagens de programação
� Modelos de sistemas biológicos
� Projetos de circuitos (“chips”)
� Linguagens planares, espaciais e n-dimensionais
5
LINGUAGENS FORMAISDefinições
Linguagem Sintáctica Semântica PragmáticaNatural Sim Sim SimFormal Sim Sim -
• Linguagens Formais (artificiais) – Dimensão: SINTAXE = Apresenta construções matemáticas bem definidas e
universalmente aceitas. Ex.: Gramáticas de Chomsky
6
LINGUAGENS FORMAISConceitos Básicos
• Alfabeto (Σ)
→ Um conjunto finito de símbolos→ (um conjunto vazio também é considerado um
alfabeto)
Ex.: Letras, dígitos, operadores aritméticos, variáveis
• Sentença (palavra, cadeia de caracteres)
→ Uma sequência finita de símbolos (do alfabeto)justapostos
ε - sentença vazia
Σ* - Todas as sentenças (palavras) possíveis sobre Σ
Σ+ - Todas as sentenças (palavras) possíveis sobre Σexcetuando-se a palavra vazia. Σ+ = Σ* - { ε }
• Tamanho (comprimento) da sentença
→ Seja a sentença simbolizada por w. Então |w| é o númerode símbolos que compõem a sentença (palavra)
7
LINGUAGENS FORMAISConceitos Básicos
8
9
LINGUAGENS FORMAISConceitos Básicos
• Prefixo, Sufixo, Subpalavra
→ Um prefixo (respectivamente sufixo) de uma sentença équalquer sequência inicial (respectivamente final) dasentença. Uma subpalavra de uma palavra é qualquersequência de símbolos contígua da palavra
• Concatenação
→ Define-se concatenação β de duas cadeias (sentenças) α eα’ como sendo a cadeia formada pela justaposição dassequências de símbolos α e α’ nesta ordem
β = α • α’ ou β = αα’
|β| = |α| + |α’|
→ Concatenação é uma operação associativa:(αβ)γ = α(βγ)
→ Cadeia ε é elemento neutro na concatenação:αε = εα = α
10
LINGUAGENS FORMAISConceitos Básicos
• Linguagem Formal
→ Uma linguagem formal é um conjunto de sentenças(palavras) sobre um alfabeto
11
LINGUAGENS FORMAISConceitos Básicos
• Gramática
→ Conjunto de leis de formação (justaposição) dossímbolos do alfabeto para formação das sentenças(palavras) da linguagem em questão
• Gramática
→ É uma quádrupla ordenada
G = (V, T, P, S) onde:
V - Conjunto finito de símbolos variáveis ou não-terminais
T - Conjunto finito de símbolos terminais distintos de V
P - Conjunto finito de pares do tipo α → β denominadosregras de produção
S - Elemento de V denominado variável inicial
V ∩ T = ∅α ∈ (V ∪ T)+
β ∈ (V ∪ T)*
12
LINGUAGENS FORMAISConceitos Básicos
• Derivação
→ Seja G = (V, T, P, S) uma gramática. Uma derivação éum par da relação denotada por “⇒”
α ⇒ β, onde α ∈ (V ∪ T)+ e β ∈ (V ∪ T)*
→ Para todo par α ⇒ β, onde β = βuβvβw, se βv → βt éregra de P então: β = βuβtβw
⇒* é fecho transitivo e reflexivo: ou seja, zero ou maispassos de derivações sucessivos
⇒+ é fecho transitivo: ou seja, um ou mais passos dederivações sucessivos
⇒i exatos i passos de derivações sucessivos onde i ∈N
• Linguagem Gerada
→ A linguagem gerada pela gramática G = (V, T, P, S)denotada por L(G) ou GERA(G) é composta por todos assentenças (palavras) de símbolos terminais deriváveis apartir do símbolo inicial S
L(G) = { w ∈ T* | S ⇒+ w }
13
LINGUAGENS FORMAISGramáticas - Exemplos
14
15
LINGUAGENS FORMAISGramáticas
• Gramáticas [ G = (V, T, P, S) ]
→ Dispositivos GERADORES de SENTENÇAS de umadeterminada linguagem
16
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
• Gramáticas Lineares
→ Seja G = (V, T, P, S) uma gramática e sejam:A ∈ V , B ∈ V e w é uma sentença (palavra) de T*.Então G é uma:
a) Gramática Linear à Direita (GLD) ⇒ se todas as regras deprodução são da forma
A → wB ou A → w
b) Gramática Linear à Esquerda (GLE) ⇒ se todas as regrasde produção são da forma
A → Bw ou A → w
c) Gramática Linear Unitária à Direita (GLUD) ⇒ se todas asregras de produção são como na GLD e adicionalmente:
|w| ≤ 1
d) Gramática Linear Unitária à Esquerda (GLUE) ⇒ se todasas regras de produção são como na GLE e adicionalmente:
|w| ≤ 1
17
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
• Teorema: Equivalência das Gramáticas Lineares
Seja L uma linguagem. Então:
L é gerada por uma GLD se e somente se,
L é gerada por uma GLE se e somente se,
L é gerada por uma GLUD se e somente se,
L é gerada por uma GLUE
• Gramática Regular
→ Uma gramática regular (tipo 3) é qualquer gramáticalinear
18
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
19
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
� A gramática acima é gramática tipo 3 ??
20
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
� Na gramática acima VN = ? VT = ? P = ?� A gramática acima é gramática tipo 3 ??
21
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
1) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde
L = { w | w = 1m0, m = 1, 2, 3, ... }
2) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças iniciem, obrigatoriamente, com “00” ou “11”
3) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças tenham, obrigatoriamente, “00” ou “11”comosubpalavras
4) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças iniciem, obrigatoriamente, com “1” eterminem, obrigatoriamente com “0”
5) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças possuem um número par de bits “1”
22
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
6) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças possuem um número par de bits “1” e umnúmero par de bits “0”
7) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças possuem ou um número par de bits “1” e umnúmero ímpar de bits “0”, ou um número ímpar de bits“1” e um número par de bits “0”
8) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças não possuem a subpalavra “11”
9) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças não possuem a subpalavra “101”
10) Construa a gramática regular G sobre o alfabeto Σ={0,1}que gera SENTENÇAS da linguagem L onde assentenças possuem no máximo um par da subpalavra“00”
23
LINGUAGENS FORMAISSistema de Estados (status) Finitos
→ Modelo matemático apresentando entradas e saídasdiscretas. Assume um número finito e pré-definido deestados
Exemplos→ “Status” da vida escolar de um indivíduo
� Curso primário incompleto� Curso primário completo e cursando o 1o grau� 1o grau completo e cursando o 2o grau� 2o grau completo e cursando 3o grau� 3o grau completo e cursando pós-graduação� Pós-graduação completo
→ “Status” da vida civil de um indivíduo� Solteiro� Casado� Divorciado� Viúvo� Outros
→ “Status” do plano de viagem de um avião� avião no pátio� chegada confirmada para o horário previsto� horário de chegada com atraso� ....
24
LINGUAGENS FORMAISSistema de Estados (status) Finitos - Exemplos
→ “Status” do acesso a uma determinada home page� Localizando web site� Web site localizado... Carregando página� Web site não localizado� Concluído ( carregamento/apresentação da HP)� ....
25
LINGUAGENS FORMAISSistema de Estados (status) Finitos - Exemplos
26
LINGUAGENS FORMAISAutômato Finito
• Autômato Finito Determinístico
→ É uma “máquina” composta de 3 partes:
a) Fita : dispositivo de entrada que contém a informação aser processada
b) Unidade de controle: Reflete o estado corrente damáquina. Possui uma unidade de leitura (cabeça da fita) aqual acessa uma célula da fita de cada vez e movimenta-se exclusivamente para a direita
c) Programa ou função de transição: função que comandaas leituras e define o estado (status) da máquina
27
LINGUAGENS FORMAISAutômato Finito Determinístico
• Um autômato finito determinístico (AFD) é uma 5-upla:
M = (Σ, Q, δ, q0, F)
Onde:
Σ Alfabeto de símbolo de entradaQ Conjunto de estados possíveis do autômatoδ Função programa ou função de transição
δ: Q x Σ → Qq0 Estado inicial do autômato (Obs.: q0 ∈ Q )F Conjunto de estados finais tal que F ⊂ Q
• Processamento de um AFD M, para uma palavra(SENTENÇA) w de entrada ⇒ Sucessiva aplicação dafunção programa para cada símbolo de w (da esquerda paraa direita) até ocorrer uma condição de parada
• Após processar o último símbolo da palavra w “escrita” nafita, o AFD assume um estado que pode ser um estado final(quando w é aceita) ou um estado não-final (quando w nãoé aceita)
28
LINGUAGENS FORMAISAutômato Finito Determinístico
• Convenções para a representação da função de transição
29
LINGUAGENS FORMAISAutômato Finito Determinístico - Exemplo
30
LINGUAGENS FORMAISGramáticas X Autômatos
• Autômatos ⇒ Dispositivos RECONHECEDORES de“sentenças”
• Gramáticas ⇒ Dispositivos GERADORES de “sentenças”
• Construir a gramática G = (V, T, P, S) que gera sentenças wque tenham “aa” ou “bb” como subpalavra
L1 = { w | w possui aa ou bb como subpalavra }
V = { S, A, A2, B, B2 }
T = { a, b }
P: (1) S → aA2 | bB2 | aB | bA(2) A2 → aA | a | aB(3) B2 → bB | b | bb(4) A → aA2 | aB(5) B → bB2 | bA
Assim, L1(G) : “G gera a linguagem L1”
31
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
• Uma linguagem L aceita por um autômato finitodeterminístico (AFD) é uma Linguagem Regular ou Tipo 3
• A linguagem aceita por um AFD M = (Σ, Q, δ, q0, F),denotada por ACEITA(M) ou L(M) é o conjunto de todasas SENTENÇAS pertencentes a Σ* aceitas por M, ou seja:
ACEITA(M) = L(M) = { w | δ(q0, w) ∈ F }
• Uma linguagem L gerada por uma gramática regular é umaLinguagem Regular ou Tipo 3
• A linguagem gerada por G = (V, T, P, S), denotada porGERA(G) ou L(G) é o conjunto de todas as SENTENÇASpertencentes a Σ* geradas por G, ou seja:
GERA(G) = L(G) = { w | S ⇒* w }
32
LINGUAGENS FORMAISCompiladores – Primeiras idéias
• Um compilador é um programa que lê um programa escritonuma linguagem - a linguagem fonte - e o traduz numprograma equivalente numa outra linguagem - alinguagem alvo
• A compilação se divide em duas grandes fases: análise esíntese
33
LINGUAGENS FORMAISCompiladores – Primeiras idéias
• Compilador – Fase de Análise
1) Análise linear - Um fluxo de caracteres constituindo umprograma é lido da esquerda para a direita e agrupado emtokens, que são sequências de caracteres tendo umsignificado coletivo
2) Análise hierárquica - Os caracteres ou tokens sãoagrupados hierárquicamente em coleções aninhadas comsignificado coletivo
3) Análise semântica - Certas verificações são realizadas afim de se assegurar que os componentes de um programase combinam de forma significativa
34
LINGUAGENS FORMAISCompiladores – Primeiras idéias
• Análise léxica
→ Num compilador, a análise linear é chamada de análiseléxica ou esquadrinhamento (scanning)
• Exemplo:
montante := deposito_inicial + taxa_de_juros * 60
Encontram-se os seguintes tokens:
1) identificador montante2) símbolo de atribuição :=3) identificador deposito_inicial4) sinal de adição5) identificador taxa_de_juros6) sinal de multiplicação7) número 60
35
LINGUAGENS FORMAISCompiladores – Primeiras idéias
• Análise sintática
→ É a análise hierárquica. Envolve o agrupamento detokens do programa fonte em frases gramaticais quesão usadas pelo compilador, a fim de sintetizar asaída. Usualmente, as frases gramaticais do programafonte são representadas por uma árvore gramatical
36
LINGUAGENS FORMAISCompiladores – Primeiras idéias
• Fases de um compilador
37
montante := deposito_inicial + taxa_de_juros * 60
38
39
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
11) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde
L = { w | w = 1m0, m = 1, 2, 3, ... }
12) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças iniciem, obrigatoriamente, com “00” ou “11”
13) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças tenham, obrigatoriamente, “00” ou “11”comosubpalavras
14) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças iniciem, obrigatoriamente, com “1” eterminem, obrigatoriamente com “0”
15) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças possuem um número par de bits “1”
40
LINGUAGENS FORMAISLinguagens Regulares (Tipo 3)
16) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças possuem um número par de bits “1” e umnúmero par de bits “0”
17) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças possuem ou um número par de bits “1” e umnúmero ímpar de bits “0”, ou um número ímpar de bits“1” e um número par de bits “0”
18) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças não possuem a subpalavra “11”
19) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças não possuem a subpalavra “101”
20) Construa um AFD sobre o alfabeto Σ={0,1} quereconheça SENTENÇAS da linguagem L onde assentenças possuem no máximo um par da subpalavra“00”