You are on page 1of 13

Ensino de linguagens formais

e autmatos em cursos
superiores de computao
Marcus Vincius Midena Ramos

Vol. I
No. 1

Resumo
Linguagens formais e autmatos uma disciplina fundamental dos
cursos superiores da rea de computao, especialmente daqueles
que apresentam nfase na formao cientfica do aluno, como o
caso dos cursos de bacharelado em Cincia da Computao e de
vrios cursos de Engenharia de Computao. Ela faz parte do ncleo denominado Fundamentos da Computao (conforme o currculo de referncia da Sociedade Brasileira de Computao [1]), e
contempla tpicos que, normalmente, so considerados, pelos alunos, excessivamente ridos, abstratos, complexos e desvinculados
da sua futura realidade profissional, o que contribui para reduzir o
interesse e a motivao pelo seu aprendizado. O objetivo do presente artigo refletir sobre os contedos programticos usualmente
adotados para o ensino do seu contedo, oferecendo alternativas
que possam contribuir para uma melhor assimilao dos tpicos da
disciplina. Inicialmente feita uma anlise da enfoque comumente
adotado para a construo e o desenvolvimento do referido contedo. A seguir, apresentam-se propostas que possam contribuir
para uma maior motivao dos alunos para o estudo da disciplina,
assim como para uma aprendizagem mais eficiente.
Palavras-chave: linguagens formais, autmatos, ensino, aprendizagem.

Abstract
Formal languages and automata theory is a fundamental discipline in undergraduate computer programs, specially those with
emphasis in the scientific education of the student, such as Computer Science and Computer Engineering . The discipline belongs
to the kernel known as Foundations of Computing (according
to the Brazilian Computer Society [1]), and contains a body of
knowledge which is normally considered, by its students, as highly
abstract, complex and unrelated to their future professional activities, thus reducing their interest and motivation for its study. The
objective of the present article is to reflect upon common practices adopted in the development of its contents, presenting some
alternatives that may contribute for a better absorption of the
discipline. It starts with an analysis of the most usual approaches
adopted, and then presents proposals that might contribute for a
higher degree of motivation of the students, as well as for a more
efficient learning process.

UNIVASF Universidade Federal do Vale


do So Francisco
Colegiado do Curso de Engenharia da
Computao
Avenida Antonio Carlos Magalhes,
510 Santo Antnio
Juazeiro BA
CEP 48902-300
marcus.ramos@univasf.edu.br

Keywords: formal languages, automata, teaching, learning.

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

22

1 Introduo
Linguagens formais e autmatos constitui matria considerada clssica na rea da computao,
uma vez que os seus principais resultados foram
consolidados nas dcadas de 1960 e 1970,portanto
h mais de 30 anos. Como resultado, existe um enfoque tambm clssico utilizado na produo de
contedos programticos e de estruturas curriculares voltados para o ensino dessa matria. Textos
didticos (tais como livros, apostilas e apresentaes) costumam adotar enfoques igualmente clssicos, com pouca diferenciao e inovao. Tais
enfoques deixam, por vezes, de explorar caminhos
que podem contribuir para aprimorar a qualidade
da aprendizagem dos alunos. O objetivo do presente artigo analisar o enfoque clssico, apresentando e analisando algumas sugestes para a
construo de contedos programticos (e, consequentemente, tambm, de textos didticos) que
sejam voltados para um ensino de linguagens formais e autmatos mais eficaz e mais estimulador
do aprendizado.

2 Formao terica
O rea da computao tornou-se, em pouco mais
de 60 anos, um verdadeiro universo. O profissional
moderno pode atuar em sub-reas muito diversificadas, as quais requerem conhecimentos especficos e aptides tambm bastante variadas.
Em funo de toda essa diversidade, e tambm
da complexidade a ela associada, os cursos superiores de computao se deparam com o dilema
de procurar, com grandes esforos, acompanhar
as inovaes e as tendncias tecnolgicas da rea,
incorporando-as de alguma forma aos seus currculos, ou, ento, de oferecer aos seus alunos uma
slida formao acadmica, sobre a qual o futuro
profissional possa construir uma tambm slida
carreira, conforme a sub-rea em que pretenda
atuar.
Se, por um lado, os cursos que possuem uma nfase maior nos aspectos tecnolgicos da computao favorecem a empregabilidade do aluno recmformado, por outro lado esses mesmos alunos se
ressentem, medida que o tempo passa, da falta
de uma formao terica mais completa que lhes
permita se renovarem e se manterem competitivos
no mercado de trabalho por mais tempo.
Por esse motivo, o estudo de matrias tericas,
como o caso de Linguagens Formais e Autmatos, no pode ter a sua importncia relativizada na estrutura curricular de cursos que pretendam formar profissionais preparados para enfrentar no apenas os desafios atuais da computao,
mas tambm, e especialmente, aqueles que ainda
esto por vir.
O investimento no aprendizado dos fundamentos da computao significa a garantia de supri-

mento de futuros bons profissionais para a rea,


assim como do desenvolvimento de boas e novas
tecnologias e produtos.
A falta de investimentos, por outro lado, pode
Vol. 1 acarretar prejuzos que vo bem alm da
falta de bons profissionais e das limitaes decorrentes da sua atuao no mercado. Ela pode, no
prazo de alguns anos, provocar uma escassez crtica de professores e pesquisadores com esse perfil,
sem os quais toda e qualquer ao de recuperao na rea ficaria definitivamente comprometida.
Num mundo globalizado, ela pode tambm criar
dependncias de carter cientfico que poderiam
ser nocivas ao pas.
A discusso acerca dos aspectos tericos da
computao, e da forma de ensino dos mesmos,
deve ser, portanto, atual e permanente, no podendo ser relegada a um segundo plano, especialmente quando se percebe que as reas de natureza
tecnolgica esto sempre, e cada vez mais, pressionando por mais disciplinas e mais carga horria
nos cursos de graduao em computao.

Vol. I
No. 1

3 Temas
O corpo de conhecimento contido na rea de linguagens formais e autmatos derivado de duas
sub-reas de conhecimento que eram consideradas de forma independente uma da outra at a
dcada de 1960: linguagens formais, de um lado,
e teoria de autmatos, de outro. Foi a partir das
pesquisas efetuadas e dos resultados obtidos nessa
dcada que se pde estabelecer uma relao mais
direta entre tais sub-reas, as quais foram, a partir
de ento, combinadas numa nica grande rea de
conhecimento e so, nos dias de hoje, consideradas como sendo praticamente indissociveis uma
da outra.
A sub-rea linguagens formais trata da caracterizao, classificao, formalizao e estudo das
propriedades das linguagens estruturadas em frases. O marco inicial dessa sub-rea o trabalho
de Chomsky, um matemtico e lingusta que, em
meados da dcada de 1950, pesquisava a formalizao gramatical de linguagens naturais. Apesar do seu insucesso no cumprimento desse objetivo, ele apresentou uma classificao das linguagens estruturadas em frases, organizada em nveis
de complexidade crescente, que se tornaria referncia fundamental para o estudo das linguagens
formais. Tal classificao passou a ser conhecida
como Hierarquia de Chomsky [2].
Partindo-se da classe de linguagens mais simples em direo classe de linguagens mais complexa (os termos simples e complexa referemse aos diversos aspectos das classes de linguagens consideradas, mas costumam englobar propriedades estruturais, aspectos de formalizao
sinttica, custo do reconhecimento e grau de dificuldade na demonstrao de certas propriedades),

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

23

a Hierarquia de Chomsky contempla: a classe das


linguagens regulares (ou tipo 3); a classe das linguagens livres de contexto (ou tipo 2); a classe das
linguagens sensveis ao contexto (ou tipo 1) e, finalmente, a classe das linguagens recursivamente
enumerveis (ou tipo 0).

de escolha na forma de organizao do material


didtico.

Os trs tipos de tema que podem ser considerados como principais estruturadores de materiais
didticos sobre o assunto so, portanto: (i) as vrias classes de linguagens; (ii) os vrios tipos de
Por se tratar de uma taxonomia de linguagens dispositivos de anlise e (iii) os vrios tipos de
na qual se percebe, naturalmente, uma escala de dispositivos de sntese. Como consequncia, cocomplexidade crescente, e, tambm, devido ao mum encontrar materiais didticos que sejam esfato de que as classes de complexidade inferior truturados em torno de combinaes diversas desesto propriamente contidas nas classes de com- ses trs tipos de tema, sem preocupao especial
plexidade mais elevada, comum considerar a Hi- com relao sua uniformidade.
erarquia de Chomsky como ponto de partida para
No caso de temas escolhidos no universo dos
a organizao de contedos programticos (e ou- dispositivos de anlise, as denominaes tipicatros materiais didticos) para a disciplina lingua- mente adotadas so Autmatos Finitos (disposigens formais e autmatos, adotando-se as diferen- tivos capazes de reconhecer linguagens regulares),
tes classes de linguagens contidas nessa hierarquia Autmatos de Pilha (capazes de reconhecer lincomo principais temas de estudo.
guagens livres de contexto) e Mquinas de TuTal organizao proporciona ao aluno uma in- ring (capazes de reconhecer, com pequenas variatroduo natural aos assuntos da rea e permite es, linguagens sensveis ao contexto, linguagens
que o seu envolvimento acontea de maneira gra- recursivas e linguagens recursivamente enumerdual, medida que o estudo das classes de lingua- veis).
gens mais simples d lugar ao estudo das classes
De maneira similar, temas como Gramticas
de linguagens mais complexas.
Livres de Contexto e Gramticas Sensveis ao
Como as classes de linguagens esto propria- Contexto podem ser encontrados em materiais
mente contidas umas nas outras, o estudo de uma organizados em funo dos tipos de dispositivo de
nova classe a partir da anterior preserva todo o co- sntese. Linguagens Regulares, Linguagens Linhecimento adquirido pelo aluno at aquele mo- vres de Contexto etc so tpicos para temas derimento, e permite o aprendizado incremental da vados das principais classes de linguagens conhematria, em que so estudados apenas os aspectos cidas.
especficos das linguagens contidas na nova classe
Organizar um contedo programtico em torno
e que no existiam na classe anterior.
de temas que correspondam aos nomes das classes
Aps a consolidao da Hierarquia de Chomsky de linguagens ou dos tipos dos dispositivos de sncomo referencial principal para o estudo das lin- tese e anlise correspondentes no constitui, por
guagens formais, novas pesquisas identificaram si s, um obstculo ao aprendizado. Os problemas
diversas novas e importantes classes de lingua- podem surgir quando se adota um enfoque misto,
gens situadas entre aquelas j identificadas por em que partes do material so designados a partir
Chomsky. Entre as mais importantes encontram- dos nomes das classes de linguagens e outros so
se: a classe das linguagens livres de contexto de- designados a partir dos nomes dos correspondenterminsticas e a classe das linguagens recursivas. tes dispositivos de anlise ou sntese.
Por se tratar de classes de linguagens relevantes tanto do ponto de vista terico quanto prtico, pelo menos um subconjunto dessas seis classes de linguagens (regulares, livres de contexto determinsticas, livres de contexto gerais, sensveis
ao contexto, recursivas e recursivamente enumerveis) nomalmente adotado como base para a
seleo dos temas principais que sero desenvolvidos numa disciplina sobre o assunto.
Se, por um lado, a sub-rea de linguagens formais oferece uma perspectiva de estudo baseada
na sntese de cadeias (atravs de dispositivos gramaticais) para o estudo das vrias classes de linguagens, por outro lado a sub-rea de teoria de
autmatos oferece uma perspectiva de estudo baseada na anlise de cadeias (atravs de dispositivos de reconhecimento) com o mesmo objetivo.
Naturalmente, a equipotncia dos dispositivos de
sntese e de anlise para cada classe de linguagens considerada permite uma grande liberdade

No incomum encontrar casos, por exemplo,


com a seguinte sequncia de temas: (i) Linguagens Regulares, (ii) Linguagens Livres de Contexto e (iii) Mquinas de Turing. A deciso,
nesse caso, normalmente justificada pelo fato de
que, atravs das Mquinas de Turing possvel
definir e discorrer sobre trs classes de linguagens,
todas elas de complexidade superior classe das
linguagens livres de contexto.
Do ponto de vista pedaggico, esse enfoque
cria dificuldades para o aluno, uma vez que os
principais elementos de estruturao do texto (ou
seja, os seus temas) possuem naturezas diferentes (classes de linguagens e dispositivos de reconhecimento) contribuindo assim para uma menor
uniformidade na apresentao do contedo.
O recomendado, num caso como esse, seria
manter o conceito classe de linguagens como
sendo a natureza de todos os temas principais,
procurando abstrair as vrias verses da Mquina

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

Vol. I
No. 1

24

de Turing conforme a classe de linguagens que estiver sendo discutida.

cia mais localizada e de natureza distinta, contribuindo assim para uma melhor compreenso do
Assim, por exemplo, o tema sobre linguagens contexto no qual se desenvolve o contedo.
sensveis ao contexto poderia ser desenvolvido sobre Mquinas de Turing com fita limitada, o tema
sobre linguagens recursivas sobre Mquina de Tu- 4 Subtemas
ring que sempre param e, finalmente, o tema sobre
linguagens recursivamente enumerveis sobre M- A escolha, a denominao e o sequenciamento dos
quinas de Turing que podem ou no parar quando subtemas que so discutidos dentro de cada tema
a cadeia de entrada no pertence linguagem em so igualmente importantes para motivar o aluno,
facilitar a sua contextualizao em relao resquesto.
tante do assunto e orientar o seu estudo.
Trata-se, sem dvida, de um desenvolvimento
Quando se trata da organizao interna dos teum pouco mais trabalhoso, se comparado com o
tradicional, no qual adota-se como ponto de par- mas de um material didtico sobre linguagens fortida a Mquina de Turing geral para depois criar- mais e autmatos, no existe uma estrutura conse verses restritas, derivando-se delas as subclas- ceitual padro que possa servir como referncia
ses de linguagens correspondentes. A estratgia para o seu desenvolvimento. Por outro lado, os
proposta, no entanto, garante uma absoro gra- subtemas que so discutidos dentro de cada tema
dual e sempre justificada do contedo apresen- so considerados clssicos e h pouca variao em
tado, sem mudanas bruscas dos conceitos funda- relao ao que se encontra num ou noutro texto
mentais orientadores do estudo e sem antecipaes da rea. Por esse motivo, usual se trabalhar com
de assuntos que so, no fundo, dispensveis para grande liberdade na gerao do contedo, porm
nem sempre o resultado favorece a construo de
discutir a classe de linguagens sob foco.
Situaes similares a essa acontecem quando uma viso, e portanto de um entendimento, estruturados por parte do aluno.
so escolhidos, como temas principais, termos
Considera-se, normalmente, que cada classe de
de naturezas distintas que designam, alm dos
linguagens
tem as suas caractersticas e o seu prtipos j citados, outros tpicos relacionados s
prio
conjunto
de subtemas que devem ser discuticlasses de linguagens, como por exemplo: (i) as
dos
no
contexto
da prpria classe. Pouca ateno
suas propriedades gerais (questes decidveis, procostuma
ser
dada
s possibilidades de construo
priedades de fechamento etc); (ii) as suas prode
um
roteiro
que
possa
ser replicado para diferenpriedades especficas (minimizao de autmatos
tes
classes
de
linguagens,
o que poderia contribuir
finitos,pumping lemmasetc);ou (iii) particularipara
uma
melhor
percepo
dos subtemas que so
dades de uma determinada classe de linguagens
comuns
e
daqueles
que
so
especficos
para as di(como o caso da decidibilidade).
versas classes de linguagens consideradas.
A superao desse obstculo conceitual pode
Uma anlise preliminar de tais subtemas, no
ser alcanada se for possvel atingir um elevado
grau de uniformizao na denominao dos te- entanto, revela que, para as classes de linguamas principais, considerando-se apenas conceitos gens consideradas anteriormente, todos os seguinde mesma natureza, de preferncia conceitos de tes subtemas so presentes e relevantes, podendo
maior abrangncia e que englobem outros que lhe assim constituir o alicerce para uma organizao
so naturalmente subordinados ou especializados. mais estruturada do material didtico, independentemente da classe de linguagens considerada
Sugere-se, como alternativa, que os temas prin(com uma ou outra exceo): (i) propriedades escipais sejam denominados a partir das classes de
truturais; (ii) formalizao gramatical; (iii) molinguagens que se deseja apresentar, iniciando-se
com a mais simples e terminando com a mais delo de reconhecimento; (iv) equivalncia entre os
formalismos de representao de linguagens; (v)
complexa. Todos os demais assuntos relacionados
principais propriedades; (vi) a relao da classe
(dispositivos de sntese, dispositivos de anlise,
propriedades etc) podem facilmente ser acomoda- corrente com a classe de linguagens precedente
(consideradas numa escala de complexidade cresdos dentro de uma estrutura de tpicos (doravante
cente) e, finalmente, (vii) a demonstrao da exisdenominados subtemas) que contemple no apetncia de linguagens que no pertencem classe de
nas os aspectos genricos mas tambm os aspectos
linguagens corrente (como fator motivador para a
especficos das classes de linguagens consideradas.
apresentao da classe de linguagens seguinte).
Dessa forma, o ponto de partida para o estudo
Considere-se, por exemplo, a classe das linguaser sempre uma classe de linguagens, e todos os
gens livres de contexto. De acordo com o enfodetalhes a ela relacionados ficam dentro dela enque proposto, uma possvel sequncia de apresencapsulados e a ela subordinados. O sequenciatao dos subtemas relacionados a essa classe de
mento de temas, nessa proposta, evita que o foco
do leitor seja deslocado do conceito mais funda- linguagens, e que ainda guardam relao com subtemas equivalentes para as outras classes de linmental a classe de linguagens que est sendo
guagens, seria: (i) balanceamento de termos (aniestudada para outros conceitos de abrangnnhamento); (ii) gramticas livres de contexto; (iii)

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

Vol. I
No. 1

25

autmatos de pilha; (iv) equipotncia dos autmatos de pilha com as gramticas livres de contexto (no que se refere capacidade de representao de linguagens livres de contexto); (v) questes decidveis e propriedades de fechamento (das
linguagens livres de contexto); (vi) demonstrao
de que a classe das linguagens regulares est propriamente contida na classe das linguagens livres
de contexto e (vii) demonstrao de que existem
linguagens que no so livres de contexto (atravs
do Pumping Lemma para as linguagens livres de
contexto).
De maneira semelhante, roteiros equivalentes
podem ser desenvolvidos para as demais classes
de linguagens.

Situao semelhante acontece com o estudo das


formas normais para gramticas, no importando
se se trata da classe das linguagens regulares ou
ainda das classes das linguagens livres de contexto,sensveis ao contexto ou recursivamente enumerveis.
Essa proposta evidencia, por outro lado, a inexistncia de um Pumping Lemma para a classe
das linguagens sensveis ao contexto e, tambm,
a inexistncia de um subtema que discuta a minimizao de autmatos de pilha. Isso, do ponto
de vista pedaggico, pode ser bem explorado pelo
professor e tambm pelo aluno.
Sugere-se, portanto, que a escolha e a ordenao dos subtemas a serem discutidos no contexto
de cada classe de linguagens seja feita de forma
que, num primeiro momento, se estabelea uma
correlao direta com subtemas de mesma natureza quando estes ocorrerem em classes diferentes
de linguagens e, num segundo momento, se evidencie os subtemas que so especficos para uma
ou mais classes de linguagens.

Vol. I
No. 1

Se, por um lado, a escolha de um conjunto padro de subtemas a ser desenvolvido para cada
classe de linguagens colabora de maneira significativa para o melhor entendimento acerca da natureza de cada subtema e tambm da maneira como
ele contextualizado em cada classe de linguagens, por outro lado fato que existem outros
subtemas que so especficos de um grupo reduAtravs da percepo das semelhanas e tamzido de classes de linguagens,ou mesmo pertinen- bm das diferenas entre os subtemas que comtes a uma nica classe de linguagens.
pem o corpo de conhecimento acerca de cada
Pode-se citar como exemplo, entre outros, os classe de linguagens, o aluno instrumentado de
subtemas transdutores finitos e a minimizao de forma que ele possa, em cada momento do seu
autmatos finitos (para a classe das linguagens estudo, compreender de forma contextualizada a
regulares), rvores de derivao e ambiguidade relevncia e a abrangncia de cada tpico que lhe
(para a classe das linguagens livres de contexto) apresentado, o que naturalmente contribui para
e decidibilidade (para a classe das linguagens re- uma melhor absoro do contedo.
cursivamente enumerveis).
Nesses casos, a harmonizao de tais subtemas
especficos, juntamente com os subtemas que sejam comuns a todas as demais classes de linguagens, pode produzir o efeito de fazer com que o
aluno tenha uma melhor percepo das particularidades encontradas em cada classe de linguagens
estudada, ou seja, das caractersticas e propriedades que so nicas em cada classe (ou subconjunto
de classes).

5 Demonstraes
No raro encontrar materiais didticos que deixam para o leitor a tarefa, nem sempre fcil, de
completar a demonstrao de certos teoremas.

Tal recurso pode ser considerado didtico


quando a disciplina prepara o aluno, at o ponto
em que a exigncia apresentada, com as ferraTal organizao favorece, do ponto de vista pe- mentas necessrias obteno de uma soluo que
daggico, uma compreenso mais clara acerca da seja possvel de ser alcanada de forma individual
natureza dos subtemas que so discutidos para e sem esforos exagerados.
cada classe de linguagens, e instiga o aluno a deAlm disso, h que se considerar a prpria nasenvolver mecanismos mentais de entendimento tureza dos teoremas cujas demonstraes so enque sejam similares a outros previamente constru- tregues ao aluno. Quando se trata de teoremas
dos, ou totalmente novos e independentes, con- menores, secundrios no desenvolvimento do conforme os subtemas estudados possuam naturezas tedo, ou mesmo de teoremas cuja demonstrao
idnticas ou totalmente distintas de outros ante- de baixa complexidade, no h dvida de que
riormente estudados.
esse um recurso de aprendizagem vlido.
Assim, por exemplo, acontece com o estudo dos
Nesses casos, ele pode ser considerado como insPumping Lemma. O mecanismo mental desen- trumento de motivao para o aluno e imporvolvido pelo aluno para compreender o Pumping tante como mecanismo pedaggico.
Lemma para as linguagens regulares semelhante
Quando, por outro lado, as demonstraes
ao que ele desenvolve para compreender o Pum- pedidas ao aluno so relativas a teoremas de
ping Lemma para as linguagens livres de contexto grande importncia no desenvolvimento da disci(finitude do nmero de estados em um autmato plina,ou,ainda, quando elas necessitam um instrufinito versus finitude do nmero de smbolos no- mental e uma bagagem normalmente no enconterminais em uma gramtica livre de contexto).
tradas em estudantes que se deparam pela pri-

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

26

meira vez com a matria, ento o efeito obtido


ser justamente o contrrio. O aluno incapaz de
efetuar as demonstraes solicitadas sente-se frustrado e, naturalmente, desmotivado a seguir em
frente com os seus estudos.
A fim de se evitar a ocorrncia de problemas de
aprendizagem como consequncia de demonstraes incompletas ou mesmo inexistentes, convm
que todos os principais teoremas sejam demonstrados no prprio material didtico ou no decorrer
das atividades de ensino.
Como exemplos de teoremas que costumam ter
a sua demonstrao relegadas (pelo menos parcialmente) a um segundo plano, pode-se citar a
equipotncia plena (portanto bidirecional) entre
cada um dos principais formalismos utilizados na
representao de linguagens regulares (gramticas lineares, autmatos finitos e expresses regulares), a demonstrao da existncia da forma
normal A para gramticas sensveis ao
contexto, a demonstrao da equivalncia entre
a classe das linguagens aceitas por Mquinas de
Turing com fita ilimitada e daquelas geradas pelas gramticas irrestritas e ainda a demonstrao
da existncia de linguagens estruturadas em frases
que no so recursivamente enumerveis.

6 Intuio e redundncias
A aquisio de um conhecimento uma tarefa
complexa que pode ser simplificada quando se faz
uso de dois mecanismos complementares importantes: explicaes que apelam para a intuio do
aluno e o emprego de formas alternativas para se
apresentar um mesmo assunto ou resultado.
Os materiais didticos da rea de linguagens
formais e autmatos adotam, normalmente, uma
linguagem matemtica (e portanto rida),que requer grande capacidade de abstrao e raciocnio
lgico do aluno. Se, por um lado, essa caracterstica no pode ser mudada na sua essncia (pois
a matemtica, especialmente a matemtica discreta, a base para todo o corpo de conhecimento
desenvolvido acerca do assunto), por outro lado
fato que, por trs de todo formalismo, dispositivo algbrico ou demonstrao de algum teorema,
existe uma fundamentao que pode ser traduzida em termos mais coloquiais, sem prejuzo para
o rigor matemtico necessrio ao seu desenvolvimento, e que colabora de forma significativa para
uma melhor compreenso dos assuntos que esto
sendo apresentados.
Dessa maneira, constitui boa prtica acrescentar, ao lado das demonstraes matemticas formais,textos em linguagem natural, exemplos que
de alguma forma remetam s experincias ou conhecimentos prvios do aluno, a comparaes com
resultados ou assuntos similares encontrados na
mesma rea ou em outras reas do conhecimento,
e o que mais se julgar conveniente, de modo que,

juntamente com o rigor dos formalismos empregados, o aluno tenha mais e melhores condies
de inferir sobre o que se pretende demonstrar, fixando com mais convico os resultados e despertando para correlaes nem sempre bvias que
possam existir entre o tpico estudado e outros
que faam parte do mesmo corpo de conhecimento
ou mesmo de disciplinas distintas.
O emprego de redundncias tambm contribui
com esses objetivos. Certos teoremas podem ser
demonstrados atravs da anlise de um ou mais
algoritmos que produzem o resultado desejado.
Por exemplo, a eliminao de transies em vazio
em autmatos finitos, a minimizao de autmatos finitos e a demonstrao da equipotncia entre
autmatos de pilha no-determinsticos e gramticas livres de contexto podem ser feitas atravs
de mais de um algoritmo diferente em cada caso.
Nessas situaes, a escolha de apenas um algoritmo em cada caso suprime, para o aluno, a
possibilidade de comparar solues, compreender
melhor a natureza de cada uma delas e, finalmente, considerar a possibilidade de desenvolver
a sua prpria soluo.
O uso de redundncias um recurso didtico
que pode ser decisivo e ajudar muito o aluno que,
por um motivo qualquer, s vezes enfrenta obstculos de difcil transposio se o caminho que lhe
oferecido nico. Nem sempre o que considerado mais claro, mais simples ou mais didtico
pelo professor percebido da mesma forma pelo
aluno, uma vez que tais adjetivos no possuem
um sentido objetivo e, geralmente, o seu significado decorre das experincias prvias vividas pelo
indivduo em questo.

Vol. I
No. 1

No obstante, no raro encontrar desenvolvimentos, ou mesmo materiais didticos, nos quais


a complexidade algbrica e dos formalismos relegada a um segundo plano, e a apresentao da
teoria reduzida a uma mera enumerao de resultados, ou pouco mais do que isso.Tal estratgia prejudica a formao de bons profissionais, e
tambm de futuros pesquisadores, e no deve ser
incentivada.

7 Temas relacionados
Certos tpicos no so direta ou obviamente relacionados. Em alguns casos, no entanto, um enfoque que desvende relaes menos bvias entre esses tpicos, relacionando-os de alguma forma no
usual ou no tradicional, pode contribuir, e muito,
para um melhor entendimento de ambos os assuntos, eventualmente alargando as fronteiras de viso do aluno para alm do trivial.
Isso acontece, por exemplo, com as questes decidveis das linguagens livres de contexto e quando
a questo A cadeia w pertence linguagem L?
apresentada ao aluno. O encaminhamento natural
da resposta para essa questo consiste na apresen-

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

27

tao de um algoritmo que, aceitando como entrada uma gramtica livre de contexto na Formal
Normal de Greibach, gera sempre como sada uma
resposta (afirmativa ou negativa) para a questo
acima.
Se essa estratgia contempla uma soluo satisfatria para a questo apresentada, por outro lado
fato que, nesse estgio do estudo, a insero de
tpicos contendo uma introduo ao tema da anlise sinttica bem-vindas, pois eles guardam uma
relao direta com a questo formulada.
Se adotada, essa estratgia permite que o aluno
compreenda melhor a abrangncia e a profundidade de uma questo aparentemente simples e sem
maiores consequncias, e, alm disso, entenda a
origem de toda uma tecnologia que foi desenvolvida com o objetivo de produzir solues eficientes
para a resposta dessa mesma pergunta. Em adio, podese introduzir as classes das linguagens
LL(k) e LR(k), mostrando a relao delas com
as demais classes de linguagens consideradas, em
particular a classe das linguagens livres de contexto. Como resultado, verifica-se que a explorao conjunta dessas dois tpicos contribui para
fortalecer a compreenso de ambos.

que ensejam duas parties da classe das linguagens livres de contexto. E a pergunta que surge
naturalmente : Qual a relao que existe entre
essas parties?.
Uma investigao um pouco mais cuidadosa [3]
permite concluir, no entanto, que a classe das
linguagens livres de contexto determinsticas est
propriamente contida na classe das linguagens livres de contexto no-ambguas. Ou seja, (i) toda
linguagem determinstica tambm no-ambgua;
(ii) nem toda linguagem no-ambgua pode ser
reconhecida de forma determinstica e (iii) existem linguagens que so, simultaneamente, inerentemente ambguas e no-determinsticas.

Portanto, a classe das linguagens livres de contexto pode ser considerada a partir de trs outras subclasses propriamente contidas umas nas
outras, e todas elas de grande importncia prtica
e terica:a subclasse das linguagens determinsticas descendentes LL(k), a subclasse das linguagens determinsticas ascendentes LR(k), que corresponde tambm classe das linguagens livres de
contexto determinsticas, e a subclasse das linguagens no-ambguas, esta ltima contida propriamente na classe das linguagens livres de contexto
Outra situao que pode ser explorada de forma gerais.
semelhante refere-se ao estudo dos temas ambiguiTal enfoque, no usualmente adotada no endade e no-determinismo em linguagens livres de sino de linguagens formais e autmatos, associa
contexto, dois assuntos encontrados normalmente dois conceitos aparentemente desconexos (deterna maioria dos materiais didticos da rea de lin- minismo e ambiguidade) e produz resultados que
guagens formais. A explorao da relao entre fazem com que o leitor tenha melhor domnio e
eles, no entanto, no encontrada com tanta fa- compreenso sobre ambos, entendendo vrios dos
cilidade.
seus desdobramentos, como por exemplo a definiA definio de gramticas e de linguagens amb- o natural de outras classes de linguagens, alm
guas, em particular de linguagens inerentemente das inicialmente consideradas.A alternativa (ou
ambguas (ou seja, aquelas para as quais no exis- seja,a no explorao dessa correlao) simplestem gramticas que no sejam ambguas), conduz mente deixa de contribuir para uma maior solidez
naturalmente a um particionamento da classe das e abrangncia do aprendizado do aluno.
linguagens livres de contexto entre (i) o subconjunto das linguagens que so inerentemente ambguas e (ii) o subconjunto das linguagens que so, 8 Pesquisas anteriores e atuais
por assim dizer, no-ambguas (ou seja, aquelas
para as quais possvel identificar pelo menos uma A rea de linguagens formais e autmatos
gramtica que as gerem e que no sejam amb- desenvolveu-se principalmente nas dcadas de
1960 e 1970, quando pesquisadores no mundo inguas).
teiro voltaram as suas atenes para as questes
Por outro lado, a definio de determinismo
em aberto da rea, conseguindo produzir os retambm conduz a uma partio da classe das linguagens livres de contexto. Nesse caso, entre o sultados mais importantes que so conhecidos e
usados nos dias hoje. Por esse motivo, a rea
subcojunto das linguagens para as quais posentendida como sendo formada por um corpo de
svel identificar pelo menos um autmato de piconhecimento slido e estvel, em torno do qual
lha determinstico que as reconhea (as chamapouco se pode fazer em termos de inovao, includas linguagens livres de contexto determinsticas) e o subconjunto das linguagens para as quais sive e principalmente do ponto de vista pedaggico.
isso no possvel (ou seja, linguagens que poIsso, no entanto, no precisa ser necessariadem ser reconhecidas apenas atravs de autmamente
verdade.Tal viso desconsidera os seguintos de pilha no-determinsticos), tambm conhetes
fatos:
(i) que parte do grande volume de cocida como classe das linguagens livres de contexto
nhecimento
produzido nos anos passados no est
no-determinsticas.
presente de forma significativa nos contedos proDeterminismo (ou no-determinismo) e ambigramticos e nos materiais didticos atuais; e (ii)
guidade (ou no-ambiguidade) so dois conceitos
que os resultados das pesquisas atuais no so se-

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

Vol. I
No. 1

28

quer citados nesses mesmos materiais.

des vantagens para o aluno.

Se, por um lado, fato que os conhecimentos


que so gerados ao longo de anos de pesquisa devem sempre ser relativizados, priorizados, depurados e sintetizados, para dessa forma compor uma
disciplina moderna e consistente, formada apenas
por material relevante para a teoria e/ou para a
prtica profissional, por outro lado no se pode
deixar de observar que muitos dos tpicos que hoje
so considerados ultrapassados na rea ainda podem ter um papel importante como recurso didtico, com grande benefcios para o aprendizado de
linguagens formais e autmatos.
Um exemplo disso so os estudos que foram feitos acerca de gramticas com derivaes controladas [4] (como o caso das gramticas controladas
por linguagens regulares, das gramticas matriciais, das gramticas programadas ou ainda das
gramticas periodicamente variantes no tempo).
Trata-se de formalismos gramaticais livres de contexto que, atravs de algum tipo de mecanismo
de extenso relativamente simples, tornam-se capazes de representar linguagens sensveis ao contexto.
De especial relevncia o caso das gramticas
livres de contexto com derivaes controladas por
linguagens regulares. Do ponto de vista didtico,
trata-se de dois formalismos clssicos, que so estudados em qualquer curso tradicional de linguagens formais e autmatos. No entanto, uma simples combinao desses formalismos resulta num
terceiro e novo formalismo, potente o suficiente
para representar linguagens de uma classe hierarquicamente superior, sem, portanto, a necessidade
de se recorrer a formalismos mais complexos como
o caso das gramticas de atributos, das gramticas de dois nveis ou mesmo das gramticas sensveis ao contexto tradicionais que, em qualquer
caso, apresentam um nvel de sofisticao que desestimula o aluno.
Ao resgatar e introduzir assuntos antigos nos
contedos programticos atuais, como o caso das
gramticas com derivaes controladas, o aluno
favorecido em vrios aspectos. Ele: (i) percebe
como simples combinao de outros formalismos
j conhecidos pode resultar em novos formalismos
mais poderosos, e se sente estimulado a raciocinar
de forma similar em outros contextos; (ii) constri a sua compreenso de um assunto novo (no
caso, a representao sinttica formal de linguagens sensveis ao contexto) a partir da compreenso de formalismos previamente estudados e de
complexidade relativamente simples. Apesar da
pouca divulgao nas salas de aula, e tambm nos
materiais didticos de apoio produzidos, existem
muitos resultados de pesquisa atual na rea que,
se forem apresentados de forma comedida, apoiados em fundamentaes de clara percepo pelo
aluno e relacionados com os tpicos clssicos da
disciplina, podem ser explorados sem grandes dificuldades no ambiente de aprendizagem, com gran-

representativo o caso dos autmatos de pilha estruturados [5], formalismo desenvolvido para
permitir a construo de reconhecedores sintticos
que apresentam vantagens importantes, inclusive
didticas, quando comparados com os tradicionais
autmatos de pilha.
Organizado na forma de mltiplas submquinas mutuamente recursivas, esse formalismo apresenta, como principais vantagens: (i) uma maior
eficincia de execuo (pois a pilha utilizada apenas quando isso for estritamente necessrio, ou
seja, no reconhecimento de construes aninhadas, operando como um autmato finito quando
esse no for o caso), e (ii) a possibilidade de se
criar projetos e implementaes modulares, com
ganhos em termos de legibilidade e de manuteno.
Um outro exemplo so as pesquisas atuais sobre dispositivos adaptativos [6], as quais podem
ser aplicadas a dispositivos de natureza diversa,
como o caso das gramticas e dos autmatos.

Vol. I
No. 1

A insero de tpicos sobre gramticas e autmatos adaptativos num texto introdutrio sobre
linguagens formais e autmatos pode trazer os
seguintes benefcios para o aluno: (i) demonstra, como nos casos das gramticas controladas
por regras e dos autmatos de pilha estruturados, que a concepo de novos formalismos com
base nos formalismos tradicionais pode ser vantajosa sob inmeros aspectos, especialmente os
de carter mais prtico (facilidade de construo
e eficincia da operao); (ii) demonstra que a
rea ainda objeto de pesquisas e que ela constitui,portanto,campo frtil para a atuao de futuros jovens pesquisadores.
Naturalmente que a idia no esgotar todos
os principais resultados de uma linha de pesquisa
atual (qualquer que seja ela) num material ou
numa atividade didtica de carter introdutrio,
at porque esse no o seu objetivo principal. No
entanto, a simples citao, apresentao e exemplificao de alguns resultados mais importantes
de uma linha de pesquisa moderna pode ter um
efeito altamente motivador sobre o aluno, criando
perspectivas positivas para o aprofundamento do
seu estudo e propiciando uma melhor compreenso dos conceitos da teoria clssica.
Recomenda-se, portanto, manter sempre em
vista o conhecimento gerado no passado, muitas
vezes deixado perdido no tempo e no espao, mas
ainda assim capaz de contribuir para uma aprendizagem mais eficaz no momento atual, e tambm
o conhecimento gerado no presente, muitas vezes
de circulao restrita, mas, apesar disso, maduro
o suficiente para se relacionar com o conhecimento
tradicional, proporcionando ao aluno mais e melhores instrumentos de aprendizagem.

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

29

9 Experimentao
comum que os materiais e as atividades didticas de linguagens formais e autmatos adotem um
enfoque essencialmente algbrico, o que exige dos
alunos no apenas uma boa formao matemtica
mas tambm, e principalmente, uma grande capacidade de raciocno lgico e abstrato. Por esse
motivo, os estudantes de tais textos precisam lidar com um nvel de complexidade adicional, alm
daquele que inerente aos assuntos da rea, para
conseguir bons resultados na disciplina.
No raro, por outro lado, encontrar enfoques
que buscam superar essas dificuldades atravs do
uso de ferramentas computacionais que permitem
ao aluno vivenciar, em ambientes de simulao,
os principais conceitos vistos na teoria. Ao contemplar o estudante com uma estratgia didtica
complementar e alternativa em relao quela exclusivamente algbrica, criam-se as condies para
que, atravs de perspectivas diferentes, ele obtenha um nvel de compreenso mais completo em
relao matria.
A categoria mais comum de dispositivos empregados para essa finalidade so os simuladores, sejam eles grficos ou no. Um simulador um programa de computador que permite ao aluno construir dispositivos computacionais que reproduzam
comportamentos equivalentes aos dos dispositivos
algbricos estudados na teoria.
Dessa forma, possvel experimentar com gramticas, reconhecedores, transdutores ou outros
formalismos abstratos (como por exemplo expresses regulares), bem como verificar suas propriedades (por exemplo, determinar se a linguagem
aceita por um autmato finito vazia ou no) ou
aplicar algoritmos de mapeamento (por exemplo
para a minimizao de autmatos finitos).
A diferena entre o uso de um ambiente grfico
ou no-grfico (baseado em texto apenas) consiste
na facilidade com que o usurio consegue criar,
visualizar e modificar os seus modelos para, em
seguida, aplicar sobre eles um conjunto normalmente bsico e predefinido de operaes disponibilizadas pelo simulador.
Um simulador de gramticas livres de contexto
poderia, por exemplo, alm de verificar a sintaxe
da gramtica fornecida como entrada, oferecer ao
usurio operaes que lhe permitissem, por exemplo, gerar de forma aletria sentenas pertencentes
linguagem por ela definida, montar rvores de
derivao, detectar a existncia de smbolos inteis e inacessveis, simplificar a gramtica e obter uma forma normal qualquer equivalente. Conforme o tipo de formalismo, a lista pode ser tornar
relativamente extensa.
De especial interesse, quando se trata da simulao de autmatos (finitos, de pilha, Mquinas
de Turing, etc), so os simuladores grficos, que
permitem ao usurio um grande conforto na edi-

o e visualizao dos dispositivos. Atravs de


menus, janelas e botes, e usando principalmente
as aes de clicar e arrastar com o mouse, o usurio consegue facilmente construir o seu dispositivo,
deixando-o pronto para a aplicao das operaes
disponibilizadas pela ferramenta. So diversas as
ferramentas existentes com esse objetivo, mas talvez a mais conhecida seja o JFLAP [7].
Os simuladores (sejam eles grficos ou no) servem como importante instrumento de aprendizagem e contribuem de forma decisiva para uma melhor compreenso dos aspectos dinmicos dos dispositivos estudados (como, por exemplo, a transio entre estados com consumo de smbolo num
autmato finito, ou a derivao de uma forma sentencial numa gramtica), e servem tambm para a
visualizao do resultado da aplicao prtica de
algoritmos de transformao ou de mapeamento
de dispositivos (como por exemplo a eliminao
de no-determinismos em autmatos finitos ou a
obteno de expresses regulares a partir de autmatos finitos).

Vol. I
No. 1

Seja como auxlio para analisar um comportamento de um dispositivo ou de um mtodo, seja


como recurso para validar as respostas de exerccios propostos ou ainda como ferramenta para
explorao de conceitos obscuros da teoria, o fato
que tais simuladores oferecem ajuda significativa
para o aluno que, de outra forma, estaria limitado
s representaes algbricas e sua prpria capacidade de raciocnio e de abstrao.
Uma outra vantagem derivada dessa estratgia
consiste no fato de que o aluno de computao
passa a utilizar uma ferramenta computacional
para estudar a matria, o que normalmente serve
como elemento de estmulo para o seu aprendizado.
Apesar de todas essas vantagens, tais simuladores limitam a capacidade de experimentao do
usurio final, a qual costuma acontecer apenas
dentro das possibilidades previstas pelo desenvolvedor da prpria ferramenta.
Assim, por exemplo, o usurio encontra sua
disposio um conjunto limitado e fechado de dispositivos sobre os quais pode realizar simulaes.
Alm disso, para cada tipo de dispositivo previsto, ele pode realizar apenas os experimentos
preconcebidos, devendo se satisfazer com os mesmos. Suponha-se, como exemplo, que um certo
simulador permita ao usurio construir modelos
de linguagens regulares.
Suponha-se tambm que ele oferea ainda uma
srie de operaes sobre tais modelos. Mas
imagine-se que o usurio deseja experimentar com
questes decidveis das linguagens regulares, em
particular sobre linguagens que sejam vazias, finitas ou infinitas. Se a ferramenta no oferecer
suporte para esse tipo de experimentao, nada
poder ser feito no mbito da simulao e o usurio dever se contentar com a forma tradicional

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

30

para a fixao do contedo.

como estmulo para o aluno, na medida em que ele


pode relacionar o contedo da mesma com o de
outras disciplinas; (iii) permite a experimentao
associada realizao de projetos e construo
de artefatos de software.
Apesar de todas as vantagens apresentadas, o
emprego de simuladores, sejam eles grficos ou
Como alternativa, sugere-se o uso de ambientes no, fechados ou abertos, deve sempre ser feito
de simulao abertos (em contraposio aos si- de modo criterioso, a fim de no preterir o penmuladores fechados), nos quais o usurio, alm samento algbrico do aluno. Se usadas de forma
de poder utilizar os seus modelos predefinidos, ampla e sem planejamento, tais ferramentas poexperimentando-os luz de um conjunto de opera- dem induzir uma espcie de preguia mental que
es tambm prefinidas, pode ainda: (i) criar no- prejudica o alcance dos objetivos da disciplina.
vas operaes para modelos predefinidos; (ii) modificar operaes preexistentes para modelos predefinidos e (iii) definir novos modelos de dispo- 10 Estudos de caso
sitivo, atribuindo-lhes um conjunto de operaes
A organizao da disciplina Linguagens Formais
iniciais.
e Autmatos em torno de temas e subtemas que
Simuladores com essas caractersticas podem
apresentem uma certa uniformidade e, especialainda beneficiar os seus usurios na medida em
mente, que sejam organizados de forma hierrque os modelos e operaes que constituam o seu
quica, permitindo ao aluno identificar afinidades
ncleo inicial faam parte de um projeto estrutuentre eles, pode ser, conforme visto nas sees anrado, coerente e bem documentado, que permita
teriores, um grande facilitador do aprendizado.
especializaes e reaproveitamento de cdigo com
Na prtica, no entanto, as principais referncias
facilidade e naturalidade. Dessa forma, o usurio
de estruturao curricular para essa disciplina no
compreende melhor o projeto do conjunto de morefletem tal viso.
delos iniciais, entende a sua fundamentao e as
Um exemplo disso pode ser encontrado no
suas relaes internas e externas, e percebe as posComputing
Curricula 2001 Computer Science
sibilidades de desenvolvimento que eles oferecem,
[8],
uma
referncia
da ACM (Association for Comsentindo-se estimulado para criar novos modelos e
puting
Machinery)
para a elaborao de currculos
novas operaes baseadas nas j existentes.
para cursos de Cincia da Computao.
Tal estratgia serve, em ltima instncia, para
Nesse documento, o tpico Teoria de Autmaque alunos e professores possam aprender no apenas a partir de um conjunto predefinido de mode- tos definido dentro da rea Algoritmos e Comlos e operaes, mas tambm, e principalmente, a plexidade, e possui a seguinte relao de unidapartir do projeto, implementao e testes de novos des sugerida: (i) autmatos finitos determinsmodelos e das suas respectivas operaes. Cria-se, ticos; (ii) autmatos finitos no-determinsticos;
assim, a possibilidade estimulante de se trabalhar (iii) equivalncia entre autmatos finitos determicom projetos e atividades de laboratrio numa dis- nsticos e no-determinsticos; (iv) expresses regulares; (v) pumpimg lemma para a expresses
ciplina de carter essencialmente terico.
regulares; (vi) autmatos de pilha; (vii) relao
No bastassem essas vantagens, a estratgia
entre autmatos de pilha e gramticas livres de
proposta permite a explorao de um outro ascontexto; (viii) propriedades de gramticas livres
pecto, de carter mais prtico, e portanto de esde contexto; (ix) MquinasdeTuring; (x) Mquipecial interesse para os cursos de engenharia de
nas de Turing no-determinsticas; (xi) conjuntos
computao ou afins. Trata-se da questo da ime linguagens; (xii) Hierarquia de Chomsky; e (xiii)
plementao dos modelos tericos e das diferenTese de Church-Turing.
tes tcnicas que podem ser aplicadas nessa imAs unidades (i), (ii), (vi), (ix) e (x) referemportante etapa, levando-se em conta os resultados
se
a modelos de dispositivos de anlise de linguaesperados de performance e outros relacionados.
gens. A unidade (iv) refere-se a um dispositivo
Por esse motivo, o uso de simuladores abertos
de sntese de linguagens. As unidades (iii) e (vii)
pode ser visto, tambm, como uma estratgia que
referem-se equipotncia entre dispositivos de naajuda a promover o interrelacionamento de uma
turezas distintas. As unidades (v) e (viii) discudisciplina de carter principalmente terico (lintem propriedades das correspondentes classes de
guagens formais e autmatos) com outras discilinguagens. E, finalmente, as unidades (xi), (xii)
plinas da computao, de carter mais prtico e,
e (xiii) discutem tpicos isolados. No h, pormuitas vezes, j conhecidas e dominadas pelos alutanto, uma uniformidade conceitual significativa
nos (como o caso da modelagem, metodologia
no conjunto de unidades sugeridas.
de desenvolvimento, programao e testes de softOutro exemplo encontrado no Currculo de
ware), o que (i) contribui para diminuir o isolamento da disciplina no contexto do curso;(ii) serve Referncia da SBC para Cursos de Graduao em
Computao e Informtica [1]. Nele, a matria
Tal situao decorre do fato de que a maioria
dos simuladores existentes atualmente so fechados, ou seja, o usurio no dispe de condies
para modificar ou estender o seu comportamento,
agregando novas funcionalidades ou alterando outras caractersticas.

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

Vol. I
No. 1

31

Linguagens Formais, Autmatos e Computabilidade est contida no ncleo denominado Fundamentos da Computao, e possui os seguintes tpicos sugeridos: (i) gramticas; (ii) linguagens regulares, livres-de-contexto e sensveis-ao-contexto;
(iii) tipos de reconhecedores; (iv) operaes com
linguagens; (v) propriedades das linguagens; (vi)
autmatos de estados finitos; (vii) autmatos de
pilha; (viii) Mquina de Turing; (ix) funes recursivas; (x) Tese de Church; (xi) Teorema da Incompletude de Gdel; (xii) classes de problemas
P, NP, NP-completo e NP-difcil; (xiii) mtodos
de reduo de problemas.
Aqui tambm possvel observar o uso de temas de natureza distinta para definir o contedo
da matria. Seno, os tpicos (iii), (vi), (vii) e
(viii) referem-se a dispositivos de anlise, e os tpicos (i), (ii), (iv) e (v), respectivamente, a dispositivos de sntese, classes de linguagens, operaes
e propriedades das classes de linguagens.
claro que uma simples relao de tpicos,
como essas da ACM e da SBC, no precisa, necessariamente, ser adotada como roteiro definitivo para a elaborao de contedos programticos ou de materiais didticos. Mas provvel
que uma organizao de tpicos alternativa, compatvel com os princpios anteriormente apresentados, talvez represente uma contribuio importante para aqueles que buscam em tais documentos referncias para a preparao dos seus trabalhos.
Tambm nos livros-texto da rea encontram-se
situaes semelhantes. Esse o caso de [9], considerado, at os dias hoje, umas das principais referncias sobre o assunto.
Seus captulos so: (i) preliminares; (ii) autmatos finitos e expresses regulares; (iii) propriedades dos conjuntos regulares; (iv) gramticas livres de contexto; (v) autmatos de pilha; (vi) propriedades das linguagens livres de contexto; (vii)
Mquinas de Turing; (viii) indecidibilidade; (ix)
Hierarquia de Chomsky; (x) linguagens livres de
contexto determinsticas; (xi) propriedades de fechamento das famlias de linguagens. O livro segue com outros captulos.
Alm de comentrios similares aos feitos anteriormente para os currculos de referncia da ACM
e da SBC, possvel fazer alguns comentrios adicionais acerca dessa organizao.
Os captulos (ii) e (iii) tratam da classe das
linguagens regulares, mas isso no fica explcito
atravs de uma simples inspeo do sumrio. O
mesmo ocorre com os captulos (iv), (v), (vi) e
(x), que tratam da classe das linguagens livres de
contexto. No caso do captulo (ii), os dispositivos de sntese e anlise so discutidos de forma
conjunta. No caso das linguagens livres de contexto, eles so discutidos em captulos separados
(respectivamente os captulos (iv) e (v)).
J o captulo (vii) serve para introduzir as M-

quinas de Turing e as suas principais variaes, ao


mesmo tempo em que faz uso das mesmas para definir e apresentar as classes das linguagens recursivas e recursivamente enumerveis. A discusso da
importante classe das linguagens sensveis ao contexto, por outro lado, que tambm pode ser feita a
partir da definio de um modelo restrito de Mquina de Turing, apresentada apenas no captulo
(xi), onde se discute a Hierarquia de Chomsky.
Situaes semelhantes podem ser encontradas
em livros-texto mais modernos, como o caso
de [10], que possui a seguinte estrutura de captulos: (i) preliminares da matemtica; (ii) linguagens; (iii) gramticas livres de contexto; (iv) formas normais para gramticas livres de contexto;
(v) autmatos finitos; (vi) propriedades das linguagens regulares; (vii) autmatos de pilha e linguagens livres de contexto; e (viii) Mquinas de
Turing. O livro segue com outros captulos.
Aps uma introduo genrica ao assunto linguages (no captulo (ii)), o autor discute gramticas livres de contexto e formas normais para gramticas livres de contexto nos captulos (iii) e (vi),
respectivamente. Na sequncia, so discutidos os
autmatos finitos (captulo (v)) e as propriedades
das linguagens regulares (captulo (vi)). Finalmente, o captulo (vii) retoma a discusso acerca
das linguagens livres de contexto e dos autmatos
de pilha.
Percebe-se, portanto, que o texto inicia com a
apresentao indireta de uma classe de linguagens
de nvel intermedirio (a classe das linguagens livres de contexto), onde discutido o respectivo
modelo de sntese e, em seguida, so apresentadas
as correspondentes formas normais. Logo depois
a vez da classe das linguagens regulares, analisadas inicialmente pela perspectiva do correspondente dispositivo de anlise e depois pela discusso das suas principais propriedades. Por ltimo,
o captulo (vii) retoma a discusso da classe das
linguagens livres de contexto, e os tpicos, dessa
vez, so os seus dispositivos de anlise e a prpria
classe, enquanto categoria de linguagens.

Vol. I
No. 1

As discusses sobre as gramticas regulares e as


suas respectivas formas normais, assim como sobre
as principais propriedades da classe das linguagens
livres de contexto, ficam confinadas, como subtemas de difcil localizao, dentro dos temas acima
indicados.
Comentrio idntico ao que foi feito para a referncia [9], no caso das Mquinas de Turing e das
classes das linguagens recursivas, recursivamente
enumerveis e sensveis ao contexto, tambm pode
ser feito para a referncia [10].
Por isso, apresenta-se a seguinte sugesto de tpicos como alternativa para a organizao de aulas e de textos didticos sobre linguagens formais
e autmatos: (i) conceitos bsicos de linguagens
(smbolo, alfabeto, cadeias e linguagens); (ii) modelos genricos de sntese (gramticas) e anlise

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

32

(reconhecedores) de linguagens; (iii) Hierarquia de


Chomsky; e (vi) classes de linguagens (regulares,
livres de contexto, sensveis ao contexto, recursivas e recursivamente enumerveis), seus modelos
de sntese e anlise, a relao entre as classes e
suas principais propriedades. Para cada uma das
classes de linguagens relacionadas em (iv), podese considerar a estrutura de subtemas sugerida na
seo 3 do presente artigo.

que pode contribuir de forma decisiva para a motivao, reteno e aprendizado dos alunos.

As idias e sugestes apresentadas nesse artigo


no esgotam o assunto. Ao contrrio, elas so apenas uma tentativa no sentido de revigorar a forma
clssica de ensino de uma disciplina considerada
clssica, renovando e aumentando, dessa forma,
o interesse dos alunos e dos docentes, e mostrando
que, a partir de proposies relativamente simples,
Essa sugesto privilegia as classes de linguagens possvel construir materiais didticos e/ou procomo principais elementos estruturadores do con- gramas de curso diferenciados no que se refere
tedo, e desenvolve, para cada uma delas, os t- assimilao do seu contedo e contextualizao
picos que lhe so naturalmente relacionados.
do mesmo no universo da computao moderna.
As proposies apresentadas no presente artigo
so resultado da experincia de vrios anos do au11 Concluso e resumo
tor com o ensino da disciplina linguagens formais
e autmatos em cursos superiores de computao.
O presente artigo apresenta uma srie de ideias Tal experincia resultou na produo de um livroe sugestes com a inteno de contribuir para a texto didtico, voltado para alunos de cursos supecriao de contedos programticos e de materi- riores de computao, que incorpora os princpios
ais didticos originais sobre linguagens formais e e as ideias aqui discutidas [3].
autmatos e o ensino dessa mesma disciplina.
Essas ideias e sugestes passam inicialmente
pela estruturao do corpo de conhecimento da
rea, enfatizando a necessidade de constru-lo
acerca de temas de mesma natureza. Considerase, em seguida, o detalhamento de cada grande
tema da rea, identificando, inicialmente, os subtemas que sejam comuns a todos os temas e, porteriormente, os subtemas que sejam particulares a
um ou mais temas.
O desenvolvimento de cada subtema pode, por
sua vez, se beneficiar, do ponto de vista pedaggico, da explorao de tpicos de vaga correlao
aparente, do uso de argumentos intuitivos, do emprego de redundncias e da demonstrao de todos os resultados considerados fundamentais para
se apresentar os principais resultados, sem relegar
tal tarefa para o aluno.
O uso do resultado de pesquisas anteriores,
eventualmente deixado em desuso nos dias de
hoje por questes de natureza no-pedaggica,
tambm pode constituir estratgia importante na
apresentao e fixao dos tpicos considerados
clssicos. Da mesma forma, a incorporao
dos resultados de alguma pesquisa recente, pode,
ainda que em carter introdutrio, constituir elemento de motivao para o estudo, servindo tambm para promover uma maior e melhor contextualizao do conhecimento clssico com as pesquisas de ponta na rea.
Finalmente, o uso de ferramentas de experimentao prtica permite romper a barreira da aridez
algbrica, do raciocnio lgico e do pensamento
abstrato, permitindo que os alunos com menos facilidade para a manipulao desse tipo de notao
e desses mecanismos mentais no seja prejudicado
no aprendizado da matria. O uso de simuladores
abertos, em contraposio aos fechados, oferece
a vantagem de criar pontos adicionais de contato
com outras disciplinas da rea de computao, o

Vol. I
No. 1

Referncias
[1] Sociedade Brasileira de Computao,
Currculo de Referncia da SBC para
Cursos de Graduao em Computao e
Informtica, 1999. Disponvel em http:
//www.sbc.org.br/index.php?language=
1&subject=28&content=downloads&id=82.
[2] A. N. Chomsky, Three models for the description of language, Information Theory,
IRE Transactions on, vol. 2, no. 3, pp. 113
124, 1956.
[3] M. V. M. Ramos, J. J. Neto, and I. S. Vega,
Linguagens formais: teoria, modelagem e
implementao. Bookman, 2009. ISBN:
9788577804535.
[4] A. Salomaa, Formal languages. Academic
Press Professional, Inc. San Diego, CA, USA,
1987.
[5] J. J. Neto and M. E. S. Magalhes, Reconhecedores sintticos-uma alternativa didtica para uso em cursos de engenharia,
in XIV Congresso Nacional de Informatica,
pp. 140148, 1981.
[6] J. J. Neto, Solving complex problems efficiently with adaptative automata, in Conference on the Implementation and Application
of Automata - CIAA 2000, CIAA, London,
Ontario, Canada, 2000.
[7] JFLAP.
Disponvel em http://www.
jflap.org/. Acessado em setembro de 2008.
[8] Computing curricula 2001, J. Educ.
Resour. Comput., 2001.
Disponvel em
http://www.computer.org/portal/cms_
docs_ieeecs/ieeecs/education/cc2001/
cc2001.pdf.

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

33

[9] J. E. Hopcroft and J. D. Ullman, Introduction


to Automata Theory, Languages and Computation. Reading, MA: Addison Wesley, 1979.
[10] T. A. Sudkamp, Languages and machines: an
introduction to the theory of computer science. Addison-Wesley Longman Publishing
Co., Inc. Boston, MA, USA, 2005.

Mini-currculo do autor: Marcus Vincius Midena Ramos Engenheiro eltrico (1982) e mestre em sistemas digitais (1990) pela
Escola Politcnica da Universidade de So Paulo. Atuou em diversas instituies de ensino superior, entre pblicas, privadas e
confessionais, em So Paulo e em Recife, em cursos de Bacharelado em Cincia da Computao, Engenharia da Computao e
outros relacionados. Sua rea de atuao abrange as disciplinas de
Linguagens Formais e Autmatos, Teoria da Computao, Compiladores e Linguagens de Programao. Atualmente professor
assistente do colegiado de Engenharia da Computao da Universidade Federal do Vale do So Francisco, sediada em Petrolina,
Pernambuco.

Vol. I
No. 1

34

Revista de Computao e Tecnologia da PUC-SP Departamento de Computao/FCET/PUC-SP

ISSN 2176-7998

You might also like