• Nenhum resultado encontrado

Universidade Norte do Paraná

N/A
N/A
Protected

Academic year: 2021

Share "Universidade Norte do Paraná"

Copied!
36
0
0

Texto

(1)

Universidade Norte do Paraná

Cidade An

Londrina 2018

Londrina 2018

CINTIA APARECIDA ZEINADE

SISTEMAS GERADORES E RECONHECEDORES NA ESPECIFICAÇÃO E REPRESENTAÇÃO DE LINGUAGENS

NA TEORIA DA COMPUTAÇÃO

GRAMÁTICA DE CHOMSKY E AUTÔMATOS

(2)

Londrina 2018

SISTEMAS GERADORES E RECONHECEDORES NA ESPECIFICAÇÃO E REPRESENTAÇÃO DE LINGUAGENS

NA TEORIA DA COMPUTAÇÃO

GRAMÁTICA DE CHOMSKY E AUTÔMATO

Trabalho de Conclusão de Curso apresentado à Universidade Norte do Paraná, como requisito parcial para a obtenção do título de graduada em Engenharia da Computação.

Orientador: Luiz Gabriel S. Viani

CINTIA APARECIDA ZEINADE

(3)

CINTIA APARECIDA ZEINADE

SISTEMAS GERADORES E RECONHECEDORES NA ESPECIFICAÇÃO E REPRESENTAÇÃO DE LINGUAGENS

NA TEORIA DA COMPUTAÇÃO

GRAMÁTICA DE CHOMSKY E AUTÔMATO

Trabalho de Conclusão de Curso apresentado à Universidade Norte do Paraná como requisito parcial para a obtenção do título de graduada em Engenharia da Computação

BANCA EXAMINADORA

Prof. Marcelo Sidney Rodrigues Bicalho

Prof. Sandro Teixeira Pinto

Londrina, 12 de Dezembro de 2018

(4)

Dedico este trabalho a minha família e aos meus companheiros de curso

(5)

AGRADECIMENTOS

Agradeço primeiramente a Deus, por ter me dado saúde е força para superar as dificuldades, aos meus pais e avós, pelo amor, incentivo е apoio incondicional, obrigada minhas irmãs que nos momentos de minha ausência dedicados ао estudo, sempre fizeram entender qυе о futuro é feito а partir da constante dedicação no presente, agradeço ao meu namorado Renan pelo apoio e compreensão, agradeço aos meus amigos e companheiros da faculdade qυе fizeram parte da minha formação, pela imensa paciência em me ajudar e explicar o que eu tinha mais dificuldade е qυе vão continuar presentes em minha vida, em especial ao meu grande amigo que Joao Paulo de Melo que tanto se dedicou em me ajudar, agradeço também а todos os professores por me proporcionar о conhecimento não apenas racional, por tanto qυе se dedicaram, não somente por terem me ensinado mas por terem me feito aprender.

(6)

ZEINADE, Cintia Aparecida. Sistemas Geradores e Reconhecedores na Especificação e Representação de Linguagens na Teoria da Computação:

Gramática de Chomsky e Autômato. 2018. 36. Trabalho de Conclusão de Curso (Engenharia da Computação) – Universidade Norte do Paraná, Londrina,2018.

RESUMO

Teoria da Computação engloba o ensinamento de modelos de computadores ou máquinas e o seu poder computacional. Os recentes modelos de computação são ineptos a entender a linguagem humana direta, seja ela falada ou escrita, em razão das enormes possibilidades de significados de uma mesma palavra. As Linguagens de programação foram criadas para reduzir o distanciamento entre a linguagem humana e a programação de computadores, estas são linguagens formais, onde procuram acabar com tudo aquilo que pode conter mais de um sentido ou significado garantindo que um comando e palavra reservada tenham sempre o mesmo significado independentemente de onde apareçam no programa. Entende-se por Teoria das Linguagens Formais e dos Autômatos o estudo de modelos matemáticos que viabilizam a caracterização e o reconhecimento de linguagens, suas classificações, estruturas, características e inter-relacionamentos. Pode-se dizer que a Teoria das Linguagens Formais tem por objetivo desenvolver teorias associadas com as linguagens naturais no qual engloba basicamente o estudo das características, propriedades e aplicações das Linguagens Formais, com destaque nas aplicações em Análise Léxica e Sintática de linguagens de programação, modelos de circuitos lógicos, no qual preocupa-se com os problemas sintáticos das linguagens. No momento a teoria de sintaxe possui construções matemáticas bem definidas e globalmente reconhecida como por exemplo as Gramáticas de Chomsky. A teoria de autômatos é o estudo de computadores abstratos, também chamados de “máquinas”.

Em 1930, antes de existirem computadores, Alan Turing desenvolveu uma máquina abstrata que tinha todas as características dos computadores atuais, ao menos no que se refere ao quanto eles poderiam calcular. O objetivo de Turing era descrever com exatidão o que uma máquina de computação seria e o que ela não seria capaz de fazer.

Palavras-chave: Autômatos; Linguagens Formais; Noam Chomsky; Alan Turing; Teoria da Computação.

(7)

ZEINADE, Cintia Aparecida. Sistemas Geradores e Reconhecedores na Especificação e Representação de Linguagens na Teoria da Computação:

Gramática de Chomsky e Autômato. 2018. 36. Trabalho de Conclusão de Curso (Engenharia da Computação) – Universidade Norte do Paraná, Londrina,2018.

ABSTRACT

Theory of Computation encompasses the teaching of computer models or machines and their computing power. Recent computer models are inept at understanding direct human language, whether spoken or written, because of the enormous possibilities of meanings of the same word. Programming languages have been created to reduce the distance between human language and computer programming, these are formal languages, where they seek to end everything that may contain more than one meaning or meaning, ensuring that a command and reserved word always have the regardless of where they appear in the program. It is understood by Theory of Formal Languages and Automata the study of mathematical models that enable the characterization and recognition of languages, their classifications, structures, characteristics and inter-relationships. It can be said that the Theory of Formal Languages aims to develop theories associated with natural languages in which basically encompasses the study of the characteristics, properties and applications of Formal Languages, with emphasis in applications in Lexical and Syntactic Analysis of programming languages, models of logic circuits or, in which it is concerned with the syntactic problems of languages. At the moment, syntax theory has well-defined and globally recognized mathematical constructs such as Chomsky's Grammars. The theory of automata is the study of abstract computers, also called

"machines". In the 1930s, before computers were available, Alan Turing developed an abstract machine that had all the features of today's computers, at least as far as how much they could calculate. Turing's goal was to accurately describe what a computing machine would be and what she would not be able to do.

Key-words: Automata; Formal Languages; Noam Chomsky; Alan Turing; Theory of Computation.

(8)

LISTA DE ILUSTRAÇÕES

Figura 1 – Hierarquia de Chomsky...16

Figura 2 – Autômato Finito Determinístico...21

Figura 3 – Autômato Finito Não-Determinístico...22

Figura 4 – Autômato com Pilha...23

(9)

LISTA DE TABELAS

Tabela 1 – Linguagens, Gramáticas e Reconhecedores ... 18

(10)

LISTA DE ABREVIATURAS E SIGLAS

T.C Teoria Computacional

(11)

11

SUMÁRIO

1 INTRODUÇÃO...12

2. LINGUASGENS FORMAIS E GRAMÁTICAS CHOMSKY...14

2.1. Hierarquia de Chomsky...16

3. INTRODUÇÃO AOS ATOMATOS...19

3.1. Modelos de Autômatos...20

4. MODELAGEM DA GRAMÁTICA DE CHOMSKY E A MODELAGEM DOS AUTÔMATOS...25

4.1. Exemplo das Gramáticas

...

26

4.2. Exemplo dos Autômatos...28

5. CONSIDERAÇÕES FINAIS...33

6. REFERÊNCIAS...36

(12)

12 INTRODUÇÃO

A Teoria da Computação compreende o ensinamento de modelos de computadores ou máquinas e o seu poder computacional. Os recentes modelos de computação são ineptos a entender a linguagem humana direta, seja ela falada ou escrita, em razão das enormes possibilidades de significados de uma mesma palavra além das variações de construções de frases. As Linguagens de programação foram criadas para reduzir o distanciamento entre a linguagem humana e a programação de computadores, sendo elas as linguagens formais, onde procuram acabar com tudo aquilo que pode conter mais de um sentido ou significado garantindo que um comando e palavra reservada tenham sempre o mesmo significado independentemente de onde apareçam no programa.

Entende-se por Teoria das Linguagens Formais e dos Autômatos o estudo de modelos matemáticos que viabilizam a caracterização e o reconhecimento de linguagens, suas classificações, estruturas, propriedades, características e inter- relacionamentos, seu objetivo é desenvolver teorias associadas com as linguagens naturais no qual engloba basicamente o estudo das características, propriedades e aplicações das Linguagens Formais, com destaque nas aplicações em Análise Léxica e Sintática de linguagens de programação, modelos de circuitos lógicos ou redes lógicas, modelagem de sistemas biológicas.

É indispensável o conhecimento de como funciona os sistemas geradores que são dispositivos formais que permitem a geração sistemáticas de todas as sentenças de uma linguagem, e dos sistemas reconhecedores que servem para verificar se uma sentença pertence ou não a determinada linguagem, na determinação desses problemas. Uma vez que se faz necessário o estudo dos sistemas utilizados na T.C.

(Teoria Computacional), para entender a forma de como os problemas são modelados.

Com o passar do tempo os problemas de gramáticas e de reconhecimentos de linguagens têm aumentado cada vez e consequentemente gerado uma maior dificuldade para a resolução delas. Desta forma, a modelagem matemática é muito utilizada na resolução destes problemas, descrevendo matematicamente os procedimentos que sirvam de solução para o problema inicial, com o objetivo de prever seus comportamentos assim como também a simulação de sistemas reais.

(13)

13 O trabalho tem por objetivo geral demonstrar no que consiste a Técnica Computacional, as Linguagens Formais e os Autômatos, e os objetivos específicos são: demonstrar a modelagem da Gramática de Chomsky na geração de linguagens, assim como a modelagem de Autômatos no reconhecimento.

Este trabalho de conclusão de curso que no caso é uma revisão de literatura consiste-se em apresentar somente os referencias teóricos e outras pesquisas relevantes para o estudo do tema escolhido, sendo seus elementos básicos: revisão dos textos teóricos valorosos para o fundamento do trabalho, revisão de outras pesquisas que contenham informações consideráveis, explicar de que modo o trabalho se correlaciona com os estudos revisados, tendo como principais autores:

Paulo Blauth Menezes, Harry R.Lewis Christos H. Papadimitriou, Marcos Vinicius Midena dentre outros.

(14)

14 2 LINGUAGENS FORMAIS E GRAMÁTICAS DE CHOMSKY

A teoria da computação iniciou-se nos primeiros anos do século XX, antes da concepção dos primeiros computadores modernos eletrônicos, a Teoria Computacional estuda e relaciona modelos de computação, as classes de problemas que cada um deles consegue resolver e os limites a que cada qual está sujeito buscando soluções globais e grandiosas, se fundamentando em métodos e técnicas de Matemática tendo como foco na teoria dos conjuntos. (NETO,2009)

Uma forma de avaliar o poder de expressão de um modelo computacional é através do estudo da classe das linguagens formais que esse modelo é capaz de representar, tendo uma grande importância nas aplicações práticas no estudo de linguagens, gramáticas e autômatos (NETO,2009)

Desenvolvida na década de 1950 a Teoria das Linguagens Formais tem por objetivo desenvolver teorias relacionadas com as linguagens naturais, no entanto foi averiguado que esta teoria era significativamente importante para o aprendizado das linguagens artificiais e exclusivamente para as linguagens originárias na Ciência da Computação, desde essa época o estudo das Linguagens Formais amplificou-se com diversos sentidos e com ênfase para as aplicações em Análise Léxica e Sintática de linguagens de programação, desenhos de circuitos e relacionamentos com linguagens naturais, modelos de sistemas biológicos, (MENEZES,2001).

A Sintaxe dedica-se as características livres da linguagem, tal como o reconhecimento gramatical de programas, já a semântica é direcionada a interpretação de uma linguagem, por exemplo um significado ou valor para um determinado programa. Em consequência a sintaxe fundamentalmente manuseia símbolos sem considerar os seus correspondentes significados, para resolver qualquer problema real é indispensável dar uma interpretação semântica aos símbolos. (MENEZES,2001)

O problema sintático foi reconhecido antes do problema semântico e foi o primeiro a receber um tratamento apropriado, como efeito foi dado um destaque maior à Sintaxe ao ponto de levar a ideia de que as questões das linguagens de programação resumiam-se as questões da sintaxe. (BROOKHEAR,1989)

(15)

15 Atualmente as construções matemáticas na teoria da sintaxe estão bem mais assentadas e globalmente reconhecidas como por exemplo as Gramáticas de Chomsky, onde por sua vez se evidenciam por serem os principais Sistemas

Geradores disponíveis, que são dispositivos formais que permitem a geração sistemática de todas as frases de uma linguagem (MENEZES,2001)

Uma linguagem de programação pode ser vista de duas formas:

• Uma entidade livre, sem qualquer significado associado;

• Uma entidade juntamente à uma interpretação do seu significado;

Avram Noam Chomsky é um filósofo, ativista, linguista analista e autor político estadunidense, nascido na Filadélfia em sete de Dezembro de 1928, estudou no Oak Lane Country Day School e no Central High School, recebeu o título de PhD em linguística na Universidade da Pensilvânia em 1955, na mesma época em que entrou para o Instituto de Tecnologia de Massachusetts (MIT), foi pesquisador assistente na Universidade de Harvard, onde realizou grande parte de suas pesquisas associadas à linguística, teve uma contribuição fundamental á linguística moderna, com a concepção teórica e o desenvolvimento do conceito de gramatica. (RAMOS, 2009)

Foi a partir da publicação de dois artigos de Chomsky na década de 1950 que o estudo das linguagens formais teve um forte impulso, os mesmos traziam o resultado de suas pesquisas relativas a classificação hierárquica das linguagens até então a teoria dos autômatos se apresentava de maneira razoavelmente evoluída. A ideia Chomsky sugere que toda declaração humana tem duas estruturas: "estrutura de superfície", a superficial combinando com as palavras, e a "estrutura funda" que são regras universais e mecanismos (RAMOS, 2009)

Chomsky apresentou uma classificação das linguagens estruturadas em frases, organizadas em níveis de complexidade crescente, onde partem do nível 0, menos restrito até o 3 mais restrito, cada nível sucessor pertence ao nível antecessor, podendo ser estudada separadamente, onde se tornaria referência fundamental para o estudo das linguagens formais, tal classificação passou a ser conhecida como Hierarquia de Chomsky que tem por objetivo apresentar as diversas classes de linguagens sendo elas: (RAMOS, 2009)

• Tipo 0 ou GEF – Gramática com estrutura de frase/ Recursivamente enumerável

• Tipo 1 ou GSC – Gramática sensível ao contexto

(16)

16

• Tipo 2 ou GLC – Gramática livre de contexto

• Tipo 3 ou GR – Gramática Regular

Na Figura 1 é demonstrado a Hierarquia de Chomsky e os seus tipos.

Figura 1 – Hierarquia de Chomsky

Fonte: (Braga, 2006)

2.1. HIERARQUIA DE CHOMSKY

Gramatica com estrutura de frase / Recursivamente enumerável – Gramática com estrutura de frases (GEF) ou tipo 0, admite qualquer regra de produção, não é imposto nenhum restringimento quanto ao formato de suas produções, exceto pelo fato de que o lado esquerdo das mesmas deva sempre conter pelo menos um símbolo não-terminal e podem ser aceitas por uma máquina de Turing. De acordo com a hipótese de Church (2001, p. 132) “a Máquina de Turing é o mais geral dispositivo de computação, então a Classe das linguagens Enumeradas Recursivamente representa o conjunto de todas as linguagens que podem ser reconhecidas mecanicamente em um tempo finito”. (HOPCROFT, ULLMAN, MOTWANI, 2002)

Gramática sensível ao contexto ou tipo 1 (GSC), sucedem da limitação imposta ao devido formato das produções, de que o comprimento da cadeia do lado direito de cada produção seja no mínimo igual ao comprimento da cadeia do lado esquerdo, não tendo desse modo a viabilidade de encolhimento do comprimento das formas sentenciais quando da reutilização de derivações, a gramatica do tipo 1 podem ser

(17)

17 aceitas por uma máquina de Turing com fita limitada, ou seja uma máquina de Turing com limitação finita no tamanho da fita, essa linguagem foi introduzida como uma maneira de descrever a sintaxe de linguagem natural, toda gramática do tipo 1 é também do tipo 0. (HOPCROFT, ULLMAN, MOTWANI, 2002).

Gramática livre de contexto ou tipo 2 (GLC), é dita livre de contexto se as suas produções compreenderem exclusivamente um símbolo não-terminal em seu lado esquerdo, e uma agregação qualquer de símbolos terminais e não terminais no lado direito, seu estudo foi desenvolvido a partir de um formalismo axiomático ou gerador e um operacional ou reconhecedor, contém propriamente a Classe das Linguagens Regulares, sendo seu estudo de primordial valor na informática, dados que:

• Compreende um universo mais vasto de linguagens tratando apropriadamente questões como parênteses balanceados, construções bloco-estruturadas, entre outras

• Os algoritmos reconhecedores e geradores que implementam as Linguagens Livres do Contexto são relativamente simples e possuem uma boa eficiência;

• Exemplos típicos de aplicações dos conceitos e resultados são analisadores sintáticos, tradutores de linguagens e processadores de texto em geral (HOPCROFT, ULLMAN, MOTWANI, 2002).

Gramática regular ou tipo 3 (GR), refere-se a uma linguagem mais compreensível capaz de desenvolver algoritmos reconhecedores e geradores, é de grande eficiência e fácil implementação uma linguagem reconhecida pelos autômatos finitos, a linguagem do tipo 3 é qualquer gramática linear, e uma gramatica linear pode ser classificada em: (HOPCROFT, ULLMAN, MOTWANI, 2002).

• Gramática linear à direita;

• Gramática linear a esquerda

• Gramática linear unitária à direita;

• Gramática linear unitária à esquerda;

Gramática linear à direita (GLD): Todas as regras de produção são da forma:

A wB ou A w

Gramatica linear a esquerda (GLE): Todas as regras de produção são da forma:

A Bw ou A w

(18)

18 Gramatica linear unitária a esquerda (GLUE): Todas as regras de produção são como na linear à esquerda e, adicionalmente, |w| <= 1.

Gramatica linear unitária a direita (GLUD): Todas as regras de produção são como na linear à direita e, adicionalmente, |w| <= 1.

De acordo com cada classificação, os níveis 2 e 3 são extensamente utilizados na descrição de linguagens de programação e na implementação de interpretadores e compiladores, o nível 2 é empregado em análise sintática e o nível 3 em análise Léxica, foi indagado também que para cada classe das linguagens da hierarquia de Chomsky, encontra-se uma classe de máquina reconhecedora e para cada máquina existe uma linguagem. (DELAMARO,1998)

Na Tabela 1, é demonstrada os tipos de linguagens suas respectivas gramáticas e seus reconhecedores.

Tabela 1 – Linguagens, Gramáticas e Reconhecedores

Linguagem Gramática Reconhecedor

Tipo 0: Ling. Enumerada Enumeráveis

Gramáticas Irrestritas Máquina de Turing Tipo 1: Sensíveis ao

Contexto

Gramáticas Sensíveis ao Contexto

Autômato Limitado Linearmente Tipo 2: Ling. Livres de

Contexto

Gramáticas Livres de Contexto

Autômato com Pilha Tipo 3: Ling. Regulares Gramáticas Regulares Autômato Finitos

Fonte: Prado (Apostila, 2010)

(19)

19 3 INTRODUÇÃO AOS AUTÔMATOS

A teoria de autômatos é o ensinamento dos mecanismos de computadores abstratos, conhecidos também como “máquinas”, antes de do desenvolvimento dos computadores, em 1930. Alan Turing tinha por objetivo relatar com precisão o que uma máquina de computação poderia fazer em relação ao que não poderia fazer, foi a partir desse objetivo que Turing desenvolveu uma máquina abstrata que tinha totais características dos computadores atuais, pelo menos ao que ser diz o quanto eles conseguiriam calcular, suas conclusões se sobrepõem não apenas a sua máquina abstrata, mas também as máquinas de hoje. (DELAMARO,1998)

Nas décadas de 1940 e 1950, os Autômatos Finitos que eram conhecidos como máquinas simples, tiveram suas pesquisas avançadas por diversos pesquisadores, os autômatos se revelaram extraordinariamente essenciais para uma grande diversidade de outros propósitos, pois originalmente foram recomendados para modelar a função do cérebro. No final de 1950 conjuntamente o linguista Noam Chomsky deu início ao seu estudo sobre as Gramáticas, ainda que as gramáticas não sejam máquinas elas têm um relacionamento estreito com os autômatos abstratos. (VELOSO,1979)

Já em 1969, Steve Cook aprofundou-se nos estudos de Turing referente ao que uma máquina poderia e não poderia calcular, Cook alcançou a pesquisa ao ponto de conseguir separar os problemas que podem ser resolvidos de maneira eficaz por computadores daqueles problemas que conseguiriam a vir ser resolvidos, mas que na prática trariam um prazo muito maior que os computadores, esses problemas são conhecidos como “intratáveis” ou “NP-difíceis” (NPHARD), até mesmo com a melhor exponencial na velocidade dos computadores é insuficiente para que tenha um embate considerável na resolução de grandes problemas intratáveis. (DIVERIO,199)

Nas construções de valorosos componentes de software, os conceitos de Autômatos finitos e certos tipos de gramaticas formais são enormemente usados, outros princípios como a Máquina de Turing nos auxiliam a compreender o que podemos aguardar e nosso software, principalmente a teoria de problemas intratáveis que nos possibilitam concluir se temos a capacidade de criar ou escrever algum programa que irá auxiliar na resolução de algum tipo de problema assim que nos depararmos com um, ou se teremos que encontrar uma forma de rodear o problema intratável.(SILVA,2010)

(20)

20 3.1 MODELOS DE AUTÔMATOS

Autômatos Finitos, seu modelo é extremamente benéfico para vários elementos Importantes de hardware e software, é usado para projetar e verificar o desempenho de circuitos lógicos, o autômato finito tem um conjunto de estados, onde se transporta de estado para estado conforme repassado em sua entrada. Os autômatos Finitos podem ser do tipo: Autômato Finito Determinístico ou Autômato Finito Não- Determinístico. (PRICE,2013)

Um Autômato Finito Determinístico ou apenas Autômato Finito, ele pode ser visto como uma máquina composta, substancialmente por três partes:

• Fita: Dispositivo de entrada que incluem a informação a ser processada, ela é finita em ambas as direções, estando dividida em células, no qual cada uma conserva um símbolo, letra ou número e não é possível gravar na fita

• Unidade de Controle: Espelha o estado corrente da máquina, contém uma unidade de leitura a qual acessa uma célula da fita de cada vez e move-se unicamente para a direita, porta um número finito e predefinido de estados, a unidade de controle interpreta um símbolo por vez e após sua leitura move-se para a seguinte célula a direita, mas primeiramente a “cabeça da fita” está no símbolo mais à esquerda;

• Programa ou Função de Transição: Função que determina as leituras e estipula o estado da máquina, ele determina o novo estado do autômato.

Um autômato Finito também pode ser determinado como uma quíntupla, M=(Q,∑,δ,qo,F), onde:

• Q = Conjunto de estados possíveis do autômato o qual é finito;

• ∑ = Alfabeto de símbolos de entrada;

• δ = Função programa ou função transição;

• qo = Estado inicial tal que qo é elemento de Q;

• F = Conjunto de estados finitos tal que F está em Q;

(21)

21 Figura 2 – Autômato Finito Determinístico

Fonte: (PESSOA, 2008)

Na Figura 2, é apresentado um modelo de um Autômato Finito Determinístico.

No Autômato acima podemos observar que o mesmo possui 3 estados: S0, S1e S2, a entrada é representada por uma continuidade finita de caracteres 1s e 0s, para cada estado existe, existe um arco e uma seta transportando outro estado para ambos os caracteres, o autômato finito sempre para após terminar o processamento da entrada repassada, sua parada pode ser de duas maneiras aceitando a palavra de entrada ou a rejeitando.

Autômato Finito Não-Determinístico, é capaz de estar em vários estados ao mesmo tempo, mas nem sempre a vantagem de ser não-determinístico amplia o poder de reconhecimento de linguagens de uma classe de autômatos.

Esse recurso é chamado como Não – Determinístico, pois para cada par de estado e símbolo de entrada pode haver vários próximos estados possíveis, uma vez que lê a circunferência com seu símbolo pode decidir a cada passo invadir em qualquer um desses estados subsequentes validos, a entrada não é estipulada por nada em nosso modelo, a seleção também não é toda ilimitada, apenas podem ser escolhidos aqueles estados seguintes que são validos, por isso se diz que o Autômato é Não-Determinístico, e assim como o Determinístico também é uma quíntupla (PRICE,2013).

Na Figura 3, é demonstrado um modelo de um Autômato Finito Não- Determinístico.

(22)

22 Figura 3 – Autômato Finito Não-Determinístico

Fonte: Teoria da Computação (2009)

No autômato Finito não – determinístico, aceita as strings de 0s e 1s, o estado q0 é o inicial e pode fazer uma transição para ele mesmo em 0 e 1 e tem a opção de ir para ele mesmo ou para o q1, após seguir para q1 onde não tem opção de transição e finalizando em q2 onde possui 2 arcos

Autômato Com Pilha, é uma amplificação dos Autômatos finitos onde o mesmo adiciona uma memória organizada como uma pilha, a pilha é autônoma da fita de entrada e não possui um limite máximo de tamanho e a facilidade de não- determinístico, a principal característica e que o ultimo símbolo gravado é o primeiro a ser lido, o mesmo dispõe de duas definições globalmente aceitas que diferenciam no método de para do autômato. (HARRISON,1978)

• O valor inicial da pilha é vazio e o autômato é aceito ao chegar em seu estado final

• A pilha compreende primeiramente um símbolo exclusivo denominada símbolo inicial da pilha, não existindo estados finais o autômato para aceitando quando a pilha estiver vazia.

O autômato com pilha, é formada por quatro partes sendo elas:

• Fita: Equivalente à do Autômato Finito;

• Pilha: É a memória auxiliar que pode ser utilizada livremente para leitura e gravação;

• Unidade de Controle: O estado corrente da máquina, contém uma cabeça na fita e uma pilha;

• Programa ou Função de Transição: Coordena a leitura da fita, a leitura e gravação da pilha e define o estado da máquina.

O autômato com pilha é uma sêxtupla: M=(Q,∑,δ,qo,F,V), assim como os Autômatos finitos os símbolos possuem significados iguais e o símbolo V é

(23)

23

• V = Alfabeto auxiliar ou alfabeto da pilha

A Figura 4, é um exemplo de uma Autômato com Pilha.

Figura 4 – Autômato com Pilha

Fonte: (SIMEONE, 2015)

O autômato com pilha possui uma memória auxiliar onde irá fazer o reconhecimento da palavra de entrada.

Máquina de Turing, Alan Mathison Turing é considera do pai da ciência computacional, nasceu na Inglaterra no dia 23 de junho de 1912, Turing foi um grande matemático onde aos 15 anos já resolvia problemas matemáticos complexos sem ao menos ter estudado cálculo, seus estudos se tornaram base para a tecnologia atual.

Sua maior invenção foi a Máquina de Turing, a máquina era capaz de adulterar símbolos em uma fita de acordo com uma série de regras para guardar informações.

A máquina de Turing consiste basicamente em 3 partes: (BROOKHEAR,1989)

• Fita: Usada simultaneamente com dispositivo de entrada, saída e memória de trabalho, a fita é ilimitada tanto para a direita como para esquerda.

• Unidade de Controle: Reflete o estado corrente da máquina, possui uma unidade de leitura e gravação a qual acessa uma célula da fita de cada vez e movimenta-se para a esquerda ou direita

(24)

24

(1, 1, D) (0, 0, D)

• Programa ou Função de Transição: Função que comanda as leituras e gravações, o sentido de movimento da cabeça e define o estado da máquina.

(β, 0, D) (β, 0, E) (>, >, D)

Entrada

Saída

No modelo da Máquina de Turing o mesmo possui uma entrada (0010) e conforme as regras do autômato a saída deve ser (1000), e a cada regra tem a opção de ir para a direita ou para a esquerda.

0 0 1 0 1 0 0 0

S0 S1 S2 SF

(0, 0, E) (1, 1, E)

(25)

25 4 MODELAGEM DA GRAMÁTICA DE CHOMSKY E A MODELAGEM DOS

AUTÔMATOS

Para que possa ser compreendido melhor o funcionamento dos sistemas geradores (Gramatica de Chomsky) e dos sistemas reconhecedores (Autômatos), é preciso entender com mais clareza alguns tópicos importantes como: Alfabetos, Palavras, Gramatica, Conjuntos, Sistemas Geradores e Sistemas Reconhecedores.

Os Sistemas Geradores são os dispositivos formais providos de mecanismos que permitem a geração sistemática das sentenças de uma linguagem, sendo os principais sistemas geradores as Gramaticas podendo se destacar as Gramaticas de Chomsky. (HOPCROFT,1969)

Os Sistemas Reconhecedores são os dispositivos formais que nos possibilitam averiguar se uma sentença de uma linguagem pertence ou não a uma determinada linguagem, esses dispositivos nomeiam-se Autômatos. (DELAMARO,1998)

Conjuntos: É um agrupamento de objetos, por exemplo o agrupamento de quatro letras a,b,c,d é um conjunto ao qual podemos atribuir o nome de C, e então escrevemos C = (a,b,c,d), esses objetos que formam o conjunto são chamados de elementos ou membros, então podemos dizer que d é um elemento de C, ou em notação simbólica d € C, em um conjunto não distinguimos repetições dos elementos, a ordem dos elementos é desimportante, um conjunto pode conter somente um elemento que então seria chamado de ‘Unitário’. (RAMOS,2009)

Alfabetos: É um conjunto finito e não vazio de símbolos, geralmente o alfabeto é denotado por ∑, um conjunto vazio também é considerado um alfabeto, os alfabetos comuns consistem em:

1. ∑ = {0,1}, o alfabeto binário

2. ∑ = {a,b,....,z} o conjunto de todas as letras minúsculas.

3. O conjunto de todos os caracteres ASCII, ou conjunto de todos os caracteres ASCII imprimíveis.

As palavras possuem fechamentos que se constitui no conjunto de todos as cadeias possível de se formar a partir dos símbolos deste alfabeto, denota-se o fechamento de um alfabeto ∑ por ∑*. (VELOSO,1979)

Palavra: Uma palavra, Cadeia de Caractere ou Sentença sobre um alfabeto é um segmento finita de símbolo, uma palavra do tipo vazia é representada pelo símbolo

(26)

26 ɛ, a extensão de uma palavra w, interpretado por |w| é o número de símbolos que compõem a palavra, exemplo: abcd é uma palavra sobre o alfabeto {a,b,c}.

(VELOSO,1979)

Gramatica: Uma gramatica é uma quadrupla ordenada G=(V, T , P, S) onde:

• V é o conjunto finito de símbolos variáveis ou não terminais;

• T conjunto finito de símbolos terminais disjuntos de V;

• P é o conjunto finito de pares, denominados regras de produção.

• S é o elemento de V denominado variável inicial.

4.1 EXEMPLO DAS GRAMÁTICAS

Gramatica Tipo 0 ou GEF – Gramatica com Estrutura de frase

Qual a menor palavra ou cadeia que podemos encontra nessa gramatica?

G1 = ({S,A,B,C,D,E}, {a}, P,S)

P = {1. S →ACaB 5. aD → Da 2. Ca → aaC 6. AD → AC 3. CB → DB 7. aE → Ea 4. CB → E 8. AE → ʎ

Em G1 é onde define-se quais os símbolos terminais que são os símbolos que estão em maiúsculos, e o símbolo não terminal o que está em minúsculo onde temos somente um (a), o P que é onde define as regras de produção e o S é onde se inicia a leitura, sendo assim para descobrirmos a menor palavra deve seguir conforme a regra definida por P:

S → S substitui por ACaB ACaB → Ca substitui por aaC

AaaCB → CB substitui por E A menor palavra encontrada é aa AaaE →aE substituído por Ea

AaEa → aE substitui por Ea AEaa → AE substitui por ʎ aa

Gramatica Tipo 1 ou GSC – Gramatica Sensível ao Contexto Qual a linguagem gerada por esta gramatica?

S → aSBC bB → bb S → aBC bC → bc CB → aB cC → cc aB →ab

(27)

27 Para saber qual a linguagem deve-se fazer a derivação das sentenças conforme cada regra

S → irá substituir o S por aSBC aSBC → irá substituir o S por aSBC aaSBCBC → substituiu o S por aBC

aaaBCBCBC → irá substituir o aB por ab aaabCBCBC → irá substituir o CB por BC aaabBCCBC → irá substituir o CB por BC aaabBCBCC → irá substituir o bB por bb aaabbCBCC → irá substituir o CB por BC aaabbBCCC → irá substituir o bB por bb aaabbbCCC → irá substituir o bC por bc aaabbbcCC → irá substituir o cC por cc aaabbbccC → irá substituir o cC por cc aaabbbccc

A linguagem gerada por essa gramatica é L (G) = a^nb^nc^n | n>=1, ou seja, para a mesma quantidade de ‘a’ temos que ter para ‘b’ e ‘c’

Gramática Tipo 2 ou GLC – Gramatica Livre de Contexto Qual a linguagem gerada por esta gramatica?

S → aB B → b S → bA B → bS A → a B → aBB A → aS

A → bAA

Para saber qual a linguagem deve-se fazer a derivação das sentenças conforme cada regra

S → S substitui por aB S → S substitui por S → S substitui por aB aB → B substitui por b bA → A substitui por a aB → B substitui por bS ab ba abS → S substitui por bA

abbA → A substitui por a S → S substitui por bA abba

bA → A substitui por aS baS → S substitui por bA babA → A substitui por a baba

A linguagem gerada por esta gramatica é L(G)= {a,b}* |{ |w|a = |w|b}, ou seja para a mesma quantidade de a temos que ter para b não importa a ordem.

(28)

28

S1

Gramatica Tipo 3 ou GR – Gramatica Regular

A linguagem a(ba)* é gerada pelas seguintes Gramáticas Regulares:

1. Linear a Direita G=({S,A}, {a,b}, P, S)

S → aA S → S substitui por aA A → baA | ʎ aA → A substitui por baA

abaA → A substitui por baA ababaA → A substitui por baA abababaA → A substitui por ʎ abababa

Conforme a regra, a linguagem descreve que inicialmente temos que ter um “a”

e em seguida segue a ordem “ba” quantas vezes quisermos, a Gramatica Regular linear a direita é quando o símbolo terminal somente pode estar do lado direito da regra.

2. Linear a Esquerda G= ({S}, {a,b}, P, S)

S → Sba S → S substitui por Sba S → a Sba → S substitui por Sba

Sbaba → S substitui por a ababa

Como pedido na linguagem a(ba)*, a diferença entre o linear a direita com o linear a esquerda é que no linear a esquerda o símbolo terminal fica a esquerda.

4.2 EXEMPLO DOS AUTÔMATOS Autômato Finito Determinístico

Descreva a função de transição do autômato:

(c) (a) (b)

(c)

(b) S0

S2

(29)

29 δ (S0,a) = S0 (S0 gerar um ‘a’ ou vários nele mesmo, e voltar para S0) δ (S0,b) = S1 (De S0 para S1 gerar um ‘b’)

δ (S1,c) = S1 (S1 gerar um ‘c’ ou vários para ele mesmo e finalizar) δ (S0,c) = S2 (De S0 para S2 gera um ‘c’)

δ (S2,b) = S2 (S2 gera uma ‘b’ ou vários nele mesmo e finaliza)

A linguagem para o autômato é a*(bc*+cb*) | a>=0, b>=0, c>=0| , a linguagem gerada pelo autômato trais 2 caminhos, onde no primeiro é gerado quantos ‘a’ quiser, pelo fato que acima do S0 ter uma flecha voltada para ele mesmo significa repetição, gerar um ‘b’ para S1 e quantos ‘c’ quiser e finalizar em S1, ou gerar somente um ‘b’

saindo de S0 para S1 e finalizar, no segundo caminho também pode-se gerar quantos

‘a’ quiser em S0 e após gerar um ‘c’ para S2 e no S2 pode-se gerar um ‘b‘ quantas vezes quiser e finalizar, o autômato pode finalizar em S1 ou S2 pelo fato de terem 2 círculos indicando finalização

Autômato Finito Não-Determinístico

Construa a AFND para a seguinte linguagem bcc*(b+a)*

(b) (c) (b,a)

(c) (b,a)

Conforme pede na linguagem pode-se gerar um ‘b’ e um ‘c’, sendo essa sequência obrigatória, no S2 tem a opção de fazer um loop em ‘c’ ou simplesmente finalizar, até essa parte tem-se a linguagem ‘bcc*’ com ‘c*’, pois tem a opção de ser um, nenhum, ou mais de um ‘c’, o entre parêntese é uma opção ou seja você tem a opção de finalizar seu autômato nessa parte ou seguir em frente, se escolher não finalizar de S2 para S3 tem-se a opção de escolher entre ‘b’ ou ‘a’, podendo finalizando em S3 ou gerar um loop entre ‘a’ e ‘b’ antes da finalização.

Autômato com Pilha

Conforme o autômato abaixo verifique se as seguintes cadeias são aceitas ou não pelo autômato, considere que a base da pilha seja o símbolo B.

S0 S1 S2 S3

(30)

30 a) aaabb

b) aabb <b,A>/ʎ

<a,B>/A <b,A>/ʎ <a,A>/AA

<ʎ,B>/ʎ

A leitura é um pouco diferente dos demais autômatos, no autômato com pilha a primeira leitura ‘a’ (<a,B>/A) indica o símbolo que está lendo na cadeia, ‘B’ indica o símbolo que está lendo na pilha, e ‘A’ o que irá substituir na pilha pelo símbolo lido.

a)Primeiro vamos ler a linguagem aaabb, conforme primeira regra de S, lemos

‘a’ da cadeia, lemos o que está na pilha ‘B’, pois conforme informado no início a pilha se inicia com ‘B’, e substituímos por A, agora vamos para a segunda letra aaabb, seguindo na segunda regra de S, lemos ‘a’, lemos a pilha ‘A’, e substituímos por ‘AA’, indo para a terceira letra temos aaabb e como na pilha o ultimo que entra é o primeiro a ser lido, lemos ‘a’, lemos ‘A’ da pilha, e substituímos por ‘AA’, indo para a quarta letra temos aaabb, seguimos de S para R, lemos ‘b’, lemos ‘A’ da pilha e substituímos por vazio, agora lemos o ultimo símbolo aaabb ‘b’, e utilizando a última regra de R, lemos ‘b, lemos ‘A’ da pilha e substituímos por vazio, chegamos ao final da cadeia e na pilha ainda contém um símbolo ou seja essa cadeia não é aceita pelo autômato só seria aceita se finaliza-se a leitura e a pilha estivesse vazia

b)Primeiro vamos ler a linguagem aabb, conforme primeira regra de S, lemos

‘a’ da cadeia, lemos o que está na pilha ‘B’, e substituímos por A, agora vamos para a segunda letra aabb, seguindo na segunda regra de S, lemos ‘a’, lemos a pilha ‘A’, e substituímos por ‘AA’, indo para a terceira letra temos aabb e como na pilha o ultimo que entra é o primeiro a ser lido, lemos ‘b’, lemos ‘A’ da pilha e substituímos por vazio, agora lemos o ultimo símbolo aabb ‘b’, e utilizando a última regra de R, lemos ‘b, lemos

B A A A

A A A

A A A

S R

(31)

31

‘A’ da pilha e substituímos por vazio, chegamos ao final da cadeia e na pilha está vazia ou seja essa cadeia é aceita pelo autômato com pilha.

Máquina de Turing

Construa uma máquina de Turing que receba como entrada um número binário e devolva o quadruplo do mesmo

Entrada 0010 = 2 Saída1000 = 8 (0,0,D)

(1,1,D)

(>,>,D) (β,0,D) (β,0,E)

(0,0,E) (1,1,E)

A máquina de Turing tem sua leitura parecida com a leitura do Autômato com Pilha, mas a máquina indica também a direção na leitura.

Começamos lendo o primeiro símbolo 0010, conforme a regra (0,0,D) lemos o símbolo ‘0‘, gravamos o ‘0’ na fita e vamos para a direita na cadeia, 0010, agora lemos o segundo símbolo ‘0’ e conforme a regra de S0 lemos ‘0’, gravamos ‘0’ na fita e vamos para a direita, seguindo 0010 (1,1,D), lemos ‘1’, gravamos ‘1’ na fita e vamos para a direita, seguindo 0010, lemos ‘0 ’, gravamos ‘0’ na fita e vamos para a direita, indo para a direita chegamos em um vazio, na regra de S0 para S1 o β significa vazio, então utilizando essa regra, lemos o vazio, adicionamos um ‘0’ na fita e seguimos para a direita, indo para a direita chegamos em outro vazio de S1 para S2 com a mesma regra, então lemos o vazio, adicionamos um ‘0’ na fita e agora voltamos para a

B A A A A

S0 S1 S2 SF

(32)

32 esquerda, e seguimos na regra voltando para a esquerda, lê o ‘0’, grava ‘0’ na fita e vai para esquerda, até que chegue no inicio em (>,>,D), o símbolo > significa o início da cadeia, se a máquina foi até o final e voltou para o início, quer dizer que ela fez a conferencia da palavra e finalizou no símbolo >, agora observe a saída 001000, a entrada inicial era 0010 que é 2 em binário e sua saída seria o quadruplo desse número que seria 1000, ou seja a máquina conseguiu gerar a saída esperada.

0 0 1 0

= 8

0 0 1 0 0 0 1 0

0 0 1 0

0 0 1 0 0 0 0 1 0

0 0 1 0 0 0

(33)

33 5 CONSIDERAÇÕES FINAIS

O desenvolvimento do presente trabalho além de possibilitar uma análise de como é o funcionamento dos Sistemas Reconhecedores e Geradores, permitiu também um estudo mais aprofundado no que diz respeito à averiguação de que as principais gramáticas disponíveis são as Gramáticas de Chomsky, ou seja, gramáticas em Teoria da Computação consideradas como dispositivos formais na permissão de uma geração sistemática de todas as frases de uma linguagem. Chomsky apresentou também uma classificação das linguagens estruturadas em frase, de modo que houvesse a possibilidade de realizar a organização em níveis de complexidade crescente partindo do nível 0 até o nível 3, classificação esta, cuja qual ficou conhecida como Hierarquia de Chomsky.

A primeira classificação da Hierarquia é a Gramatica com estrutura de frase, isto é, recursivamente enumerável (GEF) ou tipo 0. Esta, por sua vez, admite qualquer regra de produção, já que se trata de uma gramatica irrestrita e que podem ser aceitas por uma máquina de Turing. A segunda gramática é a Gramática sensível ao contexto ou tipo 1 (GSC), na qual também é aceita por uma máquina de Turing, mas com fita limitada, e requer que a cadeia do lado esquerdo seja igual ao da cadeia do lado esquerdo. Por outro lado, a Gramática livre de contexto ou tipo 2 (GLC), é dita livre de contexto se as suas produções compreenderem exclusivamente um símbolo não- terminal em seu lado esquerdo, e podem ser aceitas por um autômato com Pilha. E finalmente, a Gramática regular ou tipo 3 (GR), que é uma Linguagem regular, pertencente às gramáticas regulares, podem se dividir em quatro tipos sendo 2 delas mais importantes a Gramatica linear à Direita e a Gramática linear a Esquerda e são aceitas por Autômatos Finitos.

. Portanto, conforme analisado para cada classe das linguagens da hierarquia de Chomsky, encontra-se uma classe de máquina reconhecedora e para cada máquina existe uma linguagem.

Sobre os sistemas Reconhecedores, os Autômatos, existe os Autômatos Finitos onde se transporta de estado para estado conforme é repassado em sua entrada, este ainda pode ser do tipo autômato Finito Determinístico ou Autômato Finito Não- Determinístico. O Autômato com Pilha, sendo ele uma amplificação dos Autômatos finitos onde o mesmo adiciona uma memória organizada como uma pilha tendo a

(34)

34 principal característica a questão de o ultimo símbolo gravado ser, portanto, o primeiro a ser lido. E então, a Máquina de Turing que também é conhecida como máquina universal. Esta máquina é um Reconhecedor de extrema importância pois ela é capaz de alterar símbolos em uma fita de acordo com uma série de regras para guardar devidas informações.

Portanto, conclui-se que, pelas pesquisas, os Sistemas Geradores são os dispositivos formais providos de mecanismos que permitem a geração sistemática das sentenças de uma linguagem, sendo os principais sistemas geradores as Gramaticas podendo se destacar as Gramaticas de Chomsky, e os Sistemas Reconhecedores, por sua vez, os dispositivos formais que nos possibilitam averiguar se uma sentença de uma linguagem pertence ou não a uma determinada linguagem, dispositivos este que podem ser chamados de Autômatos.

Nesse sentido, a teoria da computacional é muito importante nos últimos tempos pelo simples fato de estarmos a cada dia mais conectados com a tecnologia e com isso a necessidade de entender como determinar quais problemas podem ser computados ou não em um dado modelo de computação, uma vez que com a teoria computacional, com o foco nesses sistemas reconhecedores e geradores abordados é possível estudar modelos de computação genéricos que analisam quais problemas jamais poderão ser resolvidos por um computador seja qual for a velocidade ou memória deste.

(35)

35 REFERÊNCIAS

BRAGA, Luis Felipe. Hierarquia de Chomsky. 2006. Disponível em:

<https://pt.wikipedia.org/w/index.php?title=Discuss%C3%A3o:Hierarquia_de_Choms ky&action=edit&redlink=1>. Acesso em: 28 set. 2017

BROOKHEAR, J. G., Teoria da Computação, Linguagem Formal, Automato e Complexidade, Benjamin/Cummings, California, E.U.A., 1989. 278 p.

DELAMARO, Márcio Eduardo. Linguagens Formais e Autômatos. UEM, 1998.

DIVERIO, T. A.; MENEZES, P. B. Teoria da Computação: Máquinas Universais e Computabilidade, Série Livros Didáticos Número 5, Instituto de Informática, da UFRGS, Editora Sagra Luzzatto, 1a edição, 1999.

HARRISON, M. A., Introdução a Teoria Formal da Linguagem, Addison-Wesley, 1978

HOPCROFT, J. E . & ULLMAN, J. D. Formal Languages and Their Relations to Automata – Addison-Wesley, 1969

HOPCROFT, John E.; ULLMAN, Jeffrey D.; MOTWANI, Rajeev. Introdução a Teoria de Autômatos, Linguagens e computação. 2. ed. Rio de Janeiro: Campus, 2002.

157 p

MENEZES, Paulo Blauth. Linguagens Formais e Autômatos: séries Livros Didáticos. 4.ed. Porto Alegre, 2001. 158p.

NETO, João José. A Teoria da Computação e o profissional de informática.

Revista de Computação e Tecnologia. RECET, São Paulo, v.1, n.1, p. 2-7, out 2009.

PAPADIMITRIOU, Harry R. Lewis Christos H. Elementos de Teoria da Computação. 2. ed. Porto Alegre: Artes Médicas Sul Ltda, 2000. 332 p.

PESSOA, Julie. Autômatos Finitos não Determinísticos (AFN) e Determinísticos (AFD). PET NEWS, [S.l.], 13 nov. 2012. Jornal PETNews, p. 1. Disponível em:

<http://www.dsc.ufcg.edu.br/~pet/jornal/junho2014/materias/recapitulando.html>.

Acesso em: 28 set. 2018.

PRADO, Simone G. D., Fundamentação da Teoria da Computação e Linguagens Formais – Apostila, Faculdade de Ciências, 2010.

PRICE, Ana Maria de Alencar; TOSCANI, Simão Sirineo. Implementação de Linguagens de programação: Compiladores.2. ed. Porto Alegre: Sagra Luzzato, 2013. 157 p. (Livros Didádicos).

RAMOS, Marcus Vinícius Midena. Ensino de linguagens formais e autômatos em cursos superiores de computação. Revista de Computação e Tecnologia. RECET, São Paulo, v.1, n.1, 2-13, out 2009.

(36)

36 SILVA, Romulo César, WATANABE, R.; CARRELLI, I. M. Autômato defense 2.0:

reedição de um jogo educacional para apoio em linguagens formais e Autômatos, In: XXI Simpósio Brasileiro de Informática da Educação, Joao Pessoa – PB, 2010.

SIMEONE, Fernando. Hierarquia de Chomsky. 2015. Disponível em:

<https://pt.slideshare.net/fernandosimeone/hierarquia-de-chomsky>. Acesso em: 09 ago. 2018.

Teoria da Computação. 2009. Disponível em:

<https://www.fabriciobreve.com/material/tc/Texto1.pdf>. Acesso em: 08 ago. 2018.

VELOSO, Paulo A. S. Máquinas e Linguagens: Uma introdução à teoria de autômatos. Rio de Janeiro: Escola de Computação, 1979. 330 p.

Referências

Documentos relacionados

Na cidade de Évora, localizam-se dois conventos: o Convento de Nossa Senhora dos Remédios (1606), e o Convento de São José da Esperança (1681), também conhecido por Convento Novo,

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

Por fim, na terceira parte, o artigo se propõe a apresentar uma perspectiva para o ensino de agroecologia, com aporte no marco teórico e epistemológico da abordagem

Fonte: elaborado pelo autor, 2018. Cultura de acumulação de recursos “, o especialista E3 enfatizou que “no Brasil, não é cultural guardar dinheiro”. Ainda segundo E3,..

Essa diferença de requisitos estabelecidos para cada sexo acontece pautada segundo duas justificativas: a capacidade física e a maternidade. Com a cirurgia de mudança de sexo

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às