Você está na página 1de 10

CINTED-UFRGS

Novas Tecnologias na Educao

Compilador Educativo VERTO: ambiente para aprendizagem de compiladores VERTO Educational Compiler: environment for compiler learning Carlos Srgio Schneider* Liliana Maria Passerino** Ricardo Ferreira de Oliveira***

Resumo: O Compilador Educativo Verto surgiu da necessidade de desenvolver uma ferramenta para apoio pedaggico na disciplina de Compiladores do Centro Universitrio Feevale. A disciplina de Compiladores no contexto de um curso de graduao, objetiva levar o aluno a perceber concretamente as diversas etapas envolvidas no processo de compilao, elaborando, ao final da disciplina, o projeto de um compilador funcional para uma gramtica simples. O Compilador Verto foi escrito na linguagem de programao Java e elaborado sob os termos da licena GPL (GNU General Public License). Com este ambiente visamos proporcionar aos estudantes de Compiladores um projeto aberto e documentado para utilizao em seu aprendizado, apoiando a compreenso das fases de um compilador, sobretudo as fases de sntese de cdigo intermedirio e gerao de cdigo-objeto, promovendo uma aprendizagem contextualizada. Palavras-chave: contextualizada Abstract: The Verto Educational Compiler has arisen from the need to develop a tool intended to provide pedagogical support to the compilers course of the Centro Universitrio Feevale. This course, in the undergraduate context, aims to conduct the student to perceive in a concrete way the several phases related to the compiling process, developing, at the end of the course, a project of a functional compiler for a simple grammar. The Verto Compiler was written in the Java programming language under the terms of the GPL (GNU General Public License). With this environment we aim to provide the students of Compilers an open and documented project for use in its learning, supporting the understanding of the diverse involved stages, mainly the phases of synthesis of intermediate code and code-object generation, promoting a context learning. Keywords: virtual learning environment, education of compilers, context learning ambientes digitais, ensino de compiladores, aprendizagem

Ensino de Compiladores e Aprendizagem Contextualizada

Mestre em Engenharia de Produo pela PPGEP/UFRGS. Professor da Cincia em Computao do Centro Universitrio FEEVALE. carlos.schneider@feevale.br ** Doutora em Informtica na Educao PGIE/UFRGS. Coordenadora de Estgios da Licenciatura em Computao e Assessora em Tecnologias Educacionais do NATE/NEAD do Centro Universitrio FEEVALE. liliana@feevale.br *** Mestre em Cincia da Computao pela PUC-RS. Professor da Cincia e da Licenciatura em Computao do Centro Universitrio FEEVALE. ricardofo@feevale.br V.3 N 2, Novembro, 2005 1

Novas Tecnologias na Educao

CINTED-UFRGS

Os compiladores so ferramentas que, dito de forma simplificada, realizam a leitura de um programa escrito em uma linguagem (linguagem fonte) e a traduzem para uma outra linguagem (linguagem objeto) mantendo a semntica original (Aho et al., 1995). Durante esse processo de traduo, o compilador deve realizar duas tarefas bsicas: a anlise, na qual o texto-fonte verificado, analisado e compreendido em seus aspectos semnticos e a sntese, na qual o texto-objeto gerado de forma a corresponder ao texto de entrada (Rangel, 2005). O ensino de compiladores aborda, portanto, aspectos relativos ao estudo de tcnicas e mtodos especficos para anlise lxica, sinttica e semntica, organizao da tabela de smbolos, gerenciamento de erros e gerao de cdigo. Logo, percebemos que o ensino de compiladores, alm de ser fundamental na Cincia da Computao, envolve o ensino de contedos eminentemente procedimentais. Um contedo procedimental, segundo Zabala (1998) se caracteriza por ser um contedo no qual o aluno deve apropriar-se de um processo de construo que parte de um conjunto de aes, modos de agir, de acordo com metas especficas. Sua aprendizagem, portanto, consiste na aprendizagem de um processo composto por uma seqncia ordenada de passos ou etapas, na qual participam tcnicas, estratgias e mtodos como componentes do contedo procedimental. Desta forma, o desenvolvimento de um trabalho prtico uma das questes fundamentais relacionada disciplina de Compiladores que envolve geralmente o projeto de um compilador e proporciona aos alunos a oportunidade de aplicao das tcnicas estudadas nesta e outras disciplinas como teoria da computao, linguagens e autmatos, sistema operacionais e arquiteturas de computadores. Mas, frente a esta necessidade, enfrentamos um problema de prxis educativa que implica processos de motivao e significao. Pois, partindo de uma concepo construtivista do processo educativo, no consideramos aprendizagem como o conhecimento de respostas corretas ou reproduo de conhecimentos j definidos. Pelo contrrio, consideramos aprendizagem como uma construo de uma representao pessoal de um contedo que objeto de aprendizagem (Coll, 1998). No nosso caso, esse objeto de aprendizagem o compilador e suas funcionalidades e caractersticas. Porm, muitos estudantes no tm a expectativa de vir a estar engajados em projetos de construo de compiladores em sua vida profissional e desta forma, tendem a considerar o estudo de Compiladores menos relevante que outras disciplinas mesmo que as tcnicas aprendidas possam ser utilizadas numa grande variedade de aplicaes (Debray, 2003) (Henry, 2005). Portanto, conduzir um curso de compiladores em uma disciplina de um nico semestre no uma tarefa fcil. Principalmente considerando que devido s dificuldades apresentadas pelos alunos na compreenso das tcnicas de anlise sinttica abordadas, implica com que as fases de sntese sejam vistas de forma rpida e, em alguns casos, superficialmente. Nesse sentido, e visando auxiliar a compreenso das fases de um compilador, sobretudo das fases finais de gerao de cdigo intermedirio e gerao de cdigo-objeto, foi elaborado o Compilador Educativo Vertoi como parte de um ambiente digital de aprendizagem (ADA) para compiladores. Consideramos o Verto parte de um ADA e no o prprio ambiente pois partimos da concepo proposta por Passerino(2005) na qual um ambiente digital de aprendizagem composto por um conjunto de ferramentas computacionais, um professor mediador, os alunos participantes, as seqncias didticas planejadas para o processo de ensino e aprendizagem apoiadas por uma metodologia de ensino embasada na epistemologia do professor.
2 _________________________________________________________________________________ V. 3 N 2, Novembro, 2005

CINTED-UFRGS

Novas Tecnologias na Educao

A seguir apresentamos as funcionalidades e aspectos tcnicos do Verto para depois entrarmos nas possibilidades educativas do mesmo. Compilador Educativo VERTO O Compilador Educativo Verto surgiu da necessidade de desenvolver uma ferramenta para apoio pedaggico na disciplina de Compiladores do Centro Universitrio Feevale. A disciplina de Compiladores no contexto de um curso de graduao, objetiva levar o aluno a perceber concretamente as diversas etapas envolvidas no processo de compilao, elaborando, ao final da disciplina, o projeto de um compilador funcional para uma gramtica simples. O Compilador Verto foi escrito na linguagem de programao Java e elaborado na forma de um software livre com licena GPLii (GNU Public License). Com este ambiente visamos proporcionar aos estudantes de Compiladores um projeto aberto e documentado para utilizao em seu aprendizado. A questo inicial envolvida na elaborao do projeto Verto foi a escolha de quais seriam as linguagens fonte e objeto utilizadas. Com relao linguagem fonte, a mesma foi especificada utilizando-se portugus estruturado com uma sintaxe prxima a da linguagem C por ser esta de amplo conhecimento dos alunos do curso de Cincia da Computao. Por outro lado, visando a simplicidade de aprendizagem da ferramenta utilizou-se um reduzido conjunto de instrues. J a linguagem objeto escolhida foi a linguagem Csar, implementada na UFRGS pelo prof. Dr. Raul Weber para as disciplinas de Arquitetura de Computadores I e II (Weber, 2001). Os principais fatores que levaram escolha desta linguagem como linguagem-objeto foram: a sua utilizao pelos alunos na disciplina de Arquitetura de Computadores da Feevale; a sua ampla utilizao em outras Universidades; a disponibilidade de acesso ferramenta Csar a partir do servio de ftp da UFRGS e, principalmente, a filosofia envolvida na elaborao da mesma, pois uma ferramenta elaborada com fins didticos, fcil de ser compreendida e dispondo das principais funes encontradas em uma mquina real. O processo de compilao do Verto se d em 2 etapas: inicialmente a ferramenta gera um cdigo-intermedirio em um formato macro-assembler. Este formato visa facilitar a compreenso das estruturas compiladas pois dispe de instrues com formas mais simplificadas das instrues da mquina Cesar. Deste modo, promove-se um melhor entendimento de como as estruturas da linguagem Verto, elaboradas pelo aluno, so transformadas para instrues prximas da mquina objeto. A partir desta forma intermediria, gera-se o arquivo destino final contendo as instrues no formato da mquina hipottica Cesar permitindo que o aluno execute e analise o algoritmo. O foco principal do Compilador Verto so as fases finais do processo de compilao. Devido a isto, optou-se no projeto pela utilizao de uma tcnica de anlise lxica simples e de um mtodo de anlise sinttica recursiva descendente, ou seja, um mtodo Top-Down. A escolha do mtodoiii ateve-se a dois objetivos bsicos: estabelecer uma transio simples entre o processo de projetar uma linguagem e a implementao de um analisador sinttico e procurar elaborar o analisador mais simples possvel que realizasse corretamente sua funo (Metsker, 2001).
V.3 N 2, Novembro, 2005 3

Novas Tecnologias na Educao

CINTED-UFRGS

Figura 1: Esquema de Traduo do Compilador Verto.

A ferramenta dispe de uma janela para edio de textos-fonte escritos na linguagem Verto (Figura 2).

Figura 2: Tela de Edio do Compilador Verto.

A figura 3 mostra um aspecto do cdigo de macro-assembler gerado. Cada linha deste cdigo comentada visando auxiliar o estudante na compreenso e finalidade das instrues geradas. As instrues criadas para este cdigo, so basicamente as mesmas da mquina Cesar com adies no sentido de tornar mais fcil a leitura e o acompanhamento por parte do estudante. Desta forma, foram acrescentadas instrues para manipulao de pilha, rtulos explcitos e rtulos para cadeias de caracteres.

4 _________________________________________________________________________________ V. 3 N 2, Novembro, 2005

CINTED-UFRGS

Novas Tecnologias na Educao

Figura 3: Tela com Cdigo Macro-Assembler.

Como j foi mencionado, a linguagem Verto consiste de um conjunto bastante reduzido de instrues com adaptaes nas funes de entrada e sada devido ao fato da mquina Cesar dispor de um visor limitadoiv. O Verto, tambm, dispe de um menu de ajuda para rotinas e sintaxe como apresentado na figura 4.

Figura 4: Auxlio Sintaxe e Rotinas

Possibilidades educativas do VERTO Antes de discutirmos as questes pedaggicas do Verto, apresentaremos as diferentes etapas do processo de interao possveis entre o aluno e a ferramenta a fim de exemplificar os aspectos pedaggicos que sero destacados a seguir. A interao do aluno com o Verto realizada seguindo as diferentes etapas que um compilador executa no seu processo. Isto importante, pois como mencionamos antes, na aprendizagem de um contedo procedimental, o aluno no somente se apropria dos conceitos pertinentes como tambm das aes ou passos necessrios includos dentro de um contexto (no
V.3 N 2, Novembro, 2005 5

Novas Tecnologias na Educao

CINTED-UFRGS

nosso caso o Verto) e que se traduz numa ao cognitiva (Rubstov, 1996) Assim, cada uma das fases da compilao dispe de uma seo visualmente identificada com uma aba para que o aluno possa consultar o resultado e confrontar suas hipteses (Figuras 2 e 3)
pesquisas nas quais [] os estudantes de programao receberam ajudas grficas que facilitavam a adquisio do modelo mental durante a aprendizagem mostraram uma melhoria na representao do conhecimento com relao a otros que no tiveram tais ajudas. (CAAS, BAJO y GONZALVO 1994, p.173 [traduo nossa])

Para elaborar um algoritmo o aluno dispe de um editor de texto embutido no Verto. Uma vez finalizado o algoritmo, o aluno submete o programa-fonte ao compilador que gera o cdigo macro-assembler intermedirio e o cdigo-objeto na linguagem da mquina hipottica Cesar. Aps submeter um cdigo na linguagem Verto, o estudante tem a oportunidade de consultar a sada de cada uma das fases da compilao. A Tabela de Smbolos, uma tabela onde constam os identificadores encontrados no cdigo-fonte, disponibilizada em uma aba para que o aluno possa consultar ao valores de endereos, tipos, e escopo registrados como apresentado na Figura 2. Ao realizar a anlise do posicionamento dos rtulos, da lgica utilizada na traduo, do uso de endereos absolutos ou relativos o estudante pode construir um melhor entendimento das aes tomadas pelo compilador aps o reconhecimento das regras sintticas. Nesse sentido, ao confrontar suas hipteses com os resultados obtidos o aluno desenvolve um raciocnio contextualizado fortemente embasado na resoluo de problemas. A resoluo de problemas , segundo, Rubstov(1996), o processo de aquisio de formas de ao gerais tpicas, que implicam no somente a aprendizagem dos conceitos envolvidos numa ao, como a aprendizagem da prpria ao e do contexto no qual ela se desenvolve. Ou seja, o problema de aprendizagem est estreitamente ligado ao conceito de ao cognitiva a qual enfatiza a anlise do contedo e da estrutura para a resoluo do problema de aprendizagem. Como afirma Rubstov (1996), completar uma ao cognitiva no um processo trivial, pois o sujeito precisa desenvolver uma srie de transformaes que levem a uma reconstruo do objeto de aprendizagem. Quanto a fase de Anlise Lxica que envolve a verificao dos caracteres encontrados no programa fonte e o particionamento do programa em lexemasv vlidos (Holmes, 1995), o aluno tem a possibilidade de visualizar as sadas do lxico, na qual os tokensvi e lexemas encontrados so listados (Figura 2). A fase de Anlise Sinttica engloba, em geral, funes de grande importncia: identificao de sentenas; deteco de erros sintticos; ativao de rotinas de anlise semntica; ativao de rotinas de cdigo-objeto (Jos Neto, 1987). Entre as diversas tcnicas de anlise sinttica passveis de escolha, optou-se pela anlise sinttica descendente recursiva feita de forma no automtica. Esta abordagem foi escolhida por ser simples, intuitiva e bastante utilizada em projetos de compiladores. Nesta fase, cada regra sinttica reconhecida pode levar o compilador a disparar uma ao semntica ou a gerao de uma parte do cdigo. A aba denominada de Sada do Sinttico registra cada regra reconhecida, de modo a ilustrar a seqncia de regras que foram reconhecidas pelo compilador (Figura 5).

6 _________________________________________________________________________________ V. 3 N 2, Novembro, 2005

CINTED-UFRGS

Novas Tecnologias na Educao

Figura 5: A aba: Sada do Sinttico

A anlise semntica envolve a computao de diversas informaes que esto alm da capacidade das gramticas livres de contexto (Louden, 2004). Esta fase caracterizada pela manuteno das tabelas de smbolos mapeando identificadores a seus tipos e endereos (Crespo, 1998). Nesta fase, os atributos so normalmente mantidos em uma pilha semntica. Quando o analisador sinttico sinaliza o reconhecimento de uma regra, os k elementos do topo da pilha semntica so desempilhados para o tratamento da ao semntica. Caso haja algum resultado semntico envolvido, este empilhado aps a execuo da ao semntica (Appel, 1998). Parta auxiliar o estudante na observao das variaes ocorridas durante a anlise semntica, uma das abas registra cada movimentao ocorrida na pilha semntica (Figura 6).

Figura 6: A aba: Pilha Semntica

Aps compilar um determinado programa-fonte, sem erros, o estudante pode ento, submeter o cdigo-objeto gerado mquina Cesar. A figura 7 ilustra a sada de um programa exemplo gerado a partir de uma rotina recursiva para clculo do fatorial.

Figura 7: O resultado do processamento do programa fatorial.mem


V.3 N 2, Novembro, 2005 7

Novas Tecnologias na Educao

CINTED-UFRGS

Desta forma, visando expandir as possibilidades pedaggicas utilizadas para auxiliar a aprendizagem de compiladores, a ferramenta Verto fornece um ambiente interativo no qual o estudante pode criar programas relativamente pequenos (Kaplan, 1994) para, comparando o resultado gerado, formar concluses a respeito de aspectos da traduo num processo de raciocnio e aprendizagem contextualizado. Raciocnio contextualizado apia-se, segundo Janvier (1996), em representaes externas que permitem internalizar e transformar em representaes internas de forma que o aluno no aprende somente sobre os conceitos sendo abordados seno que se apropria de todo o contexto que circunda a atividade de aprendizagem. O contexto diferente da representao interna, pois define limites e condies onde se desenvolve a aprendizagem acrescentando variveis adicionais que no encontram-se presente num processo de aprendizagem meramente terico, na qual o aluno trabalha com representaes abstratas desconectadas da realidade.
Ao realizar uma aproximao entre a situao e sua representao [...] o raciocnio contextualizado favorece a articulao de variveis correlatas e contribui para o sucesso do processo de resoluo (JANVIER, 1996, p. 123)

E ainda mais, as representaes do raciocnio contextualizado permitem colocar em maior relevo as relaes essenciais ou fundamentais, servem tambm para organizar a soluo (ou, ainda, a forma de colocar em ao o processo de resoluo), calibr-la e dirigi-la (JANVIER, 1996, p. 123). Por isso, preciso que o ensino utilize metodologias que adotem o raciocnio contextualizado, ou seja introduzam o contexto na aula favorecendo a aprendizagem contextualizada no ensino de compiladores. Esta abordagem traz como conseqncia um outro aspecto importante, que a integrao de disciplinas correlatas, num processo transdisciplinar embasado num enfoque globalizador da aprendizagem. Segundo Zabala (1998, 2002) os mtodos globalizados organizam os contedos de forma transdisciplinar ao permitir que uma realidade seja explicada sem fragmentao, pois os contedos trabalhados procedem de diferentes disciplinas, como o caso de estrutura de dados, sistemas operacionais, linguagens, entre outras disciplinas que podem e devem estar corelacionadas com compiladores atravs de um processo de ensino contextualizado e globalizador. Portanto, Verto visa a construo do conhecimento pela interao entre o aluno e a ferramenta, atravs da experimentao com exemplos simples e a anlise dos resultados obtidos pela compilao. Desta forma, o aluno pode testar suas hiptese e desenvolver experimentaes que promovam a generalizao e a contextualizao da aprendizagem, assim como a troca de experincia e interao com os colegas e professores, respeitando o ritmo de cada aluno, de forma a criar um ambiente de aprendizagem consistindo[...] de um problema ou espao de projeto (incluindo problema de contexto, problema de representao/simulao e problema de manipulao de espao), casos relacionados, fontes de informao, ferramentas cognitivas, conversao, apoio contextual e social para as pessoas que participam" (JONASSEN , 1996, p. 80). E que atenda as caractersticas definidas por Jonassen(1999) sobre aprendizagem construtivista: Ativa: no sentido de permitir o controle do processo para o aluno atravs da manipulao e da ao; Construtiva: ao permitir que o aluno construa seus prprios modelos mentais e
8 _________________________________________________________________________________ V. 3 N 2, Novembro, 2005

CINTED-UFRGS

Novas Tecnologias na Educao

crenas com relao ao objeto em estudo e pela reflexo sobre a ao; Reflexiva: os alunos devem refletir sobre suas prprias experincias e sobre as experincias do grupo; Intencional: Todo comportamento humano tem um objetivo, que pode ser simples ou complexo. A aprendizagem est relacionada com a intencionalidade do sujeito por trs da ao executada; Complexa: contrria noo da simplificao dos problemas, para um conhecimento que no seja "fragmentado". Problemas reais so complexos, malestruturados e geralmente envolvem diversas reas do conhecimento; Contextualizada: A aprendizagem um processo que acontece dentro de um contexto. Aprender sobre algo aprender sobre isso dentro de um contexto; Colaborativa/Cooperativa/Coloquial: permitindo o dilogo, a troca de experincias, o trabalho em grupo pela colaborao/cooperao, a argumentao, o consenso e a discusso.

Consideraes Finais e Trabalhos Futuros Alm das possibilidades educativas mencionadas, a ferramenta Verto pode ser utilizada tambm, como ferramenta auxiliar outras disciplinas como Arquitetura de Computadores e Paradigmas de Linguagens de Programao. No estudo da mquina hipottica Csar, adotada por algumas universidades, a ferramenta Verto pode contribuir para a elaborao de problemas simples de forma rpida para posterior aperfeioamento por parte do aluno. Alm disto, o estudante pode elaborar a soluo do problema proposto inicialmente utilizando-se do macro-assembler criado para a linguagem de modo a ter facilitado o desenvolvimento do algoritmo. Na disciplina de Paradigmas de Linguagens de Programao, a visualizao da Tabela de Smbolos, o tratamento dos tipos e a diferenciao do clculo de endereo para variveis estticas e dinmicas, so recursos da ferramenta que j vm sendo explorados pelos alunos do Centro Universitrio Feevale. Notas
i

A origem do nome Verto provm do latim que significa verter no sentido de traduo de uma linguagem para outra. ii O projeto encontra-se disponvel em: http://verto.sf.net iii As fases de compilao esto implementadas em classes separadas de modo a permitir o estudo estanque das fases da compilao: Lexico.java, Sintatico.Java, Semantico.java e VertoAsm (gerao do cdigo). iv O visor do Csar uma linha de apenas 36 caracteres como pode ser visto na figura 7. v Os lexemas so palavras ou conjuntos de smbolos vlidos de uma determinada linguagem. vi Os tokens so categorias associadas a um ou mais lexemas

Referncias Bibliogrficas AHO, A. V.; SETHI, R.; ULLMAN, J. D. Compiladores: princpios, tcnicas e ferramentas. Rio de Janeiro: LTC. 1995. 344 p. APPEL, A. W. Modern compiler implementation in Java. Cambridge: Cambridge University Press. 1998. 547 p.
V.3 N 2, Novembro, 2005 9

Novas Tecnologias na Educao

CINTED-UFRGS

CAAS, J.J.; BAJO, M.T.; GONZALVO, P. (1994). Mental Models and computer programming. Intl. Journal of Human-Computer Studies, 40, 795-811. COLL, C. et al. O construtivismo na Sala de Aula. So Paulo: Ed. tica, 1996 (Srie Fundamentos). CRESPO, R. G. Processadores de linguagens: da concepo implementao. Lisboa: IST Press. 1998. 435 p. DEBRAY, S. Making compiler design relevant for students who will (most likely) never design compiler. Proceedings of the 33th SIGCSE technical symposium on Computer science education, Covington, Kentucky, USA, v.34, n.1, p. 341-345, mar. 2002. Disponvel em: <http://delivery.acm.org/10.1145/570000/563473/p341debray.pdf >. Acesso em: 14 out. 2005. HENRY, T. R. Teaching compiler construction using a domain specific language. Proceedings of the 36th SIGCSE technical symposium on Computer science education, St. Louis, Missouri, USA, v.37, n.1, p. 7-11, fev. 2005, Disponvel em: < http://delivery.acm.org/10.1145/1050000/1047364/p7-henry.pdf>. Acesso em: 14 out. 2005. HOLMES, J. Object-oriented compiler construction. Englewood Cliffs, NJ: Prentice Hall. 1995. 483 p. JANVIER, C. Contextualizao e representao na utilizao da matemtica. Em: GARNIER, C. BEDNARZ, I. e ULANOVSKAYA, I. Aps Vygotsky e Piaget: perspectiva social e construtivista. Escola Russa e Ocidental. Porto Alegre: Artes Mdicas, 1996.P. 111-126 JONASSEN, D. et alli. Learning with Technology. A constructivist perspective. New Jersey: Prentice Hall, 1999. JONASSEN, David. O uso das novas tecnologias na educao distncia e a aprendizagem construtivista. Em Aberto, Braslia ano 16 n 70 abr/jun 1996. p. 70-88. JOS NETO, J. Introduo compilao. Rio de Janeiro: LTC. 1987. 222 p. KAPLAN, R. M. Constructing language processors for little languages. New York: John Wiley & Sons. 1994. 452 p. LOUDEN, K. C. Compiladores: princpios e prticas. So Paulo: Pioneira Thomson Learning. 2004. 569 p. METSKER, S. J. Building parsers with Java. Boston: Addison Wesley. 2001. 371 p. PASSERINO, L. M. Pessoas com autismo em ambientes digitais de aprendizagem : estudo dos processos de interao social e mediao. Porto Alegre: PGIE/UFRG, 2005. 315 p. Tese de Doutorado RANGEL, J. L. M. Compiladores. Disponvel em: <http://www-di.inf.pucrio.br/~rangel/comp/COMP1.ZIP>. Acesso em: 13 out. 2005. RUBTSOV, V. A atividade de aprendizado e os problemas referentes formao do pensamento terico em escolares. In: GARNIER, C. BEDNARZ, I. e ULANOVSKAYA, I. Aps Vygotsky e Piaget: perspectiva social e construtivista. Escola Russa e Ocidental. Porto Alegre: Artes Mdicas, 1996.p.129-137 WEBER, R. F. Fundamentos de arquitetura de computadores. Porto Alegre: Sagra Luzzato. 2001. 299 p. ZABALA, A. A Prtica Educativa: como ensinar. Porto Alegre: ArtMed, 1998.p.224 ZABALA, Antoni. Enfoque Globalizador e Pensamento Complexo : uma proposta para o currculo escolar. Porto Alegre: Artmed, 2002.p.248

10 _________________________________________________________________________________ V. 3 N 2, Novembro, 2005