Академический Документы
Профессиональный Документы
Культура Документы
Linguagem Basico
Fbio Alexandrini
fabalex@ifc-riodosul.edu.br
UNIDAVI/IFC-RIODOSUL
Tiago Boechel
tboechel@gmail.com
IFC-RIO DO SUL
2. ALFABETOS
Um alfabeto um conjunto finito no vazio cujos elementos so chamados de smbolos.
Dessa maneira, os conceitos de smbolo e alfabeto so introduzidos de forma interdependente:
um alfabeto um conjunto de smbolos, e um smbolo um elemento qualquer de um
alfabeto.
At certo ponto, pode-se arbitrar os smbolos que nos interessam, e incluir apenas esses
smbolos no alfabeto. Para cada aplicao especfica, o usurio deve escolher o alfabeto que
pretende utilizar.
Uma cadeia de smbolos em um alfabeto pode ser definida como uma funo;
V = {a, b, c,.,z }
V = {0, 1}
V = {a, e, i, o, u}
3. ALGORITMOS
Um algoritmo uma a sequncia finita de instrues, e define instrues como uma
operao claramente descrita e que possa ser executada em tempo finito.
Um algoritmo nada mais do que uma receita que mostra passo a passo os
procedimentos necessrios para a resoluo de uma tarefa. Em termos mais tcnicos, um
algoritmo uma sequncia lgica, finita e definida de instrues que devem ser seguidas para
resolver um problema ou executar uma tarefa.
Embora voc no perceba, utiliza algoritmos de forma intuitiva e automtica
diariamente quando executa tarefas comuns. Como estas atividades so simples e dispensam
ficar pensando nas instrues necessrias para faz-las, o algoritmo presente nelas acaba
passando despercebido, como exemplo a receita de um bolo (Figura 1);
Figura 1: Algoritmo (receita de bolo)
4. GRAMTICAS
Chomsky definiu quatro tipos de gramticas, 0, 1, 2 e 3, que formam uma hierarquia:
cada gramtica de um tipo tambm dos tipos menores.
Nossa definio no exatamente a mesma usada por Chomsky, mas praticamente
equivalente.
As regras de uma gramtica tipo 0 so regras da forma a b, com a e b quaisquer.
Gramticas tipo 1 so as gramticas com regras da forma a b, em que se exige | a | | b |;
entretanto permitida uma regra que viola esta restrio: uma gramtica tipo 1 pode ter a
regra S e, se S no aparece do lado direito de nenhuma regra.
Gramticas tipo 2 so as gramticas com regras da forma A b, onde A um smbolo
no terminal, e b uma sequncia qualquer de V*, possivelmente vazia.
Gramticas tipo 3 s podem ter regras dos trs tipos descritos a seguir:
A aB, onde A e B so no terminais, e a um terminal;
A a onde A um no terminal, e a um terminal;
A e, onde A um no terminal.
Se uma linguagem tem uma gramtica tipo 0, ela uma linguagem tipo 0; se tem uma
gramtica tipo 1, ela uma linguagem tipo 1, ou uma linguagem sensvel ao contexto, se tem
uma gramtica tipo 2, ela uma linguagem tipo 2, ou uma linguagem livre de contexto; se
tem uma gramtica tipo 3, ela uma linguagem tipo 3, ou uma linguagem regular.
As gramticas tipo 3 so chamadas regulares pela simplicidade da estrutura de suas
linguagens, garantida pelos rgidos formatos de suas regras.
As gramticas tipo 2 so chamadas de livres de contexto porque uma regra A b
indica que o no terminal A, independentemente do contexto em que estiver inserido, pode
ser substitudo por b.
Finalmente, as gramticas tipo 1 so chamadas de sensveis ao contexto.
Figura 2: Hierarquia de Chomsky
5. AUTMATOS
Autmato finito determinstico;
7. ANLISES
Anlise lxica o processo de analisar a entrada de linhas de caracteres e produzir uma
sequencia de smbolos chamados "smbolos lxicos" (tokens), que podem ser manipulados
mais facilmente por um leitor de sada.
Anlise sinttica, assim como as outras referentes lngua, um exerccio muito
prximo da matemtica, pois envolve um raciocnio lgico do tipo: se voc encontrar tal
elemento, ento admita que esse elemento seja um objeto. Promover esse tipo de raciocnio
no estudo das sentenas desenvolver uma anlise formal, porque as categorias sintticas so
formas que no dependem do contedo que expressam. Resumidamente este o processo de
analisar uma sequencia de entrada para determinar sua estrutura gramatical.
Anlise semntica a terceira fase da compilao onde se verifica os erros semnticos,
(por exemplo, uma multiplicao entre tipos de dados diferentes) no programa-fonte e coleta
as informaes necessrias para a prxima fase da compilao.
8. RVORES
So estruturas de dados extremamente teis em muitas aplicaes. Uma rvore
formada por um conjunto finito T de elementos denominados vrtices ou ns de tal modo que
se T = 0 a rvore vazia, caso contrrio tem-se um n especial chamado raiz da rvore (r), e
cujos elementos restantes so particionados em m>=1 conjuntos distintos no vazios, as
subrvores de r, sendo cada um destes conjuntos por sua vez uma rvore. A seguir pode-se
verificar uma arvore de nove ns, sendo (A) a raiz;
Figura 3: Arvore de nove ns sendo (A) raiz
Uma rvore estritamente binria uma rvore binria em que cada n tem 0 ou 2 filhos.
Uma rvore binria cheia uma rvore em que se um n tem alguma sub-rvore vazia ento
ele est no ltimo nvel. Uma rvore completa aquela em se n um n com algumas de
subrvores vazias, ento n se localiza no penltimo ou no ltimo nvel. Portanto, toda rvore
cheia completa e estritamente binria;
As rvores binrias so estruturas importantes toda vez que uma deciso binria deve ser
tomada em algum ponto de um algoritmo. Ao Supor que precisa-se descobrir nmeros
duplicados em uma lista no ordenada de nmeros. Uma maneira comparar cada novo
nmero com todos os nmeros j lidos. Isto aumenta em muito a complexidade do algoritmo.
Outra possibilidade manter uma lista ordenada dos nmeros e a cada nmero lido fazer uma
busca na lista. Outra soluo usar uma rvore binria para manter os nmeros. O primeiro
nmero lido colocado na raiz da rvore. Cada novo nmero lido comparado com o
elemento raiz, caso seja igual uma duplicata e volta-se a ler outro nmero, pode-se verificar
melhor no exemplo:
10. GALS
O GALS uma ferramenta freeware de gerao de analisadores lxicos e sintticos,
dai o seu nome (GALS), seu uso feito atravs de sua interface grfica, com base em
definies regulares e uma gramtica.
Gera os analisadores para trs linguagens ; Java, C++ ou Delphi. Tem a opo de gerar
o analisador lxico, o analisador sinttico ou ambos (GESSER, 2003, p.39).
O download do software GALS pode ser feito no site http://gals.sourceforge.net/ onde
tambm se encontra tutoriais e fruns de como utiliza-lo.
Foi criado por Carlos Eduardo Gesser em seu Trabalho de concluso de curso (TCC)
de cincia da computao na universidade federal de santa catarina, sob orientao do
professor Dr. Olinto Jos Varela Furtado.
Os primeiros passos para a criao de uma estrutura lxica estudam os tokens que sero
reconhecidos pelo analisador.
Antes de especificar de fato os tokens, preciso verificar que a especificao lxica
dividida em duas partes: Definies Regulares e Definio dos tokens, eles so definidos na
segunda parte.
Nas definies regulares so definidas expresses auxiliares, para serem utilizadas em
sua definio. No programa, uso-se vrios tipos de definies regulares, como operadores
relacionais, operadores lgicos, identificadores e nmeros, transformando todos em tokens
incluindo as palavras reservadas que em especiais so o IF e WHILE, e as palavras
necessrias para um bom entendimento do funcionamento desses algoritmos. OBS: no cdigo,
no considerou-se a nomeao das linhas como acontece com o BASIC original, portanto, no
exemplo aparecer como sendo um nmero.
Com os tokens prontos, verifico-se as excees exigidas pela IDE de programao,
podendo verificar o funcionamento da Analise Lxica do cdigo escrevendo o cdigo de teste
(Figura 7):
A=2
IF (A < 3) GOTO 30 ELSE GOTO 50
A=5
WHILE (A<3) GOTO 30
Figura 7: Programa rodando a anlise Lxica
Pode ser utilizado na gramtica qualquer token j declarado como smbolo terminal. Os
smbolos no terminais precisam ser previamente declarados em sua rea especfica, como o
ELSE. Veja o exemplo a seguir(Figura 8):
A=2
IF (A < 3) GOTO 30 ELSE GOTO 50
A=5
WHILE (A<3) GOTO 30
Figura 8: Programa rodando a anlise Sinttica
12. BASICO
Tendo como base os analisadores retirados do GALS, foi possvel a criao de um compilador
utilizando a linguagem JAVA, que consegue interpretar a linguagem que est sendo escrita e
analisa lexica, sinttica e semanticamente. Resultando em um cdigo compilado com sucesso
(Figuras 9,10, 11) ou um cdigo com erro. Alm disso, este compilador permite que o cdigo
escrito seja salvo para us-lo posteriormente.
14. REFERNCIAS
APRENDIZAGEM em matemtica: registros de representao semitica . 7. ed. So Paulo:
Papirus, 2010. 160p. (Papirus educao) ISBN 8530807313.
LIPSCHUTZ, Seymour; LIPSON, Marc. Matemtica Discreta. Porto Alegre, RS: Bookmann,
2013. xi, 471 p. (Coleo Schaum) ISBN 9788565837736.
ROSA, Joo Lus Garcia. Linguagens formais e autmatos. Rio de Janeiro, RJ: LTC, 2010.
146 p. ISBN 9788521617518.