Escolar Documentos
Profissional Documentos
Cultura Documentos
profissional de informtica
Vol. I
No. 1
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.
ISSN 2176-7998
1 Introduo
Vol. I
No. 1
ISSN 2176-7998
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.
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.
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.
ISSN 2176-7998
Vol. I
No. 1
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.
ISSN 2176-7998
Vol. I
No. 1
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-
ISSN 2176-7998
Vol. I
No. 1
11
3 Convenincia do Estudo de
Teoria
Vol. I
No. 1
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
ISSN 2176-7998
13
Vol. I
No. 1
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-
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
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.4 Computabilidade
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.
ISSN 2176-7998
16
Vol. I
No. 1
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
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.
ISSN 2176-7998
Vol. I
No. 1
18
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.
Vol. I
No. 1
ISSN 2176-7998
19
that?
(Commun. of the ACM, v.51, n.8,
aug. 2008, p. 35)
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.
Vol. I
No. 1
[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.
[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.
[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.
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.
[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
ISSN 2176-7998