Conceitos Básicos de Linguagens
|
|
|
- Juan Mario Brunelli Zagalo
- 9 Há anos
- Visualizações:
Transcrição
1 Conceitos Básicos de Linguagens Prof. Marcus Vinícius Midena Ramos Universidade Federal do Vale do São Francisco 9 de junho de 2013 [email protected] Marcus Ramos (UNIVASF) LFA de junho de / 94
2 Bibliografia 1 Linguagens Formais: Teoria, Modelagem e Implementação M.V.M. Ramos, J.J. Neto e I.S. Vega Bookman, 2009 Marcus Ramos (UNIVASF) LFA de junho de / 94
3 Roteiro 1 Símbolos e Cadeias 2 Linguagens 3 Gramáticas 4 Linguagens, Gramáticas e Conjuntos 5 Reconhecedores Marcus Ramos (UNIVASF) LFA de junho de / 94
4 Símbolos e Cadeias Símbolo, cadeia e alfabeto Os símbolos, também denominados palavras ou átomos, são representações gráficas, indivisíveis, empregadas na construção de cadeias. Estas são formadas através da justaposição de um número finito de símbolos, obtidos de algum conjunto finito não-vazio, denominado alfabeto. Marcus Ramos (UNIVASF) LFA de junho de / 94
5 Símbolos e Cadeias Símbolo, cadeia e alfabeto Cada símbolo é considerado como uma unidade atômica, não importando a sua particular representação visual. São exemplos de símbolos: a,abc,begin,if,5,1024,2.017e4. Perceba-se que não há uma definição formal para símbolo. Deve-se intuir o seu significado como entidade abstrata, e dessa forma aceitá-lo como base para a teoria que será desenvolvida. Pode-se dizer que se trata de um conceito primitivo. Marcus Ramos (UNIVASF) LFA de junho de / 94
6 Símbolos e Cadeias Convenções Ao longo deste texto será adotada a seguinte convenção para denotar símbolos, cadeias e alfabetos: Símbolos: letras minúsculas do início do alfabeto romano: (a,b,c...). Cadeias: letras minúsculas do final do alfabeto romano (r,s,x,w...), ou letras minúsculas do alfabeto grego (α,β,γ...). Alfabetos: letras maiúsculas do alfabeto grego (Σ, Γ,...). Marcus Ramos (UNIVASF) LFA de junho de / 94
7 Exemplo Símbolos e Cadeias Exemplo 1.1 Como exemplo de alfabeto podemos mencionar o conjunto Σ dos dígitos hexadecimais, em que cada elemento (dígito) desse conjunto corresponde a um determinado símbolo: Σ = {0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f } Naturalmente, as cadeias que podem ser construídas a partir dos símbolos desse alfabeto correspondem aos numerais hexadecimais: 123, a0b56, fe5dc, b, abc, 55efff... Marcus Ramos (UNIVASF) LFA de junho de / 94
8 Símbolos e Cadeias Comprimento de uma cadeia O comprimento de uma cadeia é um número natural que designa a quantidade de símbolos que a compõem. O comprimento de uma cadeia α é denotado por α. Exemplo 1.2 Considerem-se as cadeias α = 1,β = 469, χ = bce60 e φ = df, também construídas sobre o alfabeto Σ do Exemplo 1.1. Então, α = 1, β = 3, χ = 5 e φ = 2. Marcus Ramos (UNIVASF) LFA de junho de / 94
9 Cadeia unitária Símbolos e Cadeias Dá-se o nome de cadeia elementar (ou unitária) a qualquer cadeia formada por um único símbolo, como é o caso da cadeia α do Exemplo 1.2. Naturalmente, toda cadeia unitária tem comprimento 1. Marcus Ramos (UNIVASF) LFA de junho de / 94
10 Cadeia vazia Símbolos e Cadeias O conceito de cadeia vazia é especialmente importante na teoria das linguagens formais. Denota-se por ε a cadeia formada por uma quantidade nula de símbolos, isto é, a cadeia que não contém nenhum símbolo. Formalmente, ε = 0 Marcus Ramos (UNIVASF) LFA de junho de / 94
11 Símbolos e Cadeias Concatenação de cadeias Duas cadeias, sejam elas elementares ou não, podem ser anexadas, formando uma só cadeia, através da operação de concatenação. Essa operação fornece como resultado uma nova cadeia, formada pela justaposição ordenada dos símbolos que compõem os seus operandos separadamente. Observe-se que a operação de concatenação entre uma cadeia e um símbolo é realizada através da concatenação da cadeia em questão com a cadeia elementar correspondente ao símbolo. Denota-se a concatenação de duas cadeias α e β como α β ou, simplesmente, αβ. Marcus Ramos (UNIVASF) LFA de junho de / 94
12 Exemplos Símbolos e Cadeias Exemplo 1.3 Considere o alfabeto Σ = {a,b,c,d}, e as cadeias α = abc, β = dbaca e σ = a. A concatenação da cadeia α com a cadeia β é assim obtida: α β = αβ = abcdbaca, e αβ = α + β = 3+5 = 8 Da mesma forma, obtém-se a concatenação de β com α: β α = β α = dbacaabc, e, β α = β + α = 5+3 = 8 Note-se que, neste exemplo, αβ β α. A concatenação da cadeia α com a cadeia elementar σ é dada por: α σ = ασ = abca, e ασ = α + σ = 3+1 = 4 Finalmente, a concatenação da cadeia elementar σ com a cadeia β é obtida como: σ β = σβ = adbaca, e σβ = σ + β = 1+5 = 6 Marcus Ramos (UNIVASF) LFA de junho de / 94
13 Símbolos e Cadeias Propriedades da concatenação de cadeias Como se pode perceber, a operação de concatenação, embora associativa, não é comutativa. Dadas três cadeias α, β, γ quaisquer, pode-se sempre afirmar que (αβ)γ = α(βγ). Por outro lado, dependendo dos particulares α e β considerados, pode ser que ou αβ βα ou αβ = βα (por exemplo, se α e/ou β forem cadeias vazias ou, ainda, se α = β). No caso da cadeia vazia ε (elemento neutro em relação ao operador de concatenação) são válidas as seguintes relações: 1 αε = εα = α 2 αε = εα = α Marcus Ramos (UNIVASF) LFA de junho de / 94
14 Prefixos e sufixos Símbolos e Cadeias Diz-se que uma cadeia α é um prefixo de outra cadeia β se for possível escrever β como αγ. A cadeia α é dita sufixo de β se β puder ser escrita como γα. Em ambos os casos, admite-se a possibilidade de γ = ε. Nos casos em que γ ε, diz-se que α é, respectivamente, prefixo próprio ou sufixo próprio da cadeia β. Note que a cadeia vazia ε pode ser considerada simultaneamente prefixo ou sufixo de qualquer cadeia. Marcus Ramos (UNIVASF) LFA de junho de / 94
15 Subcadeias Símbolos e Cadeias Dadas quatro cadeias α,β,γ e δ, uma cadeia α é chamada subcadeia de uma cadeia β sempre que β = γαδ. Note-se que, se γ ou δ ou ambos forem vazios, a definição também se aplica. Note-se também que prefixos e sufixos são casos particulares de subcadeias. Marcus Ramos (UNIVASF) LFA de junho de / 94
16 Cadeia reversa Símbolos e Cadeias Uma cadeia α é dita o reverso de uma cadeia β, denotando-se o fato por α = β R, se α contiver os mesmos símbolos que β, porém justapostos no sentido inverso, ou seja: Por definição, ε R = ε. se α = σ 1 σ 2...σ n 1 σ n então β = σ n σ n 1...σ 2 σ 1 Exemplo 1.4 Considerem-se as cadeias α = 123abc e β = d. Então, α R = cba321 e β R = d. Marcus Ramos (UNIVASF) LFA de junho de / 94
17 Símbolos e Cadeias Repetição de símbolos Finalmente, convenciona-se que σ i representa a cadeia formada por i símbolos σ concatenados. Por definição, σ 0 = ε. Exemplo 1.5 Considere-se o símbolo a. Então: a 0 = ε; a 1 = a; a 2 = aa; a 3 = aaa; etc. Marcus Ramos (UNIVASF) LFA de junho de / 94
18 Linguagem formal Linguagens Uma linguagem formal é um conjunto, finito ou infinito, de cadeias de comprimento finito, formadas pela concatenação de elementos de um alfabeto finito e não-vazio. Além das operações previamente definidas para conjuntos, como união, diferença, intersecção etc., outras operações, tais como a concatenação e os fechamentos, também são fundamentais para a definição e o estudo das linguagens formais. Marcus Ramos (UNIVASF) LFA de junho de / 94
19 Linguagens Cadeia vazia e conjunto vazio Convém notar a distinção que há entre os seguintes conceitos: cadeia vazia ε; conjunto vazio /0; conjunto que contém apenas a cadeia vazia {ε}; conjunto que contém apenas o conjunto vazio {/0}. O primeiro deles, ε, denota a cadeia vazia, ou seja, uma cadeia de comprimento zero, ao passo que os demais são casos particulares de conjuntos: /0 denota uma linguagem vazia, ou seja, uma linguagem que não contém nenhuma cadeia, {ε} denota uma linguagem que contém uma única cadeia (a cadeia vazia), e {/0} denota um conjunto que contém um único elemento, o conjunto vazio. Observe-se que ε = /0 = 0 e {ε} = {/0} = 1. Marcus Ramos (UNIVASF) LFA de junho de / 94
20 Linguagens Alfabetos, linguagens e cadeias Note-se a diferença conceitual que há entre alfabetos, linguagens e cadeias. Alfabetos são conjuntos, finitos e não-vazios, de símbolos, através de cuja concatenação são obtidas as cadeias. Linguagens, por sua vez, são conjuntos, finitos (eventualmente vazios) ou infinitos, de cadeias. Uma cadeia é também denominada sentença de uma linguagem, ou simplesmente sentença, no caso de ela pertencer à linguagem em questão. Linguagens são, portanto, coleções de sentenças sobre um dado alfabeto. Marcus Ramos (UNIVASF) LFA de junho de / 94
21 Linguagens Símbolos, alfabeto, cadeias, linguagem A Figura 1 ilustra a relação entre os conceitos de símbolo, alfabeto, cadeia e linguagem. Figura 1: Símbolo, alfabeto, cadeia e linguagem Marcus Ramos (UNIVASF) LFA de junho de / 94
22 Linguagens Símbolos, alfabeto, cadeias, linguagem Outra maneira de associar significados aos termos símbolo, alfabeto, cadeia e linguagem é apresentada na Figura 2, que também ilustra o conceito de sentença. Marcus Ramos (UNIVASF) LFA de junho de / 94
23 Exemplo Linguagens Exemplo 2.1 O símbolo a é elemento do alfabeto {a} e também um item da cadeia aaa, que por sua vez é elemento da linguagem {aaa}. Por outro lado, a linguagem {aaa} é um conjunto que contém a cadeia aaa, a cadeia aaa é uma seqüência de símbolos a e o alfabeto {a} contém o símbolo a. A Figura 3 ilustra esses conceitos, conforme a Figura 1. Figura 3: a,{a},aaa,{aaa} Marcus Ramos (UNIVASF) LFA de junho de / 94
24 Exemplo Linguagens Exemplo 2.2 A Figura 4 ilustra uma aplicação dos conceitos da Figura 2 ao alfabeto {a,b}. A linguagem apresentada é, naturalmente, apenas uma das inúmeras que podem ser criadas a partir desse alfabeto. Figura 4: Símbolos a e b, cadeias, sentenças e linguagem Marcus Ramos (UNIVASF) LFA de junho de / 94
25 Linguagens Concatenação de linguagens A concatenação de duas linguagens X e Y, denotada por X Y ou simplesmente XY, corresponde a um conjunto Z formado pela coleção de todas as cadeias que possam ser obtidas pela concatenação de cadeias x X com cadeias y Y, nesta ordem. Formalmente, Z = X Y = XY = {xy x X e y Y} A concatenação ΣΣ, que gera cadeias de comprimento 2 formadas sobre um alfabeto Σ, é também representada por Σ 2. Analogamente, a concatenação ΣΣΣ, que gera cadeias de comprimento 3 sobre o alfabeto Σ, é representada como Σ 3, e assim sucessivamente. Generalizando-se: Σ i = ΣΣ i 1,i > 0 Por definição, Σ 0 = {ε} Marcus Ramos (UNIVASF) LFA de junho de / 94
26 Linguagens Exemplo Exemplo 2.3 Considere-se Σ = {a,b,c}. Então, Σ 0 = {ε} Σ 1 = {a,b,c} Σ 2 = {aa,ab,ac,ba,bb,bc,ca,cb,cc} Σ 3 = {aaa,aab,aac,aba,abb,abc,...,ccc} etc. Marcus Ramos (UNIVASF) LFA de junho de / 94
27 Linguagens Fechamento reflexivo e transitivo O fechamento reflexivo e transitivo (às vezes chamado fechamento recursivo e transitivo) de um alfabeto Σ é definido como o conjunto (infinito) que contém todas as possíveis cadeias que podem ser construídas sobre o alfabeto dado, incluindo a cadeia vazia. Esse conjunto, denotado por Σ, contém, naturalmente, todas as cadeias que podem ser definidas sobre o alfabeto Σ. Formalmente, o fechamento reflexivo e transitivo de um conjunto Σ é definido como: Σ = Σ 0 Σ 1 Σ 2 Σ 3... = Σ i i=0 Marcus Ramos (UNIVASF) LFA de junho de / 94
28 Linguagens Fechamento reflexivo e transitivo A definição de uma linguagem pode, portanto, ser formulada de maneira mais rigorosa com o auxílio da operação de fechamento reflexivo e transitivo: sendo uma linguagem qualquer coleção de cadeias sobre um determinado alfabeto Σ, e como Σ contém todas as possíveis cadeias sobre Σ, então toda e qualquer linguagem L sobre um alfabeto Σ sempre poderá ser definida como sendo um subconjunto de Σ, ou seja, L Σ. Marcus Ramos (UNIVASF) LFA de junho de / 94
29 Maior linguagem Linguagens Diz-se que a maior linguagem que se pode definir sobre um alfabeto Σ, observando-se um conjunto qualquer P de propriedades, corresponde ao conjunto de todas as cadeias w Σ tais que w satisfaz simultaneamente a todas as propriedades p i P. De uma forma geral, sempre que for feita uma referência a uma determinada linguagem L cujas cadeias satisfaçam a um certo conjunto de propriedades P, estará implícita (a menos de ressalva em contrário) a condição de que se trata da maior linguagem definida sobre L, cujas cadeias satisfaçam o conjunto de propriedades P. Marcus Ramos (UNIVASF) LFA de junho de / 94
30 Maior linguagem Linguagens Um caso particular importante a se considerar é a linguagem cujo conjunto P de propriedades seja o menos restritivo possível, considerando toda e qualquer cadeia de qualquer comprimento (finito) como sendo válida. Assim, a maior linguagem dentre todas as que podem ser definidas sobre um alfabeto Σ qualquer é L = Σ (note-se, neste caso, que a única propriedade a ser satisfeita pelas cadeias de L é que elas sejam definidas sobre Σ, ou seja, obtidas a partir da simples justaposição de símbolos de Σ). Qualquer outra linguagem definida sobre esse mesmo alfabeto corresponderá obrigatoriamente a um subconjunto (eventualmente próprio) de Σ. Marcus Ramos (UNIVASF) LFA de junho de / 94
31 Menor linguagem Linguagens Por outro lado, a menor linguagem que pode ser definida sobre um alfabeto Σ qualquer é /0, ou seja, a linguagem vazia ou a linguagem composta por zero sentenças. Marcus Ramos (UNIVASF) LFA de junho de / 94
32 Todas as linguagens Linguagens Finalmente, como o conjunto de todos os subconjuntos possíveis de serem obtidos a partir de Σ é 2 Σ, tem-se que 2 Σ representa o conjunto de todas as linguagens que podem ser definidas sobre o alfabeto Σ. Marcus Ramos (UNIVASF) LFA de junho de / 94
33 Linguagens Menor, maior, todas Em resumo: /0 é o conjunto constituído por zero cadeias e corresponde à menor linguagem que se pode definir sobre um alfabeto Σ qualquer; Σ é o conjunto de todas as cadeias possíveis de serem construídas sobre Σ e corresponde à maior de todas as linguagens que pode ser definida sobre Σ; 2 Σ é o conjunto de todos os subconjuntos possíveis de serem obtidos a partir de Σ, e corresponde ao conjunto formado por todas as possíveis linguagens que podem ser definidas sobre Σ. Observe-se que /0 2 Σ, e também que Σ 2 Σ. Marcus Ramos (UNIVASF) LFA de junho de / 94
34 Exemplos Linguagens Exemplo 2.4 Seja Σ = {a, b, c} e P o conjunto formado pela única propriedade todas as cadeias são iniciadas com o símbolo a. Então: A linguagem L 0 = /0 é a menor linguagem que pode ser definida sobre Σ; A linguagem L 1 = {a,ab,ac,abc,acb} é finita e observa P; A linguagem L 2 = {a}{a} {b} {c} é infinita e observa P; A linguagem L 3 = {a}{a,b,c} é infinita, observa P e, dentre todas as que observam P, trata-se da maior linguagem, pois não existe nenhuma outra cadeia em Σ que satisfaça a P e não pertença a L 3 ; L 0 Σ, L 1 Σ, L 2 Σ, L 3 Σ ; L 0 2 Σ, L 1 2 Σ, L 2 2 Σ, L 3 2 Σ ; Além de L 0,L 1,L 2 e L 3, existem inúmeras outras linguagens que podem ser definidas sobre Σ. Marcus Ramos (UNIVASF) LFA de junho de / 94
35 Fechamento transitivo Linguagens O fechamento transitivo de um alfabeto Σ, denotado por Σ +, é definido de maneira análoga ao fechamento reflexivo e transitivo, diferindo deste apenas por não incluir o conjunto Σ 0 : Σ + = Σ 1 Σ 2 Σ 3... = Σ i Como se pode perceber, Σ = Σ + {ε}. Observe-se ainda que, embora aparentemente seja conseqüência da anterior, a afirmação Σ + = Σ {ε} só será válida nos casos em que Σ não contiver a cadeia vazia. i=1 Marcus Ramos (UNIVASF) LFA de junho de / 94
36 Exemplo Linguagens Exemplo 2.5 Seja Σ = {n,(,),+,,,/}. Neste caso: Σ = {ε,n,n+n, n), /,n()),n (n n),...} Σ + = {n,n+n, n), /,n()),n (n n),...} Σ + = Σ {ε}, pois ε / Σ Marcus Ramos (UNIVASF) LFA de junho de / 94
37 Linguagens Complementação de uma linguagem A complementação de uma linguagem X definida sobre um alfabeto Σ é definida como: X = Σ X Marcus Ramos (UNIVASF) LFA de junho de / 94
38 Linguagens Reverso de uma linguagem Diz-se que uma linguagem L 1 é o reverso de uma linguagem L 2, denotando-se o fato por L 1 = L R 2 (ou L 2 = L R 1 ), quando as sentenças de L 1 corresponderem ao reverso das sentenças de L 2. Formalmente: L 1 = L R 2 = {x R x L 2 } Exemplo 2.6 Seja L 2 = {ε,a,ab,abc}. Então, L 1 = L R 2 = {ε,a,ba,cba}. Marcus Ramos (UNIVASF) LFA de junho de / 94
39 Exemplo Linguagens Conforme já mencionado, o conjunto Σ contém todas as possíveis linguagens que podem ser definidas sobre o alfabeto Σ. Na prática, as linguagens de interesse costumam ser definidas como um subconjunto próprio de Σ, para um dado alfabeto Σ. Exemplo 2.7 Considere-se o alfabeto Σ 1 = {n,(,),+,,,/}. Uma linguagem L 1, passível de ser definida sobre o alfabeto Σ 1, e que corresponde a um subconjunto próprio de Σ 1, é aquela em que as cadeias se assemelham, do ponto vista estrutural, às cadeias que representam expressões aritméticas bem-formadas em muitas linguagens populares de programação de alto nível. A seguir estão relacionadas algumas das cadeias que fazem parte de L 1, de acordo com esse critério. Marcus Ramos (UNIVASF) LFA de junho de / 94
40 Exemplo Linguagens n n+n (n*n) n*(n/(n+n+n)) Portanto, L 1 = {n,n+n,(n n),n (n/(n+n+n)),...} Σ 1. São exemplos de cadeias pertencentes a Σ 1 L 1: n++ nn* (n*n))) n*-(n(+n+/)) ε Marcus Ramos (UNIVASF) LFA de junho de / 94
41 Métodos e notações Linguagens As linguagens de interesse prático, como é o caso das linguagens de programação, normalmente correspondem a um subconjunto próprio do fechamento reflexivo e transitivo do alfabeto sobre o qual as suas cadeias são construídas. Assim, tornam-se necessários métodos e notações que permitam, dentro do conjunto fechamento, identificar as cadeias que efetivamente pertencem à linguagem que estiver sendo definida, descartando-se as demais. Marcus Ramos (UNIVASF) LFA de junho de / 94
42 Métodos e notações Linguagens Um outro aspecto importante, referente à definição rigorosa das linguagens formais, diz respeito ao fato de que, em sua maioria, as linguagens de interesse contêm, se não uma quantidade infinita, ao menos um número finito, porém muito grande, de cadeias. Marcus Ramos (UNIVASF) LFA de junho de / 94
43 Métodos e notações Linguagens Por esses dois motivos, há um interesse muito grande em relação a métodos que permitam especificar linguagens, sejam elas finitas ou não, através de representações finitas. Por outro lado, nem todas as linguagens podem ser representadas por meio de uma especificação finita. Apesar do reduzido interesse prático que recai sobre tais linguagens, é possível comprovar a existência de linguagens para as quais é impossível se obter uma representação finita. Marcus Ramos (UNIVASF) LFA de junho de / 94
44 Gramáticas Linguagens 1 Gramáticas: correspondem a especificações finitas de dispositivos de geração de cadeias. Um dispositivo desse tipo deve ser capaz de gerar toda e qualquer cadeia pertencente à linguagem definida pela gramática, e nada mais. Assim, as cadeias não pertencentes à linguagem não devem poder ser geradas pela gramática em questão. Essa forma de especificação é aplicável para linguagens finitas e infinitas. Marcus Ramos (UNIVASF) LFA de junho de / 94
45 Reconhecedores Linguagens 2 Reconhecedores: correspondem a especificações finitas de dispositivos de aceitação de cadeias. Um dispositivo desse tipo deverá aceitar toda e qualquer cadeia pertencente à linguagem por ele definido, e rejeitar todas as cadeias não-pertencentes à linguagem. O método é aplicável para a especificação formal de linguagens finitas e infinitas. Marcus Ramos (UNIVASF) LFA de junho de / 94
46 Enumerações Linguagens 3 Enumerações: relacionam, de forma explícita e exaustiva, todas as cadeias pertencentes à particular linguagem a ser especificada. Toda e qualquer cadeia pertencente à linguagem deve constar desta relação. As cadeias não pertencentes à linguagem não fazem parte dessa relação. Aplicam-se apenas para a especificação de linguagens finitas e preferencialmente não muito extensas. Marcus Ramos (UNIVASF) LFA de junho de / 94
47 Usos Linguagens Na prática, as gramáticas e os reconhecedores, além de oferecerem uma grande concisão na representação de linguagens de cardinalidade elevada, também podem ser empregados na definição de linguagens infinitas, ao contrário das enumerações. Em contraste com o que ocorre com as enumerações, as gramáticas e os reconhecedores geralmente possibilitam uma percepção melhor da estrutura sintática inerente às sentenças das linguagens por eles definidas. Marcus Ramos (UNIVASF) LFA de junho de / 94
48 Equivalências Linguagens Diz-se que uma gramática é equivalente a um reconhecedor se as duas seguintes condições forem simultaneamente verificadas (lembrar que os formalismos devem definir todas as sentenças da linguagem desejada, e nenhuma outra cadeia): 1 Toda cadeia gerada pela gramática é também aceita pelo reconhecedor. 2 Toda cadeia aceita pelo reconhecedor é também gerada pela gramática. Marcus Ramos (UNIVASF) LFA de junho de / 94
49 Exemplo Linguagens Exemplo 2.8 Considerem-se a gramática G e o reconhecedor M, respectivamente definidos através das linguagens gerada e aceita: G L 1 (G) = {α {a,b} o primeiro símbolo de α é a } M L 2 (M) = {β {a,b} o primeiro símbolo de β é a e o último símbolo é b } Portanto: L 1 = {a,aa,ab,aaa,aab,aba,abb,aaa...} L 2 = {ab,aab,abb,aaab,aabb,abab,abbb...} É fácil perceber que a condição (2) acima é verificada, mas a condição (1) não. Por exemplo, a cadeia ab L 2 e ab L 1. Por outro lado, a cadeia aba L 1, porém aba / L 2. Logo, L 1 L 2 e não se pode dizer que G e M sejam equivalentes. Marcus Ramos (UNIVASF) LFA de junho de / 94
50 Metalinguagem Linguagens Conforme discutido mais adiante, as gramáticas e os reconhecedores são formas duais de representação de linguagens, ou seja, para cada gramática é possível obter um reconhecedor que aceite a linguagem correspondente e vice-versa. À particular notação utilizada para representar uma linguagem, seja através de gramáticas ou de reconhecedores, dá-se o nome de metalinguagem. Marcus Ramos (UNIVASF) LFA de junho de / 94
51 Conceito Gramáticas Também conhecidas como dispositivos generativos, dispositivos de síntese, ou ainda dispositivos de geração de cadeias, as gramáticas constituem sistemas formais baseados em regras de substituição, através dos quais é possível sintetizar, de forma exaustiva, o conjunto das cadeias que compõem uma determinada linguagem. Marcus Ramos (UNIVASF) LFA de junho de / 94
52 Conceito Gramáticas Assim como ocorre no caso das linguagens naturais, as linguagens formais também podem ser especificadas através de gramáticas a elas associadas. No caso das gramáticas das linguagens formais, que constituem o objeto deste estudo, a analogia com as gramáticas das linguagens naturais é muito grande. Tratam-se, as primeiras, de conjuntos de regras que, quando aplicadas de forma recorrente, possibilitam a geração de todas as cadeias pertencentes a uma determinada linguagem. Marcus Ramos (UNIVASF) LFA de junho de / 94
53 Metalinguagens Gramáticas Diferentemente das gramáticas das linguagens naturais, que são descritas por intermédio de linguagens também naturais (muitas vezes a mesma que está sendo descrita pela gramática), as gramáticas das linguagens formais são descritas utilizando notações matemáticas rigorosas que visam, entre outros objetivos, evitar dúvidas na sua interpretação. Tais notações recebem a denominação de metalinguagens linguagens que são empregadas para definir outras linguagens. Marcus Ramos (UNIVASF) LFA de junho de / 94
54 Gramáticas Definição Formalmente, uma gramática G pode ser definida como sendo uma quádrupla: G = (V,Σ,P,S) onde: V é o vocabulário da gramática; corresponde a um conjunto (finito e não-vazio) de símbolos; Σ é o conjunto (finito e não-vazio) dos símbolos terminais da gramática; também denominado alfabeto; P é o conjunto (finito e não-vazio) de produções ou regras de substituição da gramática; S é a raiz (ou símbolo inicial) da gramática, S V. Marcus Ramos (UNIVASF) LFA de junho de / 94
55 Definição Gramáticas Adicionalmente, define-se N = V Σ como sendo o conjunto dos símbolos não-terminais da gramática. Σ corresponde ao conjunto dos símbolos que podem ser justapostos para compor as sentenças da linguagem que se está definindo, e N corresponde ao conjunto dos símbolos intermediários (classes sintáticas) utilizados na estruturação e na geração de sentenças, sem no entanto fazer parte das mesmas. Σ,N e P são conjuntos finitos e não-vazios. P é o conjunto das produções gramaticais, que obedecem à forma geral: α β, com α V NV e β V Marcus Ramos (UNIVASF) LFA de junho de / 94
56 Definição Gramáticas De fato, é uma relação sobre os conjuntos V NV e V, uma vez que: P = {(α,β) (α,β) V NV V } ou seja, P é um subconjunto de V NV V. Marcus Ramos (UNIVASF) LFA de junho de / 94
57 Gramáticas Exemplo Exemplo 3.1 Seja G 1 = (V 1,Σ 1,P 1,S), com: V 1 = {0,1,2,3,S,A} Σ 1 = {0,1,2,3} N 1 = {S,A} P 1 = {S 0S33,S A,A 12,A ε} É fácil verificar que G 1 está formulada de acordo com as regras gerais acima enunciadas para a especificação de gramáticas. Marcus Ramos (UNIVASF) LFA de junho de / 94
58 Gramáticas Forma sentencial Denomina-se forma sentencial qualquer cadeia obtida pela aplicação recorrente das seguintes regras de substituição: 1 S (a raiz da gramática) é por definição uma forma sentencial; 2 Seja αρβ uma forma sentencial, com α e β cadeias quaisquer de terminais e/ou não-terminais da gramática, e seja ρ γ uma produção da gramática. Nessas condições, a aplicação dessa produção à forma sentencial, substituindo a ocorrência de ρ por γ, produz uma nova forma sentencial αγβ. Marcus Ramos (UNIVASF) LFA de junho de / 94
59 Derivação direta Gramáticas Denota-se a substituição acima definida, também conhecida como derivação direta, por: αρβ G αγβ O índice G designa o fato de que a produção aplicada, no caso ρ γ, pertence ao conjunto de produções que define a gramática G. Nos casos em que a gramática em questão puder ser facilmente identificada, admite-se a eliminação de referências explícitas a ela. Marcus Ramos (UNIVASF) LFA de junho de / 94
60 e Gramáticas Note-se a distinção gráfica e de significado que se faz entre o símbolo empregado na denotação das produções da gramática ( ) e o símbolo utilizado na denotação das derivações ( ). Marcus Ramos (UNIVASF) LFA de junho de / 94
61 Gramáticas Derivação e derivação não-trivial Uma seqüência de zero ou mais derivações diretas, como, por exemplo, α β... µ é chamada simplesmente derivação, e pode ser abreviada como α µ. Derivações em que ocorre a aplicação de pelo menos uma produção são denominadas derivações não-triviais, e são denotadas por α + µ. Marcus Ramos (UNIVASF) LFA de junho de / 94
62 Sentença Gramáticas Se, pela aplicação de uma derivação não-trivial à raiz S de uma gramática, for possível obter uma cadeia w formada exclusivamente de símbolos terminais, diz-se que w, além de ser uma forma sentencial, é também uma sentença, e denota-se a sua derivação por: S + w Marcus Ramos (UNIVASF) LFA de junho de / 94
63 Substituições Gramáticas Gramáticas são sistemas formais baseados na substituição, em uma forma sentencial, de uma cadeia, coincidente com o lado esquerdo de uma regra de produção, pela cadeia correspondente ao lado direito da mesma regra, visando com isso, ao final de uma seqüência de substituições, a obtenção de uma cadeia sobre Σ. O processo de substituição tem início sempre a partir da raiz S da gramática, e é finalizado assim que for obtida uma forma sentencial isenta de símbolos não-terminais, isto é, assim que se obtiver uma sentença. Marcus Ramos (UNIVASF) LFA de junho de / 94
64 Exemplo Gramáticas Exemplo 3.2 Considere-se a gramática G 1, definida no Exemplo 3.1. S é por definição uma forma sentencial; 0S33 é uma forma sentencial, pois S 0S33; S 0S33 é uma derivação direta; 00S3333 e 00A3333 são formas sentenciais, pois 0S33 00S A3333 através das produções S 0S33 e S A, aplicadas nesta ordem; S + 00A3333 e S + 0S33 são exemplos de derivações não-triviais; 00S S3333 e 0S33 00A3333 são exemplos de derivações; 12 e são exemplos de sentenças, pois ambas são formadas exclusivamente por símbolos terminais e S A 12, ou seja, S + 12, e S 0S33 00S A , ou seja, S Marcus Ramos (UNIVASF) LFA de junho de / 94
65 Gramáticas Linguagem definida por uma gramática Ao conjunto de todas as sentenças w geradas por uma gramática G dá-se o nome de linguagem definida pela gramática G, ou simplesmente L(G). Formalmente, L(G) = {w Σ S + w} Exemplo 3.3 Pela inspeção das produções da gramática G 1 do Exemplo 3.1, pode-se concluir que: L 1 (G 1 ) = {0 m 1 n 2 n 3 2m m 0 e (n = 0 ou n = 1)} São exemplos de sentenças pertencentes a L 1 : ε,12,033,01233,003333, etc. Marcus Ramos (UNIVASF) LFA de junho de / 94
66 Gramáticas Linguagem definida por uma gramática Como se pode perceber, diferentes seqüências de produções aplicadas à (única) raiz da gramática possibilitam a geração das diferentes (em geral, infinitas) sentenças da linguagem. Por outro lado, muitas vezes há mais de uma alternativa de substituição para um mesmo trecho de uma forma sentencial, ou, ainda, pode haver mais de um trecho em uma mesma forma sentencial que pode ser objeto de substituição pelo lado direito de alguma produção. Assim, a identificação correta das sentenças de uma dada linguagem deve ser feita levando-se em conta a possibilidade de ocorrência de todos esses fatores durante o processo de síntese de cadeias. Marcus Ramos (UNIVASF) LFA de junho de / 94
67 Gramáticas Linguagem definida por uma gramática A completa identificação da linguagem gerada por uma determinada gramática é uma tarefa que exige abstração e alguma prática na manipulação das produções. Algumas gramáticas, como é o caso de G 1, podem ser analisadas sem dificuldade. Contudo, na prática, podem ocorrer gramáticas consideravelmente mais complexas. Observe-se, a título de ilustração, o caso da gramática G 2 apresentada no Exemplo 3.4. Marcus Ramos (UNIVASF) LFA de junho de / 94
68 Exemplo Gramáticas Exemplo 3.4 Considere G 2 = (V 2,Σ 2,P 2,S), com: V 2 Σ 2 P 2 = {a,b,c,s,b,c} = {a,b,c} = {S asbc,s abc,cb BC,bB bb,bc bc,cc cc} A linguagem gerada por G 2 é {a n b n c n n 1}. De fato, a seqüência de derivações iniciada com a regra S abc conduz à geração da sentença abc (S abc abc). Por outro lado, seqüências iniciadas com a aplicação repetida i vezes da regra S asbc conduzem à geração da seguinte forma sentencial subseqüente: S i a i S(BC) i A posterior aplicação da regra S abc faz com que: a i S(BC) i a i abc(bc) i = a i+1 b(cb) i C Marcus Ramos (UNIVASF) LFA de junho de / 94
69 Exemplo Gramáticas Através da aplicação sucessiva da regra CB BC, obtém-se agora: a i+1 b(cb) i C a i+1 bb i C i C = a i+1 bb i C i+1 Finalmente, a aplicação i vezes da regra bb bb faz com que todos os símbolos B sejam substituídos por símbolos b: a i+1 bb i C i+1 i a i+1 bb i C i+1 = a i+1 b i+1 C i+1 A aplicação uma única vez da regra bc bc substitui o primeiro símbolo da cadeia de símbolos C pelo símbolo c: a i+1 b i+1 C i+1 a i+1 b i+1 cc i Para terminar, a aplicação i vezes da regra cc cc substitui todos os demais símbolos C por símbolos c: a i+1 b i+1 cc i i a i+1 b i+1 cc i = a i+1 b i+1 c i+1 Marcus Ramos (UNIVASF) LFA de junho de / 94
70 Exemplo Gramáticas A forma sentencial: a i+1 b i+1 c i+1 gera, portanto, as sentenças aabbcc, aaabbbccc etc. A sentença aabbcc, por exemplo, é derivada da seguinte forma nessa gramática: S asbc aabcbc aabbcc aabbcc aabbbcc aabbcc pela aplicação, respectivamente, das produções: S asbc,s abc,cb BC,bB bb,bc bc e cc cc Marcus Ramos (UNIVASF) LFA de junho de / 94
71 Gramáticas Exercício 1 Obter gramáticas que geram as linguagens cujas sentenças satisfazem às regras apresentadas a seguir. Considerar Σ = {a,b}; 2 Repetir, considerando Σ = {a, b, c}. Marcus Ramos (UNIVASF) LFA de junho de / 94
72 Exercício Gramáticas Começam com aa; Não começam com aa; Terminam com bbb; Não terminam com bbb; Contém a subcadeia aabbb; Não contém a subcadeia aaa; Possuem comprimento maior ou igual a 3; Possuem comprimento menor ou igual a 3; Possuem comprimento diferente de 3; Possuem comprimento par; Possuem comprimento ímpar; Possuem comprimento múltiplo de 4; Possuem quantidade par de símbolos a; Possuem quantidade ímpar de símbolos b. Marcus Ramos (UNIVASF) LFA de junho de / 94
73 Gramáticas Gramáticas equivalentes É possível definir uma mesma linguagem através de duas ou mais gramáticas distintas. Quando isso ocorre, diz-se que as gramáticas que definem a linguagem em questão são sintaticamente equivalentes ou, simplesmente, equivalentes uma à outra. Exemplo 3.5 As gramáticas G 3 e G 4 a seguir definidas são equivalentes: G 3 = ({a,b,s},{a,b},{s as,s a,s bs,s b,s asb},s) G 4 = ({a,b,s,x},{a,b},{s XS,S X,X a,x b},s) Uma rápida análise de G 3 e G 4 permite concluir que L 3 (G 3 ) = L 4 (G 4 ) = {a,b} +. Marcus Ramos (UNIVASF) LFA de junho de / 94
74 Notação algébrica Gramáticas São muitas as notações (metalinguagens) utilizadas na definição gramatical das linguagens formais e de programação. Nos exemplos acima, bem como na maior parte do presente texto, utiliza-se a notação algébrica. No entanto, diversas outras metalinguagens são largamente empregadas para representar dispositivos generativos. A escolha de uma ou outra metalinguagem varia de acordo com o tipo da linguagem que estiver sendo definida, com o uso que se pretenda fazer de tal representação formal e com as próprias preferências pessoais de quem a estiver elaborando. Marcus Ramos (UNIVASF) LFA de junho de / 94
75 Outras notações Gramáticas À exceção da notação algébrica, empregada para representar diversos tipos de linguagens e utilizada com especial ênfase no estudo teórico das propriedades das linguagens formais, outras notações, como, por exemplo, as Expressões Regulares, o BNF (Backus-Naur Form ou Notação de Backus-Naur), a Notação de Wirth (ou Expressões Regulares Estendidas) e os Diagramas de Sintaxe (também conhecidos como Diagramas Ferroviários), são bastante populares e amplamente utilizadas na definição de linguagens de programação de alto nível. Marcus Ramos (UNIVASF) LFA de junho de / 94
76 Linguagens, Gramáticas e Conjuntos Linguagens como conjuntos Linguagens são conjuntos. Conjuntos que formam linguagens são coleções de cadeias construídas sobre um alfabeto, por exemplo, através de gramáticas. A fim de explicitar e facilitar o entendimento de linguagens vistas como conjuntos, é conveniente considerar-se uma coleção finita de linguagens distintas, todas infinitas, definidas sobre um mesmo alfabeto qualquer. Analisando-se as respectivas gramáticas, sugere-se que o leitor procure compreender de que modo as linguagens foram definidas e, principalmente, verifique a relação que existe entre elas. Marcus Ramos (UNIVASF) LFA de junho de / 94
77 Linguagens, Gramáticas e Conjuntos Linguagens como conjuntos Linguagens são conjuntos. Conjuntos que formam linguagens são coleções de cadeias construídas sobre um É interessante verificar: estas linguagens possuem elementos (sentenças) em comum? Qual é a sua intersecção? Alguma dessas linguagens é subconjunto de outra? Superconjunto? Subconjunto próprio? São inúmeras as possibilidades. O importante é desenvolver a percepção de que linguagens são conjuntos. Isso facilitará o estudo de novas operações sobre linguagens, e também de suas propriedades. Marcus Ramos (UNIVASF) LFA de junho de / 94
78 Exemplo Linguagens, Gramáticas e Conjuntos Exemplo 4.1 A gramática G 0 = ({a,b,s},{a,b},{s as,s bs,s ε},s) é tal que L 0 (G 0 ) = Σ. Substituindo a regra S ε pelas regras S a e S b, em G, obtém-se uma nova gramática G 1 = ({a,b,s},{a,b},{s as,s bs,s a,s b},s), de tal forma que agora L 1 (G 1 ) = Σ +. A linguagem L 2, formada por cadeias sobre Σ = {a,b}, de tal modo que todas elas sejam iniciadas pelo símbolo a, é gerada pela gramática G 2 = ({a,b,s,x},{a,b},{s ax,x ax,x bx,x ε},s). São exemplos de cadeias pertencentes a L 2 : a, abb, abaaa, aabbbba, aaa etc. Marcus Ramos (UNIVASF) LFA de junho de / 94
79 Exemplo Linguagens, Gramáticas e Conjuntos Por outro lado, considere-se a linguagem L 3, composta por cadeias sobre Σ = {a,b}, de tal forma que todas elas sejam iniciadas com o símbolo a e terminadas com o símbolo b. Uma possível gramática que gera L 3 é G 3 = ({a,b,s,x},{a,b},{s ax,x ax,x bx,x b},s). Perceba a sutil diferença que existe entre G 2 e G 3. Em seguida, considere-se a linguagem L 4 que compreende todas as cadeias sobre Σ = {a, b} que possuam exatamente dois símbolos b (nem mais, nem menos). São exemplos: bb, bab, abb, aaaaabaab etc. L 4 é gerada pela gramática G 4 = ({a,b,s,x},{a,b},{s XbXbX,X ax,x ε},s). Finalmente, a linguagem L 5 é definida pelas cadeias sobre Σ = {a,b}, de tal forma que todas elas sejam iniciadas com o símbolo b e contenham um único símbolo b. São exemplos b,ba,baa,baaa etc. A linguagem L 5 é gerada por G 5 = ({a,b,s,x},{a,b},{s bx,x ax,x ε},s). Esquematicamente, a relação entre as linguagens L 0,L 1,L 2,L 3,L 4 e L 5 pode ser observada na Figura 5 (é bom ter em mente que linguagens são conjuntos). Marcus Ramos (UNIVASF) LFA de junho de / 94
80 Exemplo Linguagens, Gramáticas e Conjuntos Figura 5: As linguagens do Exemplo 4.1 como conjuntos Marcus Ramos (UNIVASF) LFA de junho de / 94
81 Exemplo Linguagens, Gramáticas e Conjuntos Observe-se a relação de inclusão própria entre as linguagens estudadas. A cadeia ε ilustra a inclusão própria de L 1 em L. A cadeia bbba, de L 2 em L 1. Através da cadeia abaa, exemplifica-se a inclusão própria de L 3 em L 2. Sobre L 4 pode-se apenas dizer que está incluída propriamente em L 1. A cadeia abb pertence simultaneamente às linguagens L 0,L 1,L 2,L 3 e L 4. A cadeia abaabab pertence a L 0,L 1,L 2 e L 3 apenas. A cadeia ababa, somente às linguagens L 0,L 1,L 2 e L 4, e assim por diante. Cumpre, novamente, notar que: A maior linguagem que pode ser definida sobre {a,b} é {a,b}, que, neste caso, corresponde a L 0 ; O conjunto de todas as linguagens que podem ser definidas sobre {a, b} é dado por 2 {a,b}. Assim, L 0,L 1,L 2,L 3,L 4 e L 5 pertencem, todas, a 2 {a,b}. Em outras palavras, cada uma dessas linguagens é um elemento de 2 {a,b}, que por sua vez é um conjunto infinito. Marcus Ramos (UNIVASF) LFA de junho de / 94
82 Conceito Reconhecedores Conhecidos também como dispositivos cognitivos, dispositivos de aceitação, aceitadores sintáticos ou simplesmente autômatos, os reconhecedores são sistemas formais capazes de aceitar todas as sentenças que pertençam a uma determinada linguagem, rejeitando todas as demais. Por esse motivo, constituem uma forma alternativa às gramáticas para a representação finita de linguagens. Marcus Ramos (UNIVASF) LFA de junho de / 94
83 Organização geral Reconhecedores Os reconhecedores esboçados em sua forma geral na Figura 6 apresentam quatro componentes fundamentais: uma memória (fita) contendo o texto de entrada do reconhecedor, um cursor, que indica o próximo elemento da fita a ser processado, uma máquina de estados finitos, sem memória, e uma memória auxiliar opcional. Figura 6: Organização de um reconhecedor genérico Marcus Ramos (UNIVASF) LFA de junho de / 94
84 Fita de entrada Reconhecedores A fita de entrada contém a cadeia a ser analisada pelo reconhecedor. Ela é dividida em células, e cada célula pode conter um único símbolo da cadeia de entrada, pertencente ao alfabeto de entrada escolhido para o reconhecedor. A cadeia de entrada é disposta da esquerda para a direita, sendo o seu primeiro símbolo colocado na posição mais à esquerda da fita. Dependendo do tipo de reconhecedor considerado, a fita (ou o conjunto de fitas) de entrada pode apresentar comprimento finito ou infinito. Neste último caso, a fita pode ter ou não limitação à esquerda e/ou à direita. A cadeia de entrada registrada na fita de entrada pode estar delimitada por símbolos especiais, não pertencentes ao alfabeto de entrada, à sua esquerda e/ou à sua direita, porém isso não é obrigatório. Marcus Ramos (UNIVASF) LFA de junho de / 94
85 Cursor Reconhecedores A leitura dos símbolos gravados na fita de entrada é feita através de um cabeçote de acesso, normalmente denominado cursor, o qual sempre aponta o próximo símbolo da cadeia a ser processado. Os movimentos do cursor são controlados pela máquina de estados, e podem, dependendo do tipo de reconhecedor, ser unidirecionais (podendo deslocar-se para um lado apenas, tipicamente para a direita) ou bidirecionais (podendo deslocar-se para a esquerda e para a direita). Determinados tipos de reconhecedores utilizam o cursor não apenas para lerem os símbolos da fita de entrada, mas também para escreverem sobre a fita, substituindo símbolos nela presentes por outros, de acordo com comandos determinados pela máquina de estados. Marcus Ramos (UNIVASF) LFA de junho de / 94
86 Máquina de estados Reconhecedores A máquina de estados funciona como um controlador central do reconhecedor, e contém uma coleção finita de estados, responsáveis pelo registro de informações colhidas no passado, mas consideradas relevantes para decisões futuras, e transições, que promovem as mudanças de estado da máquina em sincronismo com as operações efetuadas através do cursor sobre a fita de entrada. Além disso, a máquina de estados finitos pode utilizar uma memória auxiliar para armazenar e consultar outras informações, também coletadas ao longo do processamento, que sejam eventualmente necessárias ao completo reconhecimento da cadeia de entrada. Marcus Ramos (UNIVASF) LFA de junho de / 94
87 Memória auxiliar Reconhecedores A memória auxiliar é opcional, e torna-se necessária apenas em reconhecedores de linguagens que apresentam uma certa complexidade. Normalmente, ela assume a forma de uma estrutura de dados de baixa complexidade, como, por exemplo, uma pilha (no caso do reconhecimento de linguagens livres de contexto). As informações registradas na memória auxiliar são codificadas com base em um alfabeto de memória, e todas as operações de manipulação da memória auxiliar (leitura e escrita) fazem referência apenas aos símbolos que compõem esse alfabeto. Os elementos dessa memória são referenciados através de um cursor auxiliar que, eventualmente, poderá coincidir com o próprio cursor da fita de entrada. Seu tamanho não é obrigatoriamente limitado e, por definição, seu conteúdo pode ser consultado e modificado. Marcus Ramos (UNIVASF) LFA de junho de / 94
88 Reconhecedores Características dos componentes O diagrama abaixo resume os componentes de um reconhecedor genérico e as diversas formas como cada um deles pode se apresentar: Máquina de Estados { Finita Fita de entrada + Cursor Reconhecedor Limitada / Não limitada Leitura apenas / Leitura e escrita Direita apenas / Direita e esquerda { Não limitada Memória auxiliar + Cursor Leitura e escrita Marcus Ramos (UNIVASF) LFA de junho de / 94
89 Reconhecedores Configuração A operação de um reconhecedor baseia-se em uma seqüência de movimentos que o conduzem, de uma configuração inicial única, para alguma configuração de parada, indicativa do sucesso ou do fracasso da tentativa de reconhecimento da cadeia de entrada. Cada configuração de um autômato é caracterizada pela quádrupla: 1 Estado; 2 Conteúdo da fita de entrada; 3 Posição do cursor; 4 Conteúdo da memória auxiliar. Marcus Ramos (UNIVASF) LFA de junho de / 94
90 Configuração inicial Reconhecedores A configuração inicial de um autômato é definida como sendo aquela em que as seguintes condições são verificadas: 1 Estado: inicial, único para cada reconhecedor; 2 Conteúdo da fita de entrada: com a cadeia completa a ser analisada; 3 Posição do cursor: apontando para o símbolo mais à esquerda da cadeia; 4 Conteúdo da memória auxiliar: inicial, predefinido e único. Marcus Ramos (UNIVASF) LFA de junho de / 94
91 Reconhecedores Configuração final A configuração final de um autômato é aquela na qual as seguintes condições são obedecidas: 1 Estado: algum dos estados finais, que não são necessariamente únicos no reconhecedor; 2 Conteúdo da fita de entrada: inalterado ou alterado, em relação à configuração inicial, conforme o tipo de reconhecedor; 3 Posição do cursor: apontando para a direita do último símbolo da cadeia de entrada ou apontando para qualquer posição da fita, conforme o tipo de reconhecedor; 4 Conteúdo da memória auxiliar: final e predefinido, não necessariamente único ou idêntico ao da configuração inicial, ou apenas indefinido. Marcus Ramos (UNIVASF) LFA de junho de / 94
92 Movimentação Reconhecedores A especificação de uma possibilidade de movimentação entre uma configuração e outra é denominada transição. A movimentação do autômato da configuração corrente para uma configuração seguinte é feita, portanto, levando-se em conta todas as transições passíveis de serem aplicadas pelo reconhecedor à configuração corrente. Marcus Ramos (UNIVASF) LFA de junho de / 94
93 Reconhecedores Movimentação Uma transição mapeia triplas formadas por: Estado corrente; Símbolo correntemente apontado pelo cursor da fita de entrada; Símbolo correntemente apontado pelo cursor da memória auxiliar; em triplas formadas por: Próximo estado; Símbolo que substituirá o símbolo correntemente apontado pelo cursor da fita de entrada e o sentido do deslocamento do cursor; Símbolo que substituirá o símbolo correntemente apontado pelo cursor da memória auxiliar. Marcus Ramos (UNIVASF) LFA de junho de / 94
94 Linguagem Reconhecedores Diz-se que um autômato aceita (ou reconhece) uma cadeia se lhe for possível atingir alguma configuração final a partir de sua configuração inicial única, através de movimentos executados sobre tal cadeia. Caso contrário, diz-se que o autômato rejeita a cadeia. A maneira como tais configurações sucedem umas às outras durante o reconhecimento (ou aceitação) da cadeia de entrada define uma característica fundamental dos autômatos, conforme explicado a seguir. Seja o autômato determinístico ou não-determinístico, a linguagem por ele aceita (ou definida) corresponde ao conjunto de todas as cadeias que ele aceita. Marcus Ramos (UNIVASF) LFA de junho de / 94
p. 2 Trechos de Material Didático (Apostila) e Conteúdo do Livro Texto, de autoria de Marcus Ramos, João José Neto e Ítalo Vega i <= 1
Observação: os trechos extraídos do livro apresentados a seguir já incluem as correções da errata (http://www.univasf.edu.br/~marcus.ramos/livro-lfa/errata.pdf). Para outras passagens não incluídas nesse
Gramáticas Livres de Contexto
Conteúdo da aula Gramáticas Livres de Contexto Marcelo Johann Trabalho - primeira etapa Definição, código e estrutura Mais elementos e detalhes de lex GLCs Gramática, produção, derivações, árvores Ambíguas,
Árvores de Derivação para GLC Ambigüidade nas GLC Precedência, Prioridade e Associatividade de operadores
Árvores de Derivação para GLC Ambigüidade nas GLC Precedência, Prioridade e Associatividade de operadores 1 Árvores de Derivação para GLC GLC são as mais importantes para a definição de linguagens de programação
Matemática - Módulo 1
1. Considerações iniciais Matemática - Módulo 1 TEORIA DOS CONJUNTOS O capítulo que se inicia trata de um assunto que, via-de-regra, é abordado em um plano secundário dentro dos temas que norteiam o ensino
Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.
LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior [email protected] 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato
Bases Matemáticas. Daniel Miranda 1. 23 de maio de 2011. sala 819 - Bloco B página: daniel.miranda
Daniel 1 1 email: [email protected] sala 819 - Bloco B página: http://hostel.ufabc.edu.br/ daniel.miranda 23 de maio de 2011 Elementos de Lógica e Linguagem Matemática Definição Uma proposição
Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções
Métodos Formais Relações e Funções por Mauro Silva Agenda Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções MF - Relações e Funções 2 1 Relações Binárias Definição
AF Não-determinísticos Equivalência entre AFND e AFD
AF Não-determinísticos Equivalência entre AFND e AFD 1 AF NÃO-Determinístico (AFND) Consideremos uma modificação no modelo do AFD para permitir zero, uma ou mais transições de um estado sobre o MESMO símbolo
www.souvestibulando.com.br CURSO PRÉ-VESTIBULAR MATEMÁTICA AULA 2 TEORIA DOS CONJUNTOS
1 CURSO PRÉ-VESTIULR MTEMÁTIC UL 02 SSUNTO: TEORI DOS CONJUNTOS Esta aula é composta pelo texto da apostila abaixo e por um link de acesso à UL VIRTUL gravada. Estude com atenção o texto antes de acessar
Eletricidade Aplicada
Eletricidade Aplicada Profa. Grace S. Deaecto Instituto de Ciência e Tecnologia / UNIFESP 12231-280, São J. dos Campos, SP, Brasil. [email protected] Novembro, 2012 Profa. Grace S. Deaecto Eletricidade
Exercícios de Teoria da Computação Autómatos, gramáticas e expressões regulares
Licenciatura em Engenharia Informática e de Computadores - LEIC Licenciatura em Engenharia de Redes de Comunicação e Informação - LERCI Exercícios de Teoria da Computação Autómatos, gramáticas e expressões
Relações. Antonio Alfredo Ferreira Loureiro. [email protected] http://www.dcc.ufmg.br/~loureiro. UFMG/ICEx/DCC MD Relações 1
Relações Antonio Alfredo Ferreira Loureiro [email protected] http://www.dcc.ufmg.br/~loureiro MD Relações 1 Introdução O mundo está povoado por relações: família, emprego, governo, negócios, etc. Entidades
Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;
Módulo 7 UML Na disciplina de Estrutura de Sistemas de Informação, fizemos uma rápida passagem sobre a UML onde falamos da sua importância na modelagem dos sistemas de informação. Neste capítulo, nos aprofundaremos
Definições Exemplos de gramáticas
Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos
Matrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.
e Aula Zero - Álgebra Linear Professor: Juliano de Bem Francisco Departamento de Matemática Universidade Federal de Santa Catarina agosto de 2011 Outline e e Part I - Definição: e Consideremos o conjunto
1. À primeira coluna (P), atribui-se uma quantidade de valores V igual à metade do total de linhas
LÓGICA MATEMÁTICA Walter Sousa Resumo teórico 1) PROPOSIÇÕES LÓGICAS SIMPLES Uma proposição é uma sentença declarativa que pode ser classificada em verdadeira (V) ou falsa (F), mas não ambas as interpretações.
(1, 6) é também uma solução da equação, pois 3 1 + 2 6 = 15, isto é, 15 = 15. ( 23,
Sistemas de equações lineares generalidades e notação matricial Definição Designa-se por equação linear sobre R a uma expressão do tipo com a 1, a 2,... a n, b R. a 1 x 1 + a 2 x 2 +... + a n x n = b (1)
1 Teoria de conjuntos e lógica
1 Teoria de conjuntos e lógica Estes breves apontamentos dizem respeito à parte do programa dedicada à teoria de conjuntos e à lógica matemática. Embora concebidos sem grandes formalismos e com poucas
Teoria da Computação Aula 02 Introdução
Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:
TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA
TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA Nome: Turma: Data / / Prof: Walnice Brandão Machado Equações de primeiro grau Introdução Equação é toda sentença matemática aberta que exprime
Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz
Algoritmos e Programação : Conceitos e estruturas básicas Hudson Victoria Diniz Relembrando... Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Podemos pensar
Polos Olímpicos de Treinamento. Aula 1. Curso de Teoria dos Números - Nível 3. Divisibilidade 1. Carlos Gustavo Moreira e Samuel Barbosa Feitosa
Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível 3 Carlos Gustavo Moreira e Samuel Barbosa Aula 1 Divisibilidade 1 Teorema 1. (Algoritmo da Divisão) Para quaisquer inteiros positivos
Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos
Árvores Parte 1 Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos Árvores uma introdução As listas apresentadas na aula anterior formam um conjunto de TADs extremamente importante
Linguagens Formais e Autômatos
Linguagens Formais e Autômatos Marcus Vinícius Midena Ramos Curso de Engenharia de Computação Universidade Federal do Vale do São Francisco 22 de abril de 2008 Sumário 1 Elementos de Matemática Discreta
Estruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
ALGA - Eng.Civil - ISE - 2009/2010 - Matrizes 1. Matrizes
ALGA - Eng.Civil - ISE - 00/010 - Matrizes 1 Matrizes Introdução Se m e n são números naturais, chama-se matriz real de tipo m n (m vezes n ou m por n) a uma aplicação A : f1; ; :::; mg f1; ; :::; ng R:
Lista de Exercícios Critérios de Divisibilidade
Nota: Os exercícios desta aula são referentes ao seguinte vídeo Matemática Zero 2.0 - Aula 10 - Critérios de - (parte 1 de 2) Endereço: https://www.youtube.com/watch?v=1f1qlke27me Gabaritos nas últimas
OBSERVAÇÕES: EXERCÍCIOS
OBSERVAÇÕES: 1. Esta lista de exercícios poderá ser resolvida individualmente ou em grupos de 2 pessoas. 2. A lista possui 25 exercícios, destes você deve responder os 5 primeiros exercícios e os outros
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar
Definição de determinantes de primeira e segunda ordens. Seja A uma matriz quadrada. Representa-se o determinante de A por det(a) ou A.
Determinantes A cada matriz quadrada de números reais, pode associar-se um número real, que se designa por determinante da matriz Definição de determinantes de primeira e segunda ordens Seja A uma matriz
Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Um Tradutor Dirigido por Sintaxe
Um tradutor dirigido por sintaxe 1 Um Tradutor Dirigido por Sintaxe Aula introdutória às técnicas de compilação. Ilustra técnicas desenvolvendo um programa Java que traduz instruções de uma linguagem de
Lista de Exercícios 5: Soluções Teoria dos Conjuntos
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 5: Soluções Teoria dos Conjuntos Ciências Exatas & Engenharias 2 o Semestre de 206. Escreva uma negação para a seguinte afirmação: conjuntos A,
LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação. Material adicional, versão do dia 22 de novembro de 2017 às 17:24
LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação Material adicional, versão do dia 22 de novembro de 2017 às 17:24 1. Página 32, imediatamente depois do Exemplo 1.8: A teoria de conjuntos apresentada
Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial
Unidade 10 Análise combinatória Introdução Princípio Fundamental da contagem Fatorial Introdução A escolha do presente que você deseja ganhar em seu aniversário, a decisão de uma grande empresa quando
Simplificação de Expressões Booleanas e Circuitos Lógicos
Simplificação de Expressões Booleanas e Circuitos Lógicos Margrit Reni Krug Julho/22 Tópicos Revisão Álgebra Booleana Revisão portas lógicas Circuitos lógicos soma de produtos produto de somas Simplificação
INDUÇÃO MATEMÁTICA. Primeiro Princípio de Indução Matemática
INDUÇÃO MATEMÁTICA Indução Matemática é um método de prova matemática tipicamente usado para estabelecer que um dado enunciado é verdadeiro para todos os números naturais, ou então que é verdadeiro para
COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 [email protected] Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
Compiladores. Prof. Bruno Moreno Aula 11 20/05/2011
Compiladores Prof. Bruno Moreno Aula 11 20/05/2011 2- Recursivo preditivo Análise Recursiva Preditiva O símbolo sobre o cabeçote de leitura determina exatamente qual produção deve ser aplicada na expansão
é um grupo abeliano.
Notas de aulas de Álgebra Moderna Prof a Ana Paula GRUPO Definição 1: Seja G munido de uma operação: x, y x y sobre G A operação sobre G é chamada de grupo se essa operação se sujeita aos seguintes axiomas:
Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas
Definições Hierarquia de Chomsky Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes
TEORIA DOS CONJUNTOS
Matemática Prof.: Joaquim Rodrigues 1 TEORI DOS CONJUNTOS INTRODUÇÃO O conceito de classe ou conjunto de objetos é um dos mais fundamentais em toda a matemática. Podemos pensar num conjunto como sendo
FABIANO KLEIN CRITÉRIOS NÃO CLÁSSICOS DE DIVISIBILIDADE
FABIANO KLEIN CRITÉRIOS NÃO CLÁSSICOS DE DIVISIBILIDADE FLORIANÓPOLIS 2007 FABIANO KLEIN CRITÉRIOS NÃO CLÁSSICOS DE DIVISIBILIDADE Trabalho de conclusão de Curso apresentado ao curso de Matemática Habilitação
Orientação a Objetos
Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No
Erros e Incertezas. Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.
Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.) I. INTRODUÇÃO Quando se faz um experimento, deseja-se comparar o resultado obtido
LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem
LFA Aula 04 Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem Linguagens Formais Linguagens formais se preocupam com os problemas sintáticos das linguagens. Sintaxe e Semântica Sintaxe
RACIOCÍNIO LÓGICO Simplificado
Sérgio Carvalho Weber Campos RCIOCÍNIO LÓGICO Simplificado Volume 1 2ª edição Revista, atualizada e ampliada Material Complementar PRINCIPIS CONCEITOS, REGRS E FÓRMULS DO LIVRO RCIOCÍNIO LÓGICO SIMPLIFICDO
Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Exercícios de Aprofundamento Mat Polinômios e Matrizes
. (Unicamp 05) Considere a matriz A A e A é invertível, então a) a e b. b) a e b 0. c) a 0 e b 0. d) a 0 e b. a 0 A, b onde a e b são números reais. Se. (Espcex (Aman) 05) O polinômio q(x) x x deixa resto
Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.
Projecto Delfos: Escola de Matemática Para Jovens 1 TEORIA DOS NÚMEROS
Projecto Delfos: Escola de Matemática Para Jovens 1 A Teoria dos Números tem como objecto de estudo o conjunto Z dos números inteiros (a letra Z vem da palavra alemã Zahl que significa número). 1. DIVISIBILIDADE
Circuitos Aritméticos
Circuitos Aritméticos Semi-Somador Quando queremos proceder à realização de uma soma em binário, utilizamos várias somas de dois bits para poderemos chegar ao resultado final da operação. Podemos, então,
CONCURSO DE ADMISSÃO AO COLÉGIO MILITAR DO RECIFE - 95 / 96 QUESTÃO ÚNICA. ESCORES OBTIDOS MÚLTIPLA ESCOLHA
QUESTÃO ÚNICA. ESCORES OBTIDOS MÚLTIPLA ESCOLHA ESCOLHA A ÚNICA RESPOSTA CERTA, ASSINALANDO-A COM X NOS PARÊNTESES À ESQUERDA OS ITENS DE 01 A 06 DEVERÃO SER RESPONDIDOS COM BASE NA TEORIA DOS CONJUNTOS.
Determinantes. Matemática Prof. Mauricio José
Determinantes Matemática Prof. Mauricio José Determinantes Definição e Conceito Matriz de ordem 1 Dizemos que um determinante é um resultado (numérico) de operações que são realizadas em uma matriz quadrada.
Sistemas de Vírgula Flutuante
Luiz C. G. Lopes Departamento de Matemática e Engenharias Universidade da Madeira MAT 2 05 2007/08 Definição. Diz-se que um número real x R\{0} é um número de vírgula flutuante normalizado se forem verificadas
Lógica para computação Professor Marlon Marcon
Lógica para computação Professor Marlon Marcon INTRODUÇÃO O objetivo geral da logica formal é a mecanização do raciocnio, ou seja, A obtenção de informação a partir de informações prévias por meio de recursos
=...= 1,0 = 1,00 = 1,000...
OPERAÇÕES COM NÚMEROS DECIMAIS EXATOS Os números decimais exatos correspondem a frações decimais. Por exemplo, o número 1,27 corresponde à fração127/100. 127 = 1,27 100 onde 1 representa a parte inteira
Sistemas Numéricos. Tiago Alves de Oliveira
Sistemas Numéricos Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Operações aritméticas binária e hexadecimal Operações lógicas binárias e decimais Representação Interna de
Operações relacionais e Álgebra relacional
Introdução A discussão sobre algumas operações básicas de álgebra relacional realizada a seguir considera um banco de dados composto pelas seguintes relações: funcionário (NrMatric, NmFunc, DtAdm, Sexo,
Conjuntos mecânicos II
A UU L AL A Conjuntos mecânicos II Nesta aula trataremos de outro assunto também relacionado a conjuntos mecânicos: o desenho de conjunto. Introdução Desenho de conjunto Desenho de conjunto é o desenho
Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.
Definição Uma matriz do tipo m n (lê-se m por n), com m e n, sendo m e n números inteiros, é uma tabela formada por m n elementos dispostos em m linhas e n colunas. Estes elementos podem estar entre parênteses
IBM1088 Linguagens Formais e Teoria da
IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com
Álge g bra b B ooleana n Bernardo Gonçalves
Álgebra Booleana Bernardo Gonçalves Sumário Histórico Álgebra de Boole Axiomas da Álgebra de Boole Álgebra de Boole de dois valores literais Teoremas da Álgebra de Boole Simplificação de expressões booleanas
Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)
Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh) Mapas de Veitch-Karnaugh Montar circuitos lógicos a partir de tabela verdade, embora seja tarefa fácil, geral um circuito extremamente grande.
Linguagens Formais e Autômatos (LFA)
Linguagens Formais e Autômatos (LFA) Aula de 19/08/2013 Símbolos, Cadeias, Linguagens Propriedades e Representações Formais de Interesse 1 Nota preliminar ( O conceito de decomposição e suas representações
Matemática Básica Intervalos
Matemática Básica Intervalos 03 1. Intervalos Intervalos são conjuntos infinitos de números reais. Geometricamente correspondem a segmentos de reta sobre um eixo coordenado. Por exemplo, dados dois números
UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO
UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO SAD Sistemas de Apoio à Decisão 2011/02 Aula Cinco [email protected] Modelos de decisão Sistemas de
Metodologias de Programação
Metodologias de Programação Bloco 1 José Paulo 1 Formador José António Paulo E-mail: [email protected] Telemóvel: 96 347 80 25 Objectivos Iniciar o desenvolvimento de raciocínios algorítmicos Linguagem
Engenharia Econômica
UNIVERSIDADE FEDERAL DE PERNAMBUCO UFPE CENTRO ACADÊMICO DO AGRESTE NÚCLEO DE TECNOLOGIA ENGENHARIA CIVIL Engenharia Econômica Aula I Professora Jocilene Otilia da Costa, Dra Conteúdo Juros Simples Juros
Linguagens Regulares. Prof. Daniel Oliveira
Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões
CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE
CURSO DE MATEMÁTICA BÁSICA Fatoração Equação do 1º Grau Equação do 2º Grau Aula 02: Fatoração Fatorar é transformar uma soma em um produto. Fator comum: Agrupamentos: Fatoração Quadrado Perfeito Fatoração
Menino ou menina? Exercício 1 Vamos lembrar então o que são genes e cromossomos. Volte à Aula 20 e dê as definições: a) Gene... b) Cromossomo...
A UU L AL A Menino ou menina? Quando um casal descobre que vai ter um filho, a primeira curiosidade é saber se nascerá um menino ou uma menina. Mas será que os futuros pais, ou mesmo as pessoas que não
III. Representações das portas lógicas (recordação): Figura 1: Símbolos padronizados e alternativos para várias portas lógicas e para o inversor 2
CIRCUITOS LÓGICOS COMBINACIONAIS I. Objetivos: Realizar os passos necessários para obter uma expressão do tipo soma-de-produtos com o objetivo de projetar um circuito lógico na sua forma mais simples.
Aula 01 TEOREMAS DA ANÁLISE DE CIRCUITOS. Aula 1_Teoremas da Análise de Circuitos.doc. Página 1 de 8
ESCOLA TÉCNICA ESTADUAL ZONA SUL CURSO TÉCNICO EM ELETRÔNICA II. CIRCUITOS ELÉTRICOS Aula 0 TEOREMAS DA ANÁLISE DE CIRCUITOS Prof. Marcio Leite Página de 8 0 TEOREMA DA ANÁLISE DE CIRCUITOS.0 Introdução
1 Noções Primitivas MAT175 - GEOMETRIA ESPACIAL MAT175 - GEOMETRIA ESPACIAL
MAT175 - GEOMETRIA ESPACIAL Bibliografia: [1] Fundamentos de Matemática Elementar, 10: Geometria Espacial, posição e métrica. Osvaldo Dolce e José Nicolau Pompeo. 6. ed., São Paulo, Atual, 2005. [2] A
alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.
Professor José Alves Aula pocii Aula 3,4 Custeio por Absorção Custeio significa apropriação de custos. Métodos de Custeio é a forma como são apropriados os custos aos produtos. Assim, existe Custeio por
Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática
Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra
Ficha de Exercícios nº 2
Nova School of Business and Economics Álgebra Linear Ficha de Exercícios nº 2 Matrizes, Determinantes e Sistemas de Equações Lineares 1 O produto de duas matrizes, A e B, é a matriz nula (mxn). O que pode
BANCO DE DADOS I AULA 2. Willamys Araújo [email protected]
BANCO DE DADOS I AULA 2 Willamys Araújo [email protected] Modelagem de Dados Modelagem de dados é o estudo das informações existentes em um contexto sob observação para a construção de um modelo
Grupo de Classes de Ideais em Reticulados Quadráticos
Grupo de Classes de Ideais em Reticulados Quadráticos J. C. Silva, F. S. Costa Depto de Matemática e Informática, DEMATI, UEMA, 65055-970, São Luís, MA E-mail: [email protected], [email protected]
Qualidade de Produto. Maria Cláudia F. P. Emer
Qualidade de Produto Maria Cláudia F. P. Emer Introdução Qualidade diretamente ligada ao produto final Controle de qualidade Adequação do produto nas fases finais no processo de produção Software Atividades
Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2
Notas de aula de Lógica para Ciência da Computação Aula 11, 2012/2 Renata de Freitas e Petrucio Viana Departamento de Análise, IME UFF 21 de fevereiro de 2013 Sumário 1 Ineficiência das tabelas de verdade
- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: [email protected]
Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: [email protected] Sistemas de Arquivos- Parte 2 Pontos importantes de um sistema de arquivos Vários problemas importantes devem
a) 2 b) 3 c) 4 d) 5 e) 6
Recordando operações básicas 01. Calcule as expressões abaixo: a) 2254 + 1258 = b) 300+590 = c) 210+460= d) 104+23 = e) 239 54 = f) 655-340 = g) 216-56= h) 35 x 15 = i) 50 x 210 = j) 366 x 23 = k) 355
Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V. 2009-1
Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V. 2009-1 Aula 5 Sistemas Biométricos 1. Sistema Biométrico Típico Qualquer que seja a característica
Programação de Computadores I. Linguagem C Função
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?
UNESP DESENHO TÉCNICO: Fundamentos Teóricos e Introdução ao CAD. Parte 6/5: Prof. Víctor O. Gamarra Rosado
UNESP UNIVERSIDADE ESTADUAL PAULISTA FACULDADE DE ENGENHARIA CAMPUS DE GUARATINGUETÁ DESENHO TÉCNICO: Fundamentos Teóricos e Introdução ao CAD Parte 6/5: 14. Perspectivas Prof. Víctor O. Gamarra Rosado
Compiladores. Transformações de GLCs. Plano da aula. Análise Top-Down. Análise Top-Down Exemplo. Gramáticas Livres de Contexto.
Gramáticas Livres de Contexto Análise Top-Down Compiladores ε Análise sintática (2) Análise Top-Down Top-Down AB AB cb A c ccbb B cbb ccbca B ca 2 Transformações de GLCs Eliminação de produções vazias
Álgebra Relacional. Linguagens de consultas relacionais
Álgebra Relacional 1 Linguagens de consultas relacionais Linguagens de consultas: Permitem manipulação e recuperação de dados de um BD. O modelo relacional suporta LCs simples e poderosas: Forte fundamentação
Elementos de Matemática Discreta
Elementos de Matemática Discreta Prof. Marcus Vinícius Midena Ramos Universidade Federal do Vale do São Francisco 9 de junho de 2013 [email protected] www.univasf.edu.br/~marcus.ramos Marcus
Congruências Lineares
Filipe Rodrigues de S Moreira Graduando em Engenharia Mecânica Instituto Tecnológico de Aeronáutica (ITA) Agosto 006 Congruências Lineares Introdução A idéia de se estudar congruências lineares pode vir
Conjuntos mecânicos I
A UU L AL A Conjuntos mecânicos I O pessoal de uma pequena empresa tem todo o conhecimento necessário sobre elementos de máquinas no que se refere à transmissão, apoio e elementos elásticos. Entretanto,
Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.
Agenda O que é Testar? Conceitos Por que testar? Quando testar? Custo do defeito Processo de teste Níveis de teste Tipos de teste Classificação dos testes Entendendo o que é TESTAR Testar é analisar um
Alfabeto, Cadeias, Operações e Linguagens
Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter
ESCOLA SUPERIOR DE TECNOLOGIA DE VISEU
INSTITUTO POLITÉCNICO DE VISEU ESCOLA SUPERIOR DE TECNOLOGIA DE VISEU Departamento Matemática Disciplina Matemática I Curso Gestão de Empresas Ano 1 o Ano Lectivo 2007/2008 Semestre 1 o Apontamentos Teóricos:
