Você está na página 1de 18

A Teoria da Computao e o

profissional de informtica
Vol. I
No. 1

Joo Jos Neto

Resumo
Discute-se neste trabalho a importncia do domnio do conhecimento e da fluncia em assuntos tericos e abstratos como
parte da bagagem conceitual dos profissionais da rea de Informtica. Apresenta-se um quadro panormico geral da rea,
tecendo-se comentrios sobre diversos assuntos tericos de interesse, procurando-se correlacion-los e mostrar a sua relevncia
para o exerccio competente da prtica profissional.
Palavras-chave: informtica; Computao; Teoria da Computao; abstraes; cincia; tecnologia; fundamentos; prtica; aplicao.

Abstract
This paper discusses the importance of mastering and having detailed domain of theoretical and abstract knowledge as a part of the
conceptual background for professionals in the field of informatics.
A broad landscape of this field is shown, a diversity of interesting
theoretical subjects are commented and interrelated, and their relevance for a competent professional practice is emphasized.
Keywords: informatics; Computation; Theory of Computation;
abstraction; science; technology; foundations; practice; applications.

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

Escola Politcnica da USP PCS


Departamento de Engenharia de
Computao e Sistemas Digitais
Av. Prof. Luciano Gualberto,
Travessa 3, n. 158
Cidade Universitria
CEP 05508-900
So Paulo SP
joao.jose@poli.usp.br

ISSN 2176-7998

1 Introduo

um equilbrio aceitvel, de forma que possam cada


qual contribuir a seu modo para uma formao
no-polarizada de um profissional que, apoiado
Nos dias de hoje, em que o imediatismo domina a na solidez que lhe pode conferir o conhecimento
nossa sociedade, permeando muitas esferas scio- profundo das bases fundamentais da Computao,
culturais, e influindo direta e significativamente seja capaz de, no dia-a-dia, optar, de forma comnos rumos de toda a humanidade, diversos aspec- petente, entre a inveno de novas solues e a
tos da formao dos profissionais da rea tm sido adequao, aos interesses de cada momento, de
alvo de discusses e de mudanas, visando sua solues previamente estabelecidas.
adequao aos nossos tempos.
Em particular, tem sido muito questionada a
convenincia e at mesmo a necessidade de se estu- 1.1 Motivao
dar, conhecer e dominar assuntos abstratos, dado
que o exerccio profissional geralmente praticado Pode para alguns parecer anacrnico, na nossa era
induz ao uso mecnico e quase cego de elemen- dos produtos prontos para o consumo, que conhetos pr-fabricados, de prateleira, parecendo at cimentos como os oferecidos pela Teoria da Commuito estranho discutir a eventual importncia putao sejam propostos como instrumentos de
para o profissional de um reforo de formao em trabalho para pessoas cujas formaes se revelam
conhecimentos complexos, exigentes e abstratos, to diversificadas, e cujos interesses, so mesclacomo aqueles propostos pela Teoria da Computa- dos com os de outras reas, como o caso de tano.
tos profissionais da Informtica, cujos alvos mais
Identificam-se a duas tendncias tecnolgicas diretos de interesse so os computadores e a comque, embora complementares, infelizmente costu- putao.

Vol. I
No. 1

mam ser interpretadas como sendo radicalmente


excludentes: a primeira, sugerindo que se busque
preferencialmente o (re)aproveitamento de produtos e resultados de esforos anteriores como forma
de obteno de recursos humanos produtivos e eficientes, e a segunda, priorizando o cultivo da formao cientfica como meio de formao de profissionais preparados para o desenvolvimento de
trabalhos centrados na criatividade.
Naturalmente, sempre que levadas aos limites,
tendncias como essas geralmente acabam por
contrapor-se, suscitando, de um lado, adeptos extremos da explorao direta de capacitaes j
consolidadas, para o uso imediato de solues
previamente desenvolvidas, e de outro, aqueles
que radicalmente consideram legtimas apenas as
tendncias estritamente investigativas, puramente
tericas, talvez sem compromisso com a realidade.

No faltaram nem faltaro argumentos de apoio


ao progressivo esvaziamento de contedo das j
to enfraquecidas disciplinas fundamentais dos
currculos de formao dos profissionais da rea,
em nome do pouco interesse prtico que se alega
existir por conhecimentos que, de to especializados e complexos, conseguem fascinar apenas uma
pequena elite.
Nem faltam justificativas para a adoo de critrios cada vez mais restritivos de apoio ao desenvolvimento da dispendiosa, demorada e incerta
pesquisa bsica em tantas universidades de todo
o planeta, em nome da priorizao daquelas pesquisas ditas aplicadas e sustentveis, potencialmente lucrativas, em vista dos resultados que podem produzir em menor prazo e com menor custo.
Argumentos dessa natureza infelizmente convencem e empolgam a muitos, consequentemente
Aqueles se mostram quase sempre refratrios a favorecendo, em vrios nveis, tomadas de pospromoverem investimentos na formao da com- turas que, em nome dos resultados imediatos e
ponente conceitual dos profissionais, e mais favo- de uma to desejada sustentabilidade, acabam
rveis a investimentos de rpido retorno, que em eclipsando os efeitos de sua adoo no longo prazo,
geral correspondem a um preparo mais superficial muitos deles adversos, perigosos, inevitveis, e
e utilitarista, menos formal, mais informativo e possivelmente irreversveis, pelas restries que
preponderantemente tecnolgico.
impem s ideias e criatividade.
Os outros, por sua vez, por valorizarem mais
a busca de conhecimentos novos, acabam priorizando a pesquisa em reas pouco exploradas, o
que exige investimentos de risco, a fundo perdido, em pesquisa pura, os quais raramente apresentam garantias absolutas de retorno do investimento, de resultados dos desenvolvimentos na
forma de produtos teis sociedade, do cumprimento dos prazos inicialmente estimados.
Como diz a sabedoria popular,a virtude nunca
est nos extremos, e assim, torna-se conveniente
que seja identificado aquilo que cada vertente tem
de melhor para oferecer, buscando-se entre elas

Este quadro, to hostil e to presente nos nossos


dias, motiva uma reflexo profunda acerca da importncia e da necessidade de um rpido retorno
ao incentivo aos estudos e pesquisa de base,
sem objetivos especulativos ou lucrativos, e que
no discriminem, em suas metas, os temas mais
abstratos da Teoria da Computao, os assuntos
emergentes ou desconhecidos, que tipicamente no
costumam estar atrelados produo imediata de
resultados ou de benefcios materiais.
Tal postura, vital para a soberania da nao
no que tange sua capacitao tcnico-cientfica,
visa suprir os subsdios essenciais manuteno

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

ISSN 2176-7998

da produo cientfica de vanguarda, bem como


para a formao acadmica e profissional autnoma daqueles que trabalham na rea, cujo papel se mostra absolutamente essencial gnese
no apenas dos fundamentos das futuras tecnologias como tambm, principalmente, preparao
das prximas geraes de profissionais que, ao seu
tempo, devero estar aptos a capacitar outros, e
a conduzir esses complexos desenvolvimentos sem
recorrer compulsoriamente importao de profissionais, a qual nesse quadro certamente ter sido
provocada pela ento provvel deficincia da capacitao local.
Considerando-se a importncia que ganha a
cada momento o aspecto da qualidade, em suas
mais variadas manifestaes, levando-se em conta
a existncia do diversificado arsenal de ferramentas que nos oferecem as teorias conhecidas, muito
poderosas e aplicveis s mais diversas situaes
do dia-a-dia, pode-se constatar, pela simples observao, que muito pouca nfase se tem dado,
por ocasio da formao acadmica do profissional, a um srio trabalho explcito de conscientizao, tanto aos alunos como aos professores, relativo a toda essa conjuntura.
Torna-se, dessa maneira, muito importante formar uma conscincia bem fundamentada do valor que pode agregar, tanto qualidade do profissional de Informtica como dos produtos por
ele desenvolvidos, o conhecimento profundo dos
assuntos tericos que constituem os fundamentos
conceituais e cientficos da Computao.
O mesmo se pode dizer em relao s indiscutveis prerrogativas tcnicas de que gozam os profissionais que amplo domnio possuam sobre esses
temas em relao queles que os desconhecem ou
que deles prescindem, pois isso tambm invariavelmente se reflete nem sempre de forma imediata, porm previsvel e inexorvel na qualidade
apresentada pelos resultados do trabalho de cada
um.
Atravs da identificao e da anlise de diversos pontos, considerados essenciais formao de
bases firmes para a conscientizao acerca da importncia de uma slida fundamentao terica
para os profissionais de Informtica, o presente
material pretende constituir uma pequena contribuio, tanto para reforar convices sobre esse
fenmeno, como para promover uma possvel mudana de postura em relao a esse tema que, embora para alguns se mostre bastante bvio, explcita ou veladamente, com frequncia para outros
se constata to desnecessariamente controverso.

principais pontos em que se cruzam as vias da teoria e da tecnologia.


Para as diversas situaes assim identificadas,
procura-se apresentar as principais razes de convivncia das duas frentes, citando-se, quando
oportuno, opinies importantes a respeito de tais
assuntos, emitidas por personagens ilustres da histria da Computao.
Para tanto, temas-chave da Teoria da Computao so identificados, delineando-se suas dependncias relativas e suas aplicaes, e analisando-se
a sua importncia prtica,para que se possa constatar mais facilmente a relevncia que apresenta,
para a qualidade profissional de cada um, o domnio e a fluncia em cada um dos aspectos do
estudo de tais assuntos.
Conclui-se o artigo com um convite a uma sria
reflexo acerca do valor da Teoria da Computao na formao acadmica dos futuros profissionais das inmeras reas de especialidade em que
se subdividem as atividades da Informtica.

Vol. I
No. 1

2 Os Aspectos Tericos da
Computao
Apresenta-se, nesta parte do artigo, a estrutura do
ambiente contextual histrico e tcnico em que se
desenvolve o tema de interesse central da presente
matria.
Em primeiro lugar considerada a rea mais
vasta e abrangente do conhecimento, que se refere
ao estudo da informao e da sua manipulao
automtica, e que conhecida pelo nome de Informtica.
Como parte nobre da Informtica, identifica-se
a Cincia da Computao, importante membro de
uma grande diversidade de compartimentos do conhecimento humano associados especialidade, os
quais envolvem, entre outros, assuntos relacionados com modelagens, mtodos, clculos, anlises,
teorias, etc.
Analisando-se um pouco mais de perto a Cincia da Computao vislumbra-se, entre os muitos
assuntos tratados, a Teoria da Computao [1, 2],
o mais importante alicerce de suas bases conceituais, em que esto apoiados todos os ramos da
Computao. Por essa razo, reconhece-se na Teoria da Computao um dos mais importantes
campos de conhecimento fundamental, do qual dependem fortemente todas as demais reas.

Sem pretenses de exaurir o assunto, buscase neste artigo apontar uma coleo significativa
de assuntos tratados na Teoria da Computao,
1.2 Organizao deste artigo
identificando-se o inter-relacionamento existente
Aps essa motivao, apoiada na observao e entre diversos dos temas abrangidos, e realandona anlise de alguns fatos da realidade atual do se, quando possvel, a importncia de seu estudo
mundo da Informtica, o presente texto volta-se mediante a indicao do uso que na prtica se tem
a uma discusso tcnica destinada a levantar os feito de cada um dos grupos de assuntos tericos.

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

ISSN 2176-7998

2.1 A Informtica
Em toda a histria, constata-se que, antes mesmo
que determinadas questes, algumas das quais
bastante complexas, tenham sido sequer formuladas pela primeira vez, os cientistas costumam
se antecipar apresentado para elas, diversas respostas interessantes, elegantes e criativas, como
resultados de suas pesquisas.

cional, precedendo atividades de implementao e


at mesmo da idealizao de aparatos fsicos capazes de resolver automaticamente o problema em
questo.

Os resultados pioneiros de pesquisas como as de


Boole, Turing, Gdel, Church, Chomsky e de tantos outros, apresentados com tanta antecedncia
em relao ao advento das tecnologias que os viriam a utilizar, revelaram-se verdades gerais, fundamentais, independentes da tecnologia, imunes
Embora nem fosse possvel imaginar ento a fuao tempo e s reas de aplicao, refratrias
tura existncia de computadores digitais, e memoda, poltica, s preferncias e ao mercado,
nos ainda, que aspecto teriam ou qual importncia
extremamente poderosas e perenes, continuando
eles viriam a ter nos dias de hoje, j nos meados
por essa razo em pleno uso, incontestes, vlidas
do sculo XIX George Boole brindava a Cincia
e atualssimas, at os nossos dias.
da Computao com a imensa contribuio representada pela famosa lgebra que, com justia, leva
seu nome.
2.2 Informtica e a Cincia da
Com as funes por ele idealizadas, tornou-se
Computao
possvel criar modelos precisos, tanto do funcionamento das volumosas, lentas e dispendiosas re- A Informtica dedica-se ao estudo do processades de circuitos lgicos eletromecnicos, utilizadas mento lgico e automtico da informao, que em
nos primeiros computadores, como igualmente dos geral atualmente realizado com a ajuda de comgeis, compactos e econmicos circuitos digitais putadores digitais. Manifesta-se preponderantemente no estudo e desenvolvimento de computamicroeletrnicos modernos.
O advento da modernidade trouxe a industria- dores, de seus componentes mecnicos e eletrnilizao, exigindo progressos tcnicos que permitis- cos, e de seus programas, bem como em diversos
sem s mquinas resolver problemas de forma me- aspectos da concepo, realizao e uso de lingualhor, mais rpida e mais confivel que os operrios. gens de programao, tecnologias de desenvolviSurgiram ento os primeiros algoritmos, na forma mento e softwares de aplicao.

Vol. I
No. 1

Nos dias de hoje, a Informtica se mostra virtude receiturios que visavam preparar tais mquinas para o processamento automtico de certos almente onipresente, manifestando-se em bancos,
no comrcio e na indstria, em componentes mitipos de informao.
Importantes nomes apareceram, tais como Tu- croeletrnicos embutidos em eletrodomsticos, na
ring, Gdel e Church, contribuindo decisivamente etiquetas de produtos, em telefones celulares, aunessa fase embrionria da Informtica atravs de tomveis, jogos eletrnicos, instrumentos de mesua marcante atuao, referente investigao da dida, sistemas de comunicao, cmaras fotogrviabilidade ou no de se resolver certas classes ficas, equipamentos de laboratrio, robs, dispode problemas por aplicao mecnica e sequen- sitivos de sinalizao, de aquisio de dados, de
cial de uma restrita variedade de operaes muito sensoriamento remoto e tantos outros.
nessa vasta rea que podem ser localizadas a
Teoria
da Informao, a anlise numrica, a repreNa dcada de 1950, Chomsky, investigando abssentao
do conhecimento, a modelagem de protraes para uso em lingustica, plantou os aliblemas,
os
mtodos tericos e formais, os procescerces tericos das gramticas gerativas, que mais
tarde vie-ram a manifestar sua grande utilidade sos de clculo, e entre todas essas, tambm a Cinprtica nessa e em diversas outras aplicaes, com cia da Computao, alvo da presente publicao.
destaque anlise lxica e sinttica de linguagens
de programao, modelagem do comportamento
2.3 A Computao
de organismos biolgicos, ao projeto de hardware
e ao processamento de linguagem natural.
O termo computao costuma ser empregado para
Esses desbravadores anteviram, pesquisaram e designar o uso de algoritmos para a resoluo de
deram resposta algumas, muito antes da con- problemas. Como se diz formalmente, esse voccepo dos primeiros computadores a variadas bulo alude execuo de algoritmos como meio
e complexas questes, abrindo um caminho bem para realizar o clculo de funes. Foi praticada
fundamentado e seguro no somente para o surgi- por milnios no passado, mentalmente ou por esmento como tambm para a evoluo que condu- crito, muitas vezes com o auxlio de tabelas.
ziu a Informtica ao estado em que hoje se enconRamo da Matemtica e da Cincia da Computatra.
o, a Teoria da Computao surgiu no princpio
Esta sem dvida uma significativa manifesta- do sculo XX, antes da inveno dos computadoo histrica da importncia de um estudo terico, res, e estuda modelos formais de computao, sua
profundo, da natureza de um problema computa- aplicabilidade e sua viabilidade prtica resoluelementares.

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

ISSN 2176-7998

o das diversas classes existentes de problemas.


Desse estudo emergiram propostas, na forma de
dife-rentes modelos de computao, representados
atravs de diversificadas abstraes, apresentadas
em variadas notaes. Segundo a conjuntura denominada Tese de Turing-Church, todos esses modelos se equiparam uns aos outros quanto ao seu
poder computacional, alm de serem todos tambm equivalentes a um computador hipottico que
oferecesse uma disponibilidade ilimitada de memria:
A Mquina de Turing, que foi proposta
como modelo universal de computao, e
trabalha com operadores muito rudimentares sobre instrues e dados gravados em
uma fita de trabalho de comprimento infinito. Dos modelos universais de computao existentes, talvez seja o mais conhecido
e famoso, e bastante aderente ao estilo de
programao representado pelo paradigma
imperativo;
O Clculo Lambda [3], formalismo que foi
proposto e empregado na representao de
programas desenvolvidos segundo o paradigma de programao adotado pelas linguagens funcionais, e que se mostra muito
adequado para a representao formal de
fenmenos computacionais ligados a linguagens de programao declarativas;

vos podem ir alterando, de forma autnoma,


seu prprio comportamento,em funo do
seu histrico de funcionamento. Com isso,
um dispositivo adaptativo torna-se equivalente Mquina de Turing, portanto poder represen-tar o conhecimento adquirido
em sua operao, tendo, no entanto, sobre a
Mquina de Turing, nesse aspecto, a vantagem de concentrar, de forma localizada, em
seu prprio conjunto de regras, a representao de tal conhecimento. Assim, torna-se
possvel identificar e acompanhar at mesmo
de forma incremental a aquisio do conhecimento por um dispositivo adaptativo, atravs da inspeo do seu conjunto de regras e
da sua variao toda vez que, durante sua
operao, alguma ao adaptativa for executada. Por essa e diversas outras razes,
os dispositivos adaptativos tm sido considerados como alternativas atraentes para a representao de fenmenos de aprendizagem,
na rea de inteligncia artificial.

Vol. I
No. 1

Muitos outros modelos de computao tm


sido propostos e podem ser encontrados com
facilidade na literatura, entre os quais podem ser destacados: os Sistemas de Post, as
Cadeias de Markov, as mquinas de Mealy e
de Moore, diversas outras variantes das mquinas de estados, dos autmatos e transdutores finitos e de pilha, Mquinas de Turing
Universais, mquinas virtuais diversas, utilizadas na execuo de diversas linguagens
de programao (P-system, Java byte-code,
etc), Redes de Petri, Statecharts, mquinas
probabilsticas, e inmeras outras.

As Funes Recursivas [2], utilizadas em


Matemtica desde pocas muito anteriores
dos computadores, podem tambm servir
como um modelo computacional inspirado
naquela cincia, e, ao contrrio da maioria
dos outros modelos em uso, tm a grande
A Teoria da Computabilidade investiga a posvantagem de permitir a representao e a
sibilidade de mquinas computacionais e de cermanipulao direta de valores numricos;
tos formalismos tericos adotados como modelos
As Gramticas Gerativas [4] permitem a re- de computao apresentarem ou no a capacidade
presentao de linguagens atravs do uso de de realizarem automaticamente determinados tiregras de substituio, que operam sobre pos de computao. Em termos do que se conhece
sequncias de smbolos, sendo muito empre- hoje dos computadores e da computao, uma vergadas na especificao e na representao de so dessa investigao pode ser traduzida na busca
linguagens artificiais,como as de programa- de respostas para a pergunta seguinte: possvel
o e de outras notaes constitudas de ca- ou no construir um algoritmo capaz de resolver
deias de caracteres com lei de formao co- de forma automtica um dado problema atravs da
nhecida, tornando natural a formalizao e execuo iterativa de passos de instrues em um
a manipulao algortmica de textos simb- dado dispositivo computacional, como, por exemlicos.
plo, um computador digital ou algum outro modelo
Os Dispositivos Adaptativos [5], particular- computacional?
mente aqueles baseados em autmatos, so
Mais abrangente, a Teoria da Computao promodelos de computao capazes de repre- pe, estuda e compara modelos de computao,
sentar fenmenos computacionais comple- as classes de problemas que cada um deles conxos atravs de quaisquer abstraes cujo segue resolver e os limites a que cada qual est
comportamento seja descrito atravs de um sujeito. Ilustrando, podem ser citados alguns proconjunto de regras dinamicamente vari- blemas para os quais impossvel criar progravel. Essa dinmica se obtm associando- mas de computador que lhes sirvam de soluo.
se aplicao de cada regra uma ao que So esses os problemas ditos incomputveis, entre
especifica alteraes a serem realizadas so- os quais se destacam: o problema da parada da
bre o conjunto de regras. Assim,ao executa- Mquina de Turing; o problema da correspondnrem essas aes adaptativas, tais dispositi- cia de Post; determinar se a interseco de duas

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

ISSN 2176-7998

linguagens livres de contexto arbitrrias tambm livre de contexto; determinar, para uma gramtica livre de contexto sobre um alfabeto nounitrio, se a linguagem que ela representa regular;determinar se uma gramtica livre de contexto
arbitrria ambgua; determinar se uma linguagem livre de contexto arbitrria inerentemente
ambgua. Muitos outros problemas incomputveis
existem, mas felizmente constata-se a existncia
de outra infinidade de problemas computveis, de
grande importncia prtica, e isso motiva o seu
estudo, do ponto de vista tanto terico como prtico.
Dos problemas computveis, alguns se mostram
impraticveis por exigirem um tempo abusivo ou
uma quantidade de memria excessiva para sua
operao. Para os decidveis possvel a construo de algoritmos que sempre terminam, quaisquer que sejam os dados a eles fornecidos. Para
os indecidveis, possvel elaborar procedimentos
computacionais, porm estes terminam somente
quando se lhes apresentam dados corretos, aderentes ao que normalmente se espera, podendo, no
entanto, iniciar um ciclo infinito de execuo em
resposta aos demais dados.
O estudo da decidibilidade de algoritmos data
dos anos 1930, quando os estudiosos da rea tentavam demonstrar ser invivel realizar raciocnios
matemticos com a ajuda de dispositivos automticos. Um interessante problema nessa rea
o das provas automticas dos teoremas de uma
dada teoria. possvel provar que o excessivo
tempo de resposta de provadores de teoremas para
determinadas teorias torna impraticvel seu uso
com frmulas grandes. o caso da Aritmtica de
Presburger, que se mostra decidvel, porm duplamente exponencial em complexidade.
Nos casos de problemas de alta complexidade
computacional, pode ser interessante determinar
para quais situaes vale a pena desenvolver uma
soluo algortmica e para quais outras mais conveniente efetuar verificaes extensivas de propostas de soluo. O estudo das classes P e NP de
complexidade computacional costuma analisar famlias de problemas que ilustram bem esta situao.

uso extensivo de expresses regulares para a especificao de padres de busca em cadeias de caracteres levou diversas linguagens de programao e sistemas operacionais a oferecerem recursos
nativos especficos com essa finalidade. o caso
de lingua-gens como Perl e Python, e de sistemas
operacionais como UNIX, Linux e similares.
No mbito das linguagens regulares, notrio o
uso de autmatos finitos e de mquinas de estados
finitos em um grande nmero de aplicaes importantes, tais como no projeto de circuitos sequenciais, em alguns sistemas voltados automatizao da resoluo de problemas, na construo de
protocolos de comunicao, sequenciadores, controladores de interfaces Web, analisadores lxicos
de compiladores e interpretadores para linguagens
de programao, na especificao de sistemas reativos e de tem-po real, e at mesmo na especificao da lgica de determinados tipos de programas.
Linguagens livres de contexto, as respectivas
gramticas e os autmatos de pilha ocupam igualmente seu lugar na imensido de aplicaes que
fazem uso das abstraes e dos resultados da teoria da computao. Assim, formalismos gramaticais livres de contexto tm sido usados extensivamente desde a poca de sua concepo na representao parcial da sintaxe de linguagens de
programao [4, 6, 7]. Autmatos de pilha podem
ser empregados na representao de fenmenos
lingusticos envolvendo aninhamentos sintticos, e
servem assim para modelar o comportamento de
programas constitudos por um conjunto de procedimentos potencialmente interdependentes e mutuamente recursivos.
Menos explicitamente exploradas, as linguagens
dependentes de contexto esto muito mais disseminadas no mundo da computao do que pode
parecer primeira vista. Linguagens de programao so, em sua quase totalidade, linguagens
dependentes de contexto, para cuja representao
as gramticas livres de contexto e os autmatos
de pilha se revelam insuficientes. Embora existam
diversos modelos suficientemente expressivos para
represent-las, seu uso costuma ser evitado por
gerar formulaes extensas, complexas e obscuras.
Em lugar disso, costuma-se aproximar, na prtica,
as linguagens de programao por meio de modelos sintticos simplificados, livres de contexto, os
quais devem ser complementados por trechos de
cdigo, funes ou procedimentos externos, que
se responsabilizem pela representao das dependncias de contexto, ausentes na formulao simplificada. Esta tem sido prtica corrente na construo de compiladores e de outros processadores
de linguagens de programao.

Se de um lado a Teoria da Computao busca


solues gerais e grandiosas para classes amplas
de problemas, por outro lado ocupa-se tambm
de determinar modelos de complexidade mnima
que resolvam satisfatoriamente situaes menos
gerais, de interesse prtico.
Uma forma de avaliar o poder de expresso de
um modelo computacional atravs do estudo da
classe das linguagens formais que esse modelo
capaz de representar; o resultado dessa prtica
uma taxonomia baseada na hierarquia proposta 2.4 A Cincia da Computao
por Chomsky para as linguagens formais.
Isso tem importantes aplicaes prticas no es- A Cincia da Computao estuda os fundamentudo de linguagens, gramticas e autmatos: o tos e a prtica das computaes, investigando
e explorando, atravs de algoritmos computacio-

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

ISSN 2176-7998

Vol. I
No. 1

nais, estruturas matemticas que modelam fatos


do mundo real, permitindo assim que processos
computacionais sejam formulados de maneira precisa para ento manipul-los devidamente, atendendo as necessidades das aplicaes desejadas.
Para atingir esses objetivos, oferece ao profissional uma srie de contribuies tericas: proporciona bases em Linguagens Formais, na Teoria
dos Autmatos e em Complexidade Computacional, oferece mtodos para que seja verificado se
um requisito est sendo atendido ou no, disponibiliza tcnicas para o desenvolvimento de modelos,
e proporciona meios com os quais se pode avaliar
o poder dos modelos adotados.
Cada vez mais potentes e mdicos, os computadores digitais constituem os dispositivos tecnologicamente mais importantes que materializam
fisicamente os modelos abstratos oferecidos pela
Cincia da Computao. Ao mesmo tempo, os
programas (softwares) que neles se executam constituem a melhor concretizao das abstraes lgicas que com eles pode ser realizada no dia-a-dia.
Isso abre inmeras possibilidades para a utilizao prtica de abstraes computacionais, quer
atravs do emprego de linguagens de programao
bem projetadas e aderentes aplicao, quer para
a construo de compiladores ou interpretadores,
permitindo a disponibilizao, nos computadores,
dos recursos oferecidos por essas linguagens.
Os caminhos disponveis para a concepo de
todas essas abstraes e dispositivos tecnolgicos,
assim como os mtodos utilizados para a avaliao
das aplicaes da vida real que com elas so desenvolvidas contam-se entre as principais contribuies de cunho prtico proporcionadas pela Cincia da Computao, as quais dificilmente teriam
surgido sem os importantes fundamentos tericos
que lhes deram origem.
Pode-se identificar que uma importante caracterstica das teorias das quais se ocupa a Cincia da
Computao que elas se apiam em bases matemticas muito bem estruturadas, constituindo
assim um slido corpo de elegantes fundamentos,
aplicveis a todas as atividades da rea.
A motivao maior do desenvolvimento deste
ramo do conhecimento gira em torno da investigao do alcance das computaes, da possibilidade ou no de se efetuarem determinadas computaes, culminando no importante conceito de
algoritmo, cuja possibilidade de existncia fortemente associada viabilidade prtica de materializao das computaes realizveis.
O estudo srio dos assuntos cientficos da computao proporciona ao interessado um duradouro
lastro de formao, de largo espectro, a respeito
dos assuntos em questo, que lhe garante segurana conceitual ao longo de toda sua vida profissional.Tal base tcnica dificilmente pode ser adquirida quando a formao do profissional estiver
afastada da teoria, mas centrada na digesto fre-

quente de generalidades, de atualidades e de informao de divulgao.


Embora para a rea mercadolgica, estratgica
e empresarial, esse tipo de preparo seja essencial,
para a formao de um profissional com perfil mais
tcnico tal esquema geralmente se traduz somente
em uma cultura fugaz, especfica e temporria,
acerca dos fatos, do estado da arte e da tecnologia em moda em cada momento histrico, e isso
costuma mostrar-se insuficiente para o exerccio
competente dos aspectos profissionais tcnicos de
alcance mais profundo.
Em lugar de simplesmente informar o interessado, preparando-o a produzir rapidamente para
con-sumo imediato no mercado de trabalho, a formao acadmica e profissional baseada em fundamentos slidos capaz de conceder-lhe algo muito
mais verstil e perene: o embasamento de que necessita para dominar os assuntos que constituem
as mais profundas razes do conhecimento da rea,
que resistam ao tempo, moda e tecnologia.
Isso no deve ser entendido como uma apologia
alienao quanto a avanos tecnolgicos, mas
como um alerta para que os atraentes acenos do
imediatismo no ofusquem o profissional exatamente naquele que seria seu melhor momento para
priorizar sua formao conceitual em temas abrangentes e universais, reduzindo sem anular a prioridade da assimilao rpida de atualidades e da
absoro imediata de treinamentos especficos em
ferramentas tecnolgicas particulares, de interesse
imediato e efmero, mas restrito e localizado.
Com uma formao menos restrita e especfica,
o profissional de computao sempre ter sua
disposio uma gama considervel de conhecimentos oriundos da Cincia da Computao, os quais
virtualmente podero ser utilizados no desenvolvimento de variadas aplicaes, em qualquer rea
de sua atuao profissional, bastando para isso
que, inicialmente, adquira habilidades para modelar adequadamente suas aplicaes usando o ferramental terico assim assimilado, de modo que
possa, num segundo momento, convert-los em
programas executveis, ou seja, representados na
forma de algoritmos.
Aqui se pode avaliar bem a importncia de um
profissional da rea conhecer e dominar profundamente, em teoria e na prtica, todo o processo de
elaborao de algoritmos, desde a sua concepo,
passando posteriormente pelos procedimentos de
elaborao, materializao, verificao, e implantao, tanto de algoritmos representados por pequenos trechos de cdigo como dos atualmente frequentes sistemas de software, de porte cada vez
maior.
No basta que, durante o seu perodo de preparao acadmica para o mercado, o profissional se
detenha apenas no estudo de um ou outro desses
elementos, pois todos eles se mostram essenciais
sua formao integral. Mostra-se, assim, de suma

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

ISSN 2176-7998

Vol. I
No. 1

10

importncia que os programas dos cursos univer- mente melhor de todas as disciplinas da rea.
sitrios da rea levem em considerao essas pon preciso lembrar que, como seria de se espederaes, equilibrando a nfase que do a essas rar, a Teoria da Computao se fundamenta em
diversas componentes formativas de seus alunos. mtodos e tcnicas da Matemtica, em particular, na teoria dos conjuntos. Scheurer [11], alerta
que se deveria dar mais ateno aos conhecimen2.5 A Teoria da Computao
tos de teoria dos conjuntos ministrados aos futuros
profissionais da rea, de modo que estes possam
No vasto campo da Cincia da Computao, pode- empreg-los de forma to natural quanto os prose dizer com segurana que a Teoria da Computa- gramadores utilizam com fluncia as suas linguao ocupa um merecido lugar de destaque, devido gens de programao.
sua importncia como sustentculo conceitual
Recorda ainda esse autor que os processos de
de todos os conhecimentos da rea, tanto dos mais
modelagem formal e matemtica independem do
fundamentais e abrangentes como dos mais partiuso ou no de computadores. Afirma ainda que,
culares e especficos [810].
didaticamente, este importante fato deveria ser
Eliminadas as peculiaridades dos problemas es- considerado com muita nfase ao se ministrar copecficos e a influncia de idiossincrasias apresen- nhecimentos bsicos aos futuros programadores,
tadas pelas tecnologias especficas em uso, a Te- permitindo-lhes assim assimilar em primeiro luoria da Computao investiga, estabelece e inter- gar os fundamentos, para, s depois de adquirida
preta propriedades intrinsecamente associadas aos a devida habilidade de modelagem, comearem a
sistemas computacionais, da tirando concluses utilizar o computador para a implementao dos
universais de ampla aplicabilidade, e que se pro- modelos.
vam independentes de casos e de especificidades.
instrutivo constatar que a Teoria dos ConjunOs resultados da Teoria da Computao, na tos e a Lgica Matemtica funcionam como alicersua maioria obtidos na primeira metade do sculo ces para muitas reas da computao, merecendo
passado,comprovaram-se totalmente refratrios destaque a engenharia de software, o software bhistria. Ilustrando atravs de um caso particu- sico e as linguagens de programao, nos quais se
lar, na rea da programao pode-se dizer que tais pode identificar o uso extensivo dos seus conceitos
resultados no foram afetados pelas evolues tec- no estudo e na prtica de mtodos algbricos tranolgicas refletidas no paradigma de programao dicionais, de mtodos formais, da semntica axiadotado, valendo indiferentemente para progra- omtica para linguagens imperativas, da semnmas desenvolvidos em linguagens funcionais, im- tica denotacional para linguagens declarativas, e
perativas, lgicas, orientadas ou no a objetos, e em tantas outras situaes.
explorando ou no o paralelismo ou a concorrnOutra rea, que merece ateno pelo amplo uso
cia.
que faz de assuntos tericos fundamentais, envolve
Devido universalidade de que so dotadas, as Linguagens de Programao [4, 6, 7, 1216] e
as poderosas ferramentas tericas proporcionadas os correspondentes Paradigmas [17, 18]: imperapela Teoria da Computao nem sempre so di- tivo, funcional, lgico, orientado a objetos, parareta e imediatamente aplicveis a casos particula- lelo, concorrente, etc., cada qual extensivamente
res, a um produto especial ou a alguma tecnologia explora um ou mais temas associados, da Teoria
especfica, e esse fato infelizmente leva muitos pro- da Computao.
fissionais por falta de base ou desinteresse a
Na rea da modelagem de dados e na teoria dos
afastar-se delas, a desconsiderar e at a desvaloriBancos de Dados, identificam-se muitos conceitos
zar sua importncia.
que se fundamentam em conceitos matemticos
No de se esperar que profissionais despre- bsicos oriundos de temas tais como a teoria dos
parados sejam capazes de apreciar o alcance dos conjuntos, as relaes e funes, a lgebra e o morecursos tericos, pois para isso deveriam possuir delo relacional.
habilidades que os capacitassem anlise de situaMuitas outras reas interessantes poderiam ser
es prticas, permitindo-lhe identificar, destacar
aqui listadas cujo lastro terico e fundamental est
e utilizar, dentre tantos resultados tericos dispona Teoria da Computao, mas as que foram antenveis, aqueles que se aplicam ao seu caso prtico
riormente apresentadas constituem uma amostra
especfico, mas isso s se consegue com um bom
significativa do alcance exibido por essa imporpreparo tcnico prvio, que lhes proporcione amtante teoria fundamental da Cincia da Compuplo domnio sobre os fundamentos dessa teoria.
tao, e do papel desempenhado por ela no desenReconhecendo a imensa importncia desse ramo volvimento e no aprimoramento tcnico das aplido conhecimento, Lewis e Papadimitriou [2] acer- caes computacionais.
tadamente recomendam seu estudo acadmico
precoce, como forma de proporcionar no somente
a assimilao de habilidades matemticas, essenciais ao futuro profissional, como tambm as bases
conceituais para um aproveitamento significativa-

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

ISSN 2176-7998

Vol. I
No. 1

11

3 Convenincia do Estudo de
Teoria

cia frequente do despreparo, por parte dos profissionais, na compreenso, em profundidade, da


natureza dos seus projetos.
Reynolds [20] alerta tambm que de um profissional
da rea se espera no apenas competnEm seu prefcio ao livro de F. S. Beckman [19],
cia
nas
especificidades
do assunto de sua especiaj em 1980 o corpo editorial da srie escreve que
lidade,
mas
que
domine
muito bem cada um dos
o campo do software bsico surgiu a partir da
temas
a
ela
relacionados,
em especial os princpios
soma dos esforos esparsos de inmeros profissicientficos
subjacentes
de
maior profundidade.
onais de diversas especialidades, pressionados a
Enfim, convm ainda notar que um conheciproduzirem artesanalmente programas de sistema
mento fluente da teoria agua o juzo esttico do
que fossem prticos e funcionais.
Adiante, em seu prprio prefcio, esse autor re- profissional, dando-lhe habilidade para priorizar
conhece a vastido dos temas que compem o as- em seus projetos os aspectos mais naturais, essunto do livro,e afirma que em suas 443 pginas pontneos e elegantes dos processos computaciono se aprofunda suficientemente nos aspectos for- nais, apurando ainda seu senso esttico, favoremais da matria, e que por essa razo, o seu li- cendo assim a obteno de produtos com maior
vro no seria recomendvel para estudantes srios beleza estrutural.
de matemtica em cursos de graduao ou psgraduao devotados ao tema.
razo para uma reflexo preliminar um confronto entre a opinio emitida pelo autor acerca
de seu prprio texto e o notrio excelente nvel
apresentado pela publicao em pauta, especialmente se a compararmos com tantos textos hoje
adotados em cursos superiores da rea.
Neste ponto, cabe tecer mais algumas consideraes sobre alguns dos bvios porqus do estudo
dos assuntos tericos da Computao, os quais lamentavelmente at mesmo nos dias de hoje, apesar das evidncias, continuam sendo considerados
por tantos seguramente por desconhecimento do
assunto como desnecessrios, difceis, desagradveis e at mesmo inteis.
Uma exposio desses profissionais, sem preconceitos, s inmeras belas e profundas questes
conceituais que permeiam essa rea do conhecimento torna-se a estratgia mais eficaz para contornar os tantos malefcios advindos desse fenmeno.

Vol. I
No. 1

No mundo de hoje, que tende a priorizar um


contnuo e imediato processo de captura e memorizao das novidades de uma tecnologia em rpida
evoluo, a cultura assim adquirida mostra-se efmera e insuficiente, motivando que seja resgatada
a habilidade tcnica do profissional atravs do incentivo ao uso freqente e sistemtico do raciocnio abstrato para a recuperao e expanso plena
dos seus processos mentais.
Num cenrio como esse, torna-se indispensvel
o exerccio da habilidade de raciocinar, e no apenas de memorizar, e neste papel insubstituvel o
estudo da teoria, dele resultando uma preciosa desenvoltura na formulao precisa e clara de idias,
na capacitao ao julgamento do alcance e das limitaes dos aparatos tecnolgicos em uso, e na
habilitao para uma boa avaliao tcnica de propostas de solues algortmicas para os problemas.

3.1 Temas-chave da Teoria da


Computao

Reynolds [20], em seu livro, lembra que, em


busca de atividades remuneradas permanentes
que os satisfaam, os profissionais costumam,
principalmente no incio de suas carreiras, mudar
de emprego com uma certa frequncia, e isso refora a necessidade que tm de uma base conceitual slida e abrangente, especialmente na rea da
Computao.

Permeando todos os estudos relacionados com os


aspectos tericos da Computao, encontram-se
os assuntos usualmente conhecidos como Matemtica Discreta [23,24] e Lgica Matemtica [25,26].
Truss [27] afirma que, independentemente de
eventuais aplicaes, somente por sua complexidade e beleza a matemtica j em si prpria
fascinante e significativa, merecendo ateno e esSegundo Greenlaw [21], o conhecimento da tetudo.
oria auxilia o profissional at mesmo em aspectos
Diz tambm ser um verdadeiro prmio o fato
de natureza humanstica, como , por exemplo, o
de
a matemtica ser tambm til, embora isso decaso da utilizao das complexas tcnicas da cripcorra
da compreenso profunda da lgica e elegntografia para garantir privacidade no computador,
cia
subjacentes.
e o domnio desse conhecimento influi decisivamente na competncia com que o profissional da
Completa sugerindo que no se veja a matemcomputao exerce sua ocupao.
tica como uma coleo complicada e incompreenReferindo-se aos projetos de software da sua svel de abstraes, mas como um interessante e
poca, Wulf, Shaw e Hilfinger afirmavam [22], j prazeroso tema de estudo, vivo e poderoso.
em 1981, que as deficincias principais observadas
Entre os tpicos mais comumente estudados da
nos programas de ento no eram decorrentes de Teoria da Computao, merecem destaque partilimitaes fsicas das mquinas, e sim, consequn- cular os seguintes:

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

ISSN 2176-7998

12

matemtica discreta, teoria dos grafos, teoria dos conjuntos e teoria das funes recursivas;
linguagens formais e autmatos;
mquinas universais, computabilidade, algoritmos;
complexidade, intratabilidade;
mquinas finitas sequenciais com entrada e
sada, transdutores, mquinas de Mealy e de
Moore;
lgica matemtica, gramticas formais, modelos matemticos, teoremas;
aspectos tericos subjacentes a redes neurais, computao evolutiva e sistemas nebulosos.
Alm de darem uma viso que permite avaliar o
alcance e as limitaes dos computadores, uma observao menos superficial permite assegurar que,
longe do que seria intuitivo, as complexas estruturas conceituais estudadas na Teoria da Computao gozam, na prtica, de uma extraordinria
aplicabilidade.
Assim, as ferramentas conceituais oferecidas
pela teoria viabilizam a obteno de solues para
muitos complexos problemas da prtica, e apontam formas elegantes e econmicas para a realizao tecnolgica de tais solues.
Destacam-se, entre muitos outros, os seguintes
casos ilustrativos:
a lgebra booleana e a teoria das mquinas sequenciais fornecem um substrato conceitual essencial para a descrio de muitos
fenmenos computacionais, sendo em particular extensivamente utilizadas no projeto
lgico de computadores e de sistemas digitais em geral, de codificadores, de sistemas de comunicao, de controladores e de
robs;
a teoria das relaes e a lgebra relacional
constituem fundamentos tericos nos quais
se baseiam muitas tcnicas e mtodos hoje
disponveis, que nas aplicaes prticas proporcionam formas metdicas e muito adequadas para a formulao rigorosa e confivel de sistemas de software que operam sobre complexos bancos de dados;
autmatos, transdutores e outras mquinas
de estados clssicas, formuladas com base
em estados internos, funes de transio e
funes de sada, tm auxiliado significativamente na elaborao de pr-processadores,
de compiladores, e no processamento simblico de cadeias de smbolos. Essas abstraes
constituem o alicerce de inmeros softwares,
de interfaces entre o ser humano e os computadores, em particular os de acesso s redes
de computadores, de processos de automao industrial e de protocolos de comunicao digital;

expresses regulares, que so formas gramaticais muito populares de descrio de linguagens regulares, tm sido modernamente
adotadas como notao muito conveniente e
prtica para a especificao de leis simples
de formao de cadeias simblicas, e, cada
vez mais, utilizadas no dia-a-dia de inmeras atividades profissionais, estando disponvel como recurso nativo de muitas linguagens de programao, aplicando-se principalmente em anlise lxica, na categorizao
de cadeias, no alinhamento de textos e no reconhecimento e identificao de padres sequenciais simples;
gramticas gerativas, originalmente estudadas e propostas para aplicaes em lingstica, representam formas construtivas para a
especificao de linguagens em geral, encontrando freqentes aplicaes, no apenas na
sua rea inicial de interesse, como tambm
na anlise de lingua-gens complexas, e na
especificao formal de notaes para a expresso de programas noconvencionais, tais
como ocorre no projeto de linguagens para
programas aplicativos especiais;

Vol. I
No. 1

a teoria da complexidade computacional [28]


e de algoritmos, que se ocupa do estudo de
problemas que permitem a obteno de solues algortmicas, ou seja, representveis
atravs de programas de computador. Estudos nesses domnios tm propiciado o surgimento de mtodos e tcnicas destinados
a identificar a viabilidade de construo de
algoritmos cujo tempo de resposta no seja
intrinsecamente abusivo, e que no apresentem exageradas exigncias de memria de
trabalho. Em outra vertente, procuram garantir que algoritmos de criptografia se beneficiem exatamente da dificuldade computacional apresentada por alguns problemas
especiais, os quais tm constitudo o fundamento de muitos dos protocolos criptogrficos modernos;
a adaptatividade [5] outro aspecto que merece especial considerao, pelo poder computacional que pode proporcionar, e pela
compatibilidade que apresenta com os formalismos clssicos estudados na Teoria da
Computao. A ideia principal em que se
baseia a possibilidade que tem um dispositivo conceitual adaptativo de automodificar dinamicamente seu comportamento.
Essa propriedade lhe confere o mesmo poder
computacional da Mquina de Turing. Podem ser identificadas diversas manifestaes
histricas deste e de outros conceitos afins.
Entre as principais, destacam-se: (i) diretamente na mquina muitos programas antigos, originalmente produzidos em linguagem de baixo nvel, e at mesmo em linguagem de mquina, cujo cdigo se automodi-

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

ISSN 2176-7998

13

ficava para melhor aproveitar a memria do


computador, ou ento para realizar operaes no disponveis nos comandos bsicos
da mquina; (ii) nos sistemas de programao programas cujo cdigo era organizado
como um conjunto de overlays, que se revezam dinamicamente na ocupao de uma
mesma rea de memria, viabilizando assim
a execuo de programas que de outra forma
no caberiam na memria fsica do computador; (iii) nas linguagens de programao
as linguagens extensveis, que permitem
ao programador definir novos comandos na
linguagem, para depois utiliz-los na codificao de seus programas; (iv) nas metalinguagens as gramticas de dois nveis, que
permitem criar, em duas etapas, gramticas
especficas das sentenas particulares de linguagens dependente de contexto.
as teorias dos conjuntos difusos, da computao evolutiva e das redes neurais constituem outras contribuies recentes aos fundamentos da inteligncia artificial moderna,
que nos ltimos anos tem se disseminado e
evoludo de forma extraordinria.

tal conceitual de extraordinria aplicabilidade a


outras disciplinas, habilitando o profissional a desenvolver argumentaes matemticas, formais e
rigorosas, e proporcionando uma grande familiaridade com os fundamentos e princpios da Cincia
da Computao.
Muitas aplicaes deste ramo do conhecimento
podem ser identificadas. Dentre as mais clssicas, destacam-se: o processamento de linguagens
de programao textuais, a representao de processos, estruturas e protocolos de comunicao, do
fluxo da lgica dos programas, e de mquinas cujo
funcionamento depende de sucessivas alteraes
do seu estado interno.
Arto Salomaa [36], cita Alfred Aho, que em uma
palestra teria feito referncia teoria de linguagens formais como sendo a flor da cincia da computao, cujas ptalas seriam a complexidade, as
linguagens de programao, os sistemas de programao e os compiladores.

Vol. I
No. 1

Atualmente, inmeras aplicaes modernas tm


explorado densamente as ferramentas conceituais
estudadas nesta disciplina. Entre elas destacamse a computao grfica, em particular as animaes computadorizadas, os hipertextos e as hipermdias, as interfaces Web, e as linguagens visuais
e no-lineares em geral.

Os temas mais importantes cobertos pela Teoria da Computao, discutidos nos tpicos estudados a seguir neste artigo, no esgotam a rea,
A importncia do estudo desse assunto se mamas fornecem um panorama bastante significativo nifesta de vrias maneiras:
dos assuntos estudados, proporcionando uma boa
proporciona uma viso panormica das baviso de sua importncia prtica.
ses cientficas da computao;
3.1.1 Linguagens Formais e Autmatos
Este um assunto que vem sendo estudado desde
a dcada de 1950, e tem destacada importncia
na Teoria da Computao, fundamentando muitos
outros temas da rea e oferecendo inmeros subsdios para aplicaes prticas. Ubquo em currculos acadmicos da rea, por sua to grande
importncia conceitual e prtica costuma-se recomendar que seja apresentado o mais precocemente
possvel aos estudantes das reas da computao
e afins [2935]. Historicamente, constata-se que
seu estudo foi inicialmente direcionado para questes lingusticas associadas representao e tratamento de lingua-gem natural, mas acabou conquistando a expresso que hoje apresenta ao se
notar sua poderosa praticidade em aplicaes voltadas para a compilao ou interpretao de linguagens de programao em computadores digitais.
Essa disciplina concentra sua ateno nas linguagens, apreciadas especialmente do ponto de
vista de especificao e de reconhecimento, e tambm no estudo de modelos constitudos por abstraes gerativas e cognitivas a elas associadas,
consideradas tais linguagens segundo sua estrutura, propriedades, caractersticas, classificaes
e inter-relacionamento.
Proporciona um variado e poderoso ferramen-

proporciona fundamentos tericos para a


rea, atravs do estudo de assuntos tais
como decidibilidade, computabilidade e
complexidade computacional;
fornece um slido lastro para o desenvolvimento de inmeras aplicaes computacionais, entre as quais o processamento de linguagens, o reconhecimento de padres e a
modelagem de sistemas;
estabelece um forte elo entre a teoria e a
prtica computacional;
permite que os conceitos e os resultados da
teoria referente s linguagens, seus geradores, reconhecedores e analisadores possam
ser aplicados de forma rgida;
um dos temas que se mostra mais ecltico
e menos divorciado dos demais assuntos estudados na Teoria da Computao.
Segundo uma das grandes autoridades mundiais
no assunto, Arto Salomaa [36], curioso observar
que o tema das linguagens formais e autmatos,
enquanto para tantos representa o principal tpico
da pesquisa na Cincia da Computao, para outros constitui apenas algo de importncia muito
duvidosa. O autor jocosamente insinua ser isso
apenas reflexo da poca e da cultura dos pareceristas.

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

ISSN 2176-7998

14

Comentando sobre a receptividade dessa disciplina pelos seus alunos, Peter Lintz menciona em
sua obra [37] que os estudantes por vezes a rotulam como superfluamente abstrata e intil na
prtica. Sugere que, em resposta a essa tendncia, o professor oriente seu ensino atravs de exerccios, e que continuadamente conscientize os alunos dos interessantes desafios que tais disciplinas
vo impondo sua persistncia e inventividade na
manipulao de problemas de difcil soluo.
Hopcroft e Ullman afirmam em seu livro clssico da rea [38] que esta disciplina compe uma
importantssima sub-rea da Cincia da Computao.
Lembram que Noam Chomsky criou em 1956
um modelo matemtico na forma de gramtica,
com o qual se props a estudar a sintaxe de lnguas
naturais, mas alguns anos mais tarde seu modelo
revelouse expressivo em outra rea, ganhando impulso por adequar-se perfeitamente formalizao
da lingua-gem de programao ALGOL 60.
O estudo terico da relao, hoje inseparvel,
entre gramticas e os correspondentes autmatos
acabou levando criao da importantssima ideia
dos compiladores dirigidos por sintaxe, e tambm
do conceito de compilador de compiladores, ou
seja, dos geradores automticos de compiladores,
ambos at hoje muito utilizados [39].
digno de uma cuidadosa e responsvel ateno o alerta, proclamado por Hopcroft e Ullman
[38],lembrando que virtualmente impossvel fazer qualquer estudo srio na rea da Computao
no qual no seja priorizada a fluncia do estudante
nas tcnicas e nos resultados emanados da teoria
das linguagens formais e dos autmatos.
3.1.2 Linguagens de Programao
Outro assunto, que se revela de imensa importncia terica e prtica na vida do profissional
de computao, refere-se s linguagens de programao. Este artigo procura no se reportar s lingua-gens especficas propriamente ditas,
atendo-se, por questes de escopo, somente ao aspecto terico e conceitual do estudo de linguagens
de programao em geral.
Os temas tericos mais relevantes, associados ao
estudo das linguagens de programao, incluem:
O Clculo Lambda e a Teoria dos Combinadores, teorias matemticas que fundamentam a programao funcional;
A Lgica de Floyd-Hoare, sistema formal
usado para provar correo de programas
imperativos. preciso lembrar que os mtodos formais tm adquirido importncia crescente, permeando estudos srios em Engenharia de Software, e fundamentando muitas de suas prticas contemporneas;
A relativamente recente Teoria de Objetos,
estabelecida por Abadi e Cardelli, que fun-

damenta toda a rea da programao orientada a objetos, atualmente muito disseminada e em expanso;
As Semnticas Formais clssicas, voltadas
especificao formal da interpretao das
lingua-gens de programao: semntica operacional, semntica denotacional e semntica axiomtica.
O estudo terico das linguagens de programao
vem recebendo contribuies de diversas origens, e
em muitas direes, compreendendo assuntos fundamentais, relativos composio, aos domnios,
aos escopos, s ligaes, s transies, s regras
de inferncia associados aos programas que com
elas podem ser desenvolvidos.
Razes no faltam para que seja reconhecida a
necessidade de um conhecimento profundo da teoria das linguagens de programao por parte de
qualquer profissional que atue na rea de computao:

Vol. I
No. 1

A radicalizao da aplicao do conceito de


reaproveitamento de cdigo tende, progressiva e desnecessariamente, a levar os programadores a se afastarem das tarefas mais criativas e originais da profisso, reduzindo aos
poucos a nobre atividade de programao a
um mero processo, cada vez mais mecnico
e menos intelectual, de seleo e reorganizao de componentes prfabricados.
As linguagens de programao modernas incorporam inmeros conceitos no-triviais,
como por exemplo, sofisticados sistemas de
tipos, e por isso mesmo seu uso competente
exige no apenas programadores com prtica, mas profissionais que apresentem um
mnimo de intimidade com os conceitos e
fundamentos abstratos que lhes so subjacentes, para que possam utilizar essas linguagens em todos os seus recursos.
A necessidade crescente do desenvolvimento
de sistemas de software de grande porte
torna a especificao dos programas uma
tarefa cada vez mais difcil de realizar por
parte de profissionais que no possuam um
profundo conhecimento e grande fluncia na
utilizao do indispensvel ferramental conceitual exigido em tais projetos.
Para o desenvolvimento de softwares de segurana, nos quais os requisitos de qualidade
se manifestam em nveis muito superiores
ao que se pratica usualmente no desenvolvimento de programas convencionais, tornase necessrio o uso de mtodos rigorosos de
verificao e de validao formal, cuja aplicao competente exige do profissional profundos conhecimentos tericos, e no apenas
uma habilidade puramente pragmtica.
Todo sistema de software que oferece a seus
usurios uma interface, atravs da qual sejam feitas as comunicaes entre o programa

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

ISSN 2176-7998

15

e seu operador, requer algum tipo de procesAludindo a essas posies, professadas por tansador de linguagem, para cuja concepo e tos profissionais, cita ainda o autor um trecho do
projeto so necessrios profundos conheci- Dicionrio Oxford, que contrasta os conceitos de
mentos e habilidades tericas.
cincia e de arte: aquela, fundamentada em prin Sistemas que se utilizam extensivamente de cpios e na constante utilizao dos mesmos; esta,
conceitos e conhecimentos tericos relativos sustentada pelo conhecimento de tradies e pelas
s linguagens de programao esto presen- destrezas que se desenvolvem atravs da prtica.
tes em toda parte, destacando-se os sistemas
de comunicao, os sistemas de manipulao simblica em geral, os processadores de
texto, os sistemas operacionais e muitos outros.

Gries ainda afirma que a programao s poder se converter em uma cincia atravs do cultivo de uma profunda maturidade matemtica,
acompanhado de uma inteno real de empregar
esse tipo de recurso na prtica do dia-a-dia.
Vol. I
No. 1

3.1.3 Cincia da Programao

3.1.4 Computabilidade

Em seu prefcio ao livro de David Gries [40], o


conceituado prof. Edsger W. Dijkstra manifesta
sua preocupao com a resistncia mental que
surge toda vez que se prope o uso de tcnicas do
pensamento cientfico em uma nova rea de conhecimento, e recomenda um cuidado especial ao
se procurar convencer nefitos de que, embora
primeira vista isso no seja evidente, aqueles inteis formalismos abstratos no apenas so muito
teis, como tambm indispensveis.

De forma anloga ao que se pode observar em


outras especialidades cientficas, uma grande variedade de importantes descobertas desta fascinante rea do conhecimento foi obtida teoricamente, muito antes de sua prtica tornar-se tecnologicamente vivel.

Ainda nesse livro, o autor sugere que esse fenmeno assim ocorre devido a uma srie de razes:

Infelizmente, tal fato induziu, e ainda hoje induz muitos, dissociao entre os fatos ligados
ao estudo e ao uso dos computadores e os ensinamentos proporcionados pela Teoria da Computabilidade.

Kfoury, Moll e Arbib [41] afirmam, no entanto,


em
seu livro que, por sua importncia, a Teoria
Muitas vezes, pessoas que desconhecem o asda
Computabilidade
pode e deve ser considerada
sunto costumam colocar objees injustificacomo
sendo,
apesar
de
tudo, o corao da Cincia
das a seu uso, em funo da dificuldade que
da
Computao.
sentem em compreender e conviver com notaes matemticas, formalismos, tcnicas
Nessa linha, tem-se procurado determinar e derigorosas e provas formais.
senvolver um alicerce cientfico para o estudo de
Alegando serem esses formalismos desneces- assuntos relacionados com a Informtica de modo
srios no dia-a-dia, argumentam que, em geral, e em particular,de assuntos ligados ao provista do demorado e oneroso preparo prvio cessamento de dados atravs de algoritmos, ao
exigido de um profissional para que esteja projeto de computadores digitais e ao projeto de
apto a us-los fluentemente, torna-se lcito programas desenvolvidos em linguagens de proe prtico aceitar como satisfatria a quali- gramao.
dade de programas pragmaticamente resulDesde meados do sculo passado, em diversos
tantes de desenvolvimentos artesanais, efe- aspectos se tem observado um crescimento signifituados sem qualquer ajuda de mtodos ri- cativo do desenvolvimento da Computao, como
gorosos.
por exemplo: a sofisticao dos processos; o baOutro argumento, infundado e recorrente, rateamento dos componentes eletrnicos e o vioalega ser difcil e at invivel o emprego lento aumento de sua capacidade e complexidade;
de tcnicas rigorosas para desenvolver e a viabilizao de equipamentos eletrnicos muito
implementar programas de grande porte, poderosos e a custo acessvel; os avanos nas mecuja ocorrncia se mostra cada vez mais todologias de programao; a drstica reduo do
tempo necessrio para a obteno de programas
freqente na prtica.
complexos e confiveis; o desenvolvimento de tcPor incrvel que parea, alguns profissionais
nicas avanadas de especificao rigorosa de proda rea alegam ser muito mais importante gramas, processos e equipamentos.
que se disponha de uma especificao basNesse contexto, a grande aplicabilidade da Teotante precisa para um software a ser desenria
da Computabilidade pode ser facilmente idenvolvido do que o correspondente programa
tificada,
considerando-se que abrange, entre muiestar, ele prprio, correto.
tos outros assuntos:
No extremo, outros alegam ainda que o
Aspectos da sintaxe e da semntica de
mundo real dispensa provas formais, e que,
lingua-gens de programao
para todos os efeitos, na prtica suficiente
apenas que o programa desenvolvido cum Estudo da enumerao e da universalidade
pra sua tarefa.
das funes computveis

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

ISSN 2176-7998

16

Tcnicas de computabilidade e estado computvel de problemas

se detm nos aspectos da viabilidade prtica da


execuo de algoritmos considerados adequados
Metodologia de programao e prova de cor- para a tarefa.
Assim, os problemas computveis conseguem
reo de programas
motivar os estudiosos da Computabilidade no
Semntica denotacional
apenas por representarem curiosos desafios a seProgramas recursivos
rem resolvidos pelo programador, mas tambm
Regras de prova para propriedades dos pro- por constiturem por si prprios interessantes objetos de estudo:
gramas

Auto-referncia em computabilidade e teorema da recurso

variados formalismos esto disponveis para


sua modelagem e estudo

Conjuntos, conjuntos recursivos, conjuntos recursivamente enumerveis, teorema de


Gdel

uma vez abstrados e formalizados, podem


ser analisados de maneira independente do
particular formalismo com o qual foram representados

Mquina de Turing e formulaes alternativas da teoria da computabilidade.


Automatizao da prova de teoremas
Monty Newborn, em seu livro sobre provadores automticos de teoremas [15], comenta que os
computadores modernos tm evoludo muito rapidamente, ficando, cada vez mais, velozes, compactos e baratos, e j permitiram a construo de
programas capazes de provar teoremas e at de
vencer campees mundiais de xadrez.
3.1.5 Complexidade computacional

Vol. I
No. 1

ao estudarem as propriedades dos problemas, os pesquisadores buscam para eles


solues que preferencialmente sejam ao
mesmo tempo rpidas e compactas
para essas propostas de soluo, so consideradas particularmente convenientes aquelas
que apresentem requisitos polinomiais em
suas exigncias de rea de trabalho, e de
tempo de resposta
as solues mais adequadas na prtica so
aquelas que apresentam, no espao e no
tem-po,comportamento polinomial de ordem baixa (de preferncia, linear)

Em artigo recentemente publicado [42], o conceiMuitos tpicos costumam ser considerados dentuadssimo prof. Peter Denning, reportando-se a
observaes da realidade do dia-a-dia das prin- tro da temtica da Complexidade Computacional:
cipais aplicaes dos computadores, resume, em
Algoritmos: modelos de computao copoucas palavras, a relevncia e o impacto que tem
nhecidos podem ser convertidos algoritmio tema Complexidade Computacional sobre as aticamente uns nos outros, com uma perda
vidades do profissional da rea:
polinomial de eficincia, exceto nos casos no-determinsticos, de resposta expo. . . over 3,000 common problems in scinencial. Assimetrias e no-determinismos
ence, engineer-ng, and business are so
criam atraentes possibilidades para a classidifficult to solve that even the fastest
ficao de problemas quanto sua complesupercomputers would take centuries
xidade computacional.
on simple versions.
(Peter J. Denning The profession of IT
Communications of the ACM, v.51, n.
8, aug. 2008, p. 21)
De origem relativamente recente, datada da segunda metade da dcada de 1970,a Teoria da
Complexidade Computacional tem recebido uma
extraordinria ateno dos pesquisadores da Cincia da Computao, em vista de sua grande importncia para a rea [2, 28].
O estudo da Complexidade Computacional
exige a compreenso de fenmenos no triviais, resultantes da interao da computao, da lgica e
das aplicaes, para investigar as razes de alguns
problemas apresentarem solues computacionais
to onerosas.
Enquanto a Teoria da Computabilidade se
ocupa de determinar a possibilidade ou no de
uma dada classe de problemas poder ser resolvida
algoritmicamente, a complexidade computacional

Mquina de Turing: Computabilidade e Decidibilidade: de aparncia primeira vista


obscura, e dispondo de operaes bsicas
muito primitivas, a Mquina de Turing
mostra-se capaz de representar algoritmos
sem significativa perda de eficincia, o que
a tem consagrado como modelo de computao. Computacionalmente muito poderosa, a Mquina de Turing capaz at
mesmo de computar fatos no-triviais sobre os algoritmos que representam.Todavia,
h muitos problemas, ditos incomputveis,
aos quais no existe qualquer possibilidade
de se associar um algoritmo, ainda que ineficiente. Mquinas de Turing estritamente
representam, portanto, problemas computveis. Estuda-se, para problemas computveis, o fenmeno da decidibilidade: alguns dos problemas computveis, ditos indecidveis, so representados por Mquinas de

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

ISSN 2176-7998

17

Turing que iniciam um processamento infi- transcreve-se a seguir um trecho de uma entrenito em resposta a certos dados de entrada, vista [43] dada pelo conceituado prof. Denning:
enquanto os demais (problemas decidveis)
The four core practices of compugarantidamente terminam o seu processating professions are programming, sysmento qualquer que sejam os dados a elas
tems, modeling, and innovating.To be
fornecidos. Naturalmente, quando possvel,
a complete computing professional,
os ltimos so os preferidos, em termos pryou should know the principles and be
ticos.
competent in the four practices.
Lgica booleana e Lgica de Primeira Ordem: Estas formulaes permitem criar sis(Entrevista do prof. Peter J. Denning
temas de provas gerais e compreensveis, por
Ubiquity)
meio de comandos matemticos detalhados
cuja semntica associa cada sentena resTem-se observado uma queda cada vez mais
pectiva aplicao matemtica, permitindo
pronunciada na qualidade da formao dos futuexpressar fatos sobre computaes, o que
ros profissionais da Computao no que tange
propicia o surgimento de problemas lgicos
concepo e implementao de programas, esindecidveis.
pecialmente os de porte menor.
O estabelecimento de Classes de CompleA formao que eles recebem tem, nesses casos,
xidade e sua inter-relao um assunto negligenciado os essenciais aspectos microscpicos
complexo e com inmeros pontos ainda em da problemtica dos projetos pequenos, em favor
aberto, e isso tem motivado diversos traba- de uma forte polarizao para a gesto de grandes
lhos na rea, e dado origem a muitos assun- projetos de software ou para o desenvolvimento de
tos de investigao, constituindo assim um grandes sistemas.
tema bastante adequado para pesquisa atual
Como resultado,nota-se,da parte do profissioem Cincia da Computao.
nal, uma perda sensvel de habilidade de pro Redues e completude: O uso da lgica jeto de programas e algoritmos, uma dificuldade
se revela muito interessante quando, atra- de compreenso de diversos assuntos ligados s
vs das tcnicas de reduo, se torna pos- lingua-gens de programao e sua utilizao
svel estabelecer pontos em comum acerca como instrumento para o desenvolvimento de proda dificuldade apresentada pelos problemas gramas. Observa-se ainda uma notria deficincia
pertencentes a toda uma classe de comple- em sua criatividade para a resoluo autnoma de
xidade. O estudo da NP-completude e de problemas, sem recorrerem a repositrios de protemas afins suscita importantes mtodos de gramas pr-existentes.
anlise da Complexidade Computacional.
Em relao a isso, j em 1981 o renomado David
A dificuldade apresentada por determinados Gries alertava [40] que, no mnimo, os programas
problemas pode demonstrar-se til e no in- grandes podem ser vistos como uma coleo orgadesejvel como ocorre na maioria dos casos nizada de programas menores, e que ningum se
prticos. o que ocorre no estudo da Crip- pode considerar especialista em produzir progratografia, no qual a complexidade dos algo- mas grandes de qualidade enquanto no se provar
ritmos justamente aquilo que se busca e um perito no desenvolvimento de bons programas
se necessita ter sob controle. Curiosamente, pequenos.
nessas exatas situaes em que a complexiPode-se acrescentar que temerrio considerar
dade mais almejada, que se mostra mais
capacitado para gerir um dado projeto um profisdifcil obter a sua manifestao.
sional no dotado de um pleno domnio sobre to Computao paralela uma rea de inte- dos os aspectos do mesmo, pois dificilmente costuresse na qual se mostra mais necessrio e mam ser passivamente acatadas as diretrizes emamais rduo o estudo da complexidade com- nadas por gestores que no estejam aptos a deputacional, especialmente quando tal es- monstrarem competncia nos assuntos a que se
tudo envolve simultaneamente numerosos refere o projeto que pretendem conduzir.
elementos como agentes paralelos.
Outro assunto de importncia para a presente
reflexo, refere-se influncia da adoo de mtodos baseados em formulaes tericas na quali4 Formao dos profissionais
dade dos produtos gerados pelos profissionais de
computao.
da rea
Alvo tradicional da pesquisa terica da comComplementando as diversas aluses j feitas an- putao,a resoluode problemas formulados de
teriormente neste artigo, cabem algumas observa- maneira precisa e rigorosa atravs de formalismos
es adicionais sobre a maneira como se formam matemticos bem estabelecidos mostra-se essenou como deveriam ser formados os profissionais cial para assegurar a construo de programas de
que trabalham com Computao. Inicialmente, alta qualidade.

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

ISSN 2176-7998

Vol. I
No. 1

18

Tais formulaes constituem, na prtica, um


grande desafio, representando um importante auxlio a atividades de projeto, e, por suas propriedades, podem ser exploradas no estabelecimento
de mtodos de avaliao objetivos.
As mtricas assim desenvolvidas se empregam
em instrumentos de avaliao que utilizam ndices
de mrito do software, o que proporciona formas
objetivas interessantes no apenas para avaliaes
individuais como tambm para comparaes entre
diferentes softwares e para uso em sistemas de auxlio tomada de decises.

quanto Funes Recursivas e Clculo Lambda seriam empregados para o paradigma funcional e
outros paradigmas declarativos.
Do ponto de vista pedaggico, para que possam
ser adequadamente fundamentadas as diferentes
atividades ligadas programao, aconselham os
autores que se d certa uniformidade nfase com
que efetuado o estudo dos diferentes modelos de
computao disponveis.
Com a formao conceitual abrangente, assim
proporcionada, os profissionais tero condies de
gerar solues simples e transparentes para seus
problemas, e como decorrncia natural, de produzir para eles programas eficientes, elegantes e
corretos.
muito atual e oportuno meditar muito seriamente sobre o cenrio cientfico e tecnolgico
em que trabalha o profissional da computao nos
dias de hoje.

As principais metas que se costuma perseguir


quando se utilizam tais mtodos so: embasamento matemtico slido para os modelos desenvolvidos; fundamentao cientfica para as decises tomadas; alta qualidade tcnico-cientfica
para os produtos desenvolvidos; anteposio de
um planejamento cientfico aplicao de prticas
tecnolgicas; expurgo conseqente da prtica de
De um lado, possvel adquirir conhecimentos
reapro-veitamento mope de peas pr-fabricadas
para formar conscincia da importncia que tm
no desenvolvi-mento de produtos de software de
no dia-a-dia os temas difceis e abstratos de que
alta qualidade.
tratam as disciplinas tericas da rea da Computao, e gratificante a certeza da utilidade de
uma slida formao, resistente moda, ao tempo
e tecnologia, que paire inabalvel acima de ten5 Concluso
dncias polticas e mercadolgicas.
Para atender s necessidades de uma poca em
que se faz necessrio exigir do profissional uma
capacitao cada vez melhor e mais ampla, preciso um constante esforo de reciclagem e atualizao, tanto da parte dos profissionais como das
instituies de ensino, para que seja possvel bem
trabalhar com os atuais sistemas computacionais,
de complexidade e calibre sempre crescentes.
consenso ser fator distintivo dos mais capacitados profissionais da Informtica o conhecimento e domnio das teorias, abstraes e conceitos que fundamentam suas atividades tcnicas, e
essa distino se evidencia progressivamente medida que, simultaneamente, crescem as dimenses
dos sistemas computacionais contemporneos.
Na rea acadmica, verifica-se um crescente
afastamento de metas entre disciplinas formativas e as de carter mais pragmtico, e isso outro
preocupante motivo de ateno.
Cabe assim um alerta sobre a necessidade de
resgate das importantes relaes entre elas existentes, manifestas nas afinidades entre os modelos
abstratos estudados na teoria e as atividades, mtodos e tcnicas prticas de programao que neles
devem sempre se apoiar.
Flvio S. C. da Silva e Ana C. V. de Melo defendem em seu livro [17] a existncia de uma forte
afinidade entre cada paradigma de programao
e algum dos modelos de computao existentes,
sugerindo que para cada paradigma seja utilizado
o modelo de computao que lhe for mais expressivo. Assim, por exemplo, seriam usadas mquinas de Turing para o paradigma imperativo, en-

Vol. I
No. 1

De outro,a observao dos fatos do nosso mundo


traz muitas incertezas sobre a maneira como sero
tratados esses assuntos no futuro.
angustiante a constatao de que a influncia
do desconhecimento e da falta de preparo, aliados
ao imediatismo, venha de h muito produzindo
seus efeitos, especialmente atravs de decises tomadas com base em prioridades distorcidas, que
acabam criando importantes barreiras a uma boa
formao profissional.
Desse quadro, os maus efeitos que ainda no vieram tona seguramente se manifestaro em futuro prximo, quando, com certeza, uma reforma
para a reverso dessa situao dever mostrar-se
muito difcil, demorada e one-rosa, se no invivel.
Referindo-se em particular ao futuro das atividades de programao, em entrevista concedida a
Edward Feigenbaum [44], o respeitadssimo prof.
Donald Knuth faz um grave alerta que convida
reflexo, dada sua veracidade e as severas consequncias no mencionadas, dela decorrentes:
Im worried about the present state
of programming. Programmers now
are supposed to mostly just use libraries. Programmers arent allowed to
do their own thing from scratch anymore. Theyre supposed to assemble
reusable code that somebody else has
written. Theres a bunch of things on
the menu and you choose from these
and put them together. Wheres the
fun in that? Wheres the beauty in

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

ISSN 2176-7998

19

that?
(Commun. of the ACM, v.51, n.8,
aug. 2008, p. 35)

[14] B. Meyer, Introduction to the Theory of


Programming Languages. Englewood Cliffs:
Prentice Hall, 1990.

[15] M. Newborn, Automated theorem proving:


Fica ento esta pergunta para ser respondida:
theory and practice. Springer Verlag, 2001.
se as atuais tendncias continuarem como as observamos hoje, com que dever parecer-se a nossa [16] G. Winskel, The Formal Semantics of Programming Languages. Cambridge, Massachuprofisso daqui a uns quinze ou vinte anos? No
setts: MIT Press, 1993.
apenas no que tange atividade da programao,
mas igualmente a todas as outras especialidades [17] F. S. C. Silva and A. C. V. Melo, Modelos
da rea da Computao. . .
Clssicos de Computao. Thomson, 2006.

Referncias
[1] D. I. A. Cohen, Introduction to Computer
Theory. Wiley, 1997. 2nd ed.
[2] H. R. Lewis and C. H. Papadimitriou, Elementos da Teoria da Computao. Porto Alegre: Bookman, 2004.

[18] R. W. Sebesta, Concepts of Programming


Languages. Redwood City, Calif.: Wiley,
2002.

Vol. I
No. 1

[19] F. Beckman, Mathematical Foundations of


Programming.
Boston: Addison-Wesley,
1980.
[20] J. Reynolds, Theories of programming languages. Cambridge University Press, 1998.

[3] H. Barendregt, The Lambda Calculus: Its [21] N. Greenlaw and H. Hoover, Fundamentals of
the Theory of Computation. San Francisco:
Syntax and Semantics, volume 103 of Studies
Morgan Kauffman, 1998.
in logic and the foundations of mathematics,
vol. 155. 1984.
[22] W. A. Wulf, M. Shaw, and P. N. Hilfinger,
Fundamental Structures of Computer Sci[4] R. Backhouse, Syntax of Programming Lanence. Reading, Massachusetts: Addison Wesguages. London: Prentice-Hall International,
ley Publishing Company, 1981.
1979.
[5] J. J. Neto, Adaptive rule-driven devices
general formulation and case study, in
CIAA (B. W. Watson and D. Wood, eds.),
vol. 2494 of Lecture Notes in Computer Science, pp. 234250, Springer, 2001.
[6] F. G. Pagan, Formal Specification of Programming Languages: A Panoramic Primer. Englewood Cliffs, New Jersey 07632.
Prentice-Hall, Inc., 1981.

[23] E. R. Schneiderman, Matemtica Discreta


uma introduo. Thomson, 2003.
[24] N. L. Biggs, Discrete Mathematics. Oxford
Science Publications, Clarendon Press, revised ed., 1989.
[25] A. G. Hamilton, Logic for mathematicians.
1990. revised edition.
[26] E. Mendelson, Introduction to mathematical logic, Van Nostrand-Rein-hold Co., New
York, 1964.

[7] K. Slonneger and B. Kurtz, Formal Syntax and Semantics of Programming Langua- [27] J. K. Truss, Discrete mathematics for comges: A Laboratory Based Approach. Addisonputer scientists. Addison-Wesley, 1994.
Wesley, 1995.
[28] C. Papadimitriou and C. Papadimitriou,
[8] C. L. Lucchesi and et al, Aspectos Tericos
Computational complexity. Addison-Wesley
da Computao. Impa CNPq, 1979.
Reading, MA, 1994.
[9] J. C. Martin, Introduction to Languages and [29] J. Carroll and D. Long, Theory of Finite Authe Theory of Computation. New York:
tomata with an Introduction to Formal LanMcGraw-Hill, 2003.
guages. Prentice Hall, 1989.
[10] M. Sipser, Introduo Teoria da Computao. Editora Thomson Learning, 2007.

[30] P. G. et al., Teora de autmatas y lenguajes


formales. Mxico: Alpha mega, 2001.

[11] T. Scheurer, Foundations of computing: sys- [31] M. Harrison, Introduction to formal language
tem development with set theory and logic.
theory. Addison-Wesley Longman Publishing
Addison-Wesley Longman Publishing Co.,
Co., Inc. Boston, MA, USA, 1978.
Inc. Boston, MA, USA, 1994.
[32] J. E. Hopcroft and J. D. Ullman, Introduction
[12] M. Gordon, Programming Language Theory
to Automata Theory, Languages and Compuand Its Implementation. Englewood Cliffs:
tation. Reading, MA: Addison Wesley, 1979.
Prentice-Hall, 1988.
[33] J. E. Hopcroft, R. Motwani, and J. D. Ull[13] A. D. McGettrick, The Definition of Proman, Introduction to Automata Theory, Langramming Languages. Cambridge University
guages, and Computation. Addison Wesley,
Press, 1980.
2001.

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

ISSN 2176-7998

20

[34] R. Muoz and L. Villodre, Lenguajes, gramticas y autmatas: Curso bsico. Mxico:
Alpha mega, 2002.
[35] G. Revesz, Introduction to Formal Language
Theory, 1983.
[36] A. Salomaa, Jewels of formal language theory. Computer Science Press, Incorporated,
1981.

interviews/v8i22_denning.html last visited 30th December 2007.


[44] E. Feigenbaum, Interview with Donald
Knuth: A lifes work interrupted, Communications of the ACM, vol. 51, pp. 3135, aug
2008.

[37] P. Linz, An Introduction to Formal Languages and Automata. Boston: Jones and Bartlett Publishers, 2006.
[38] J. E. Hopcroft and J. D. Ullman, Formal
languages and their relation to automata.
Addison-Wesley Longman Publishing Co.,
Inc. Boston, MA, USA, 1969.
[39] A. Aho, The Theory of Parsing, Translation,
and Compiling. Englewood Cliffs: PrenticeHall, 1972.
[40] D. Gries, The Science of Programming.
Springer-Verlag, 1981.
[41] A. Kfoury, R. Moll, and M. Arbib, A
Programming Approach to Computability.
Springer-Verlag, 1982.
[42] P. J. Denning, The profession of IT, Communications of the ACM, vol. 51, Aug. 2008.
[43] J. Gehl, Ubiquity Interview:
Great
Principles of Computing. Ubiquity Editor John Gehl interviews Peter J. Denning about the progress of the Great
Principles Project, Ubiquity An ACM
IT Magazine and Forum, vol. 7, November 2006. http://www.acm.org/ubiquity/

Vol. I
No. 1

Mini-currculo do autor: Joo Jos Neto graduado em Engenharia de Eletricidade (1971), mestre em Engenharia Eltrica (1975),
doutor em Engenharia Eltrica (1980) e livre-docente (1993) pela
Escola Politcnica da Universidade de So Paulo. Atualmente,
professor associado da Escola Politcnica da Universidade de So
Paulo e coordena o LTA Laboratrio de Linguagens e Tecnologia Adaptativa do PCS Departamento de Engenharia de Computao e Sistemas Digitais da EPUSP. Tem experincia na rea
de Cincia da Computao, com nfase nos Fundamentos da Engenharia da Computao, atuando principalmente nos seguintes
temas: dispositivos adaptativos, tecnologia adaptativa, autmatos adaptativos,e em suas aplicaes Engenharia de Computao,particularmente em sistemas de tomada de deciso adaptativa, anlise e processamento de linguagens naturais, construo
de compiladores, robtica, ensino assistido por computador, modelagem de sistemas inteligentes, processos de aprendizagem automtica e inferncias baseadas em tecnologia adaptativa.

21

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

ISSN 2176-7998

Você também pode gostar