Aqui esta a versao final da nossa apresentacao, que foi vista na aula do dia 31/07/2008. Agora da pra ver quantas vezes quiser, e o melhor de tudo, sem aquele VERDE. :Pbytecode Compiladores Vs Interpretadores - Finalview presentation (tags: assemblers interpreters compilers) O caminho a ser seguido no campo dos tradutores de linguagens de programacao dependera tanto do que ja e necessario para os desenvolvedores de aplicativos (software basico que possibilita a construcao de outros programas) como tambem do que ainda esta por vir. No entanto, pelo contexto atual, verifica-se a utilizacao em expansao de um tipo de tradutor, a maquina virtual, para suprir um ponto negativo do processo de geracao de codigo encontrado nos compiladores, que e a dependencia do codigo objeto em relacao ao sistema operacional. Um bom exemplo desse ponto e a maquina virtual Java. O interpretador continuara sendo usado pela internet, que e um grande exemplo de utilizacao desse tradutor, e podera se desenvolver ainda mais. Alem disso, esta ocorrendo uma maior utilizacao dos compiladores, principalmente no que se refere ao duplo processo de geracao de codigo, ou seja, uso de varios compiladores para a obtencao do codigo objeto, fato encontrado no Framework.Net que possui diversos compiladores (apenas um e usado para a escrita de um programa) para se produzir o codigo intermediario e um compilador geral responsavel pela geracao do codigo objeto final. Diante do que foi exposto, percebe-se que os tipos de tradutores atuais (compiladores, interpretadores e maquina virtual) continuarao sendo utilizados, o que podera ocorrer e o que ja foi mencionado: a expansao, diminuicao de alguns e ate a criacao de novas formas de traducao. Atraves do uso de metalinguagens e possivel obter-se, de modo suficientemente rigoroso uma boa definicao da linguagem de programacao cujo compilador se deseja construir. Seja qual for a tecnica empregada para tal finalidade, o resultado e sempre um programa a ser executado no computador.Sendo um programa, o tradutor(compilador) devera ser expresso em alguma linguagem de programcao disponivel, para que seja possivel implamta-lo em alguma maquina existente e portanto algum compilador pode ser suposto existente para permitir a primeira traducao de um compilador para a linguagem que esta sendo desenvolvida. Este devera, portanto, ser escrito na linguagem de programacao que o compilador disponivel seja capaz de traduzir.Tem-se duas questoes a solucionar: para qual maquina o compilador final devera gerar codigo, e em que linguagem tal compilador devera ser redigido.Seja L a linguagem a ser compilada para a maquina M, ou seja, deseja-se construir um compilador da linguagem L que gere um codigo-objeto que seja executavel na maquina M.Com estas hipoteses, descreve-se a seguir a tecnica de obtencao de compiladores ditos 'auto-compilaveis' atraves do metodo de 'bootstrapping'. Sendo que um compilador e chamado 'auto-compilavel' quando a linguagem em que for desenvolvido (L') e a propria linguagem L que o compilador deve ser capaz de traduzir.O metodo de 'bootstrapping' permite obter a partir de praticamente nenhuma infraestrutura uma primeira versao de um compilador auto-compilavel a ser utilizado posteriormente para melhorar e aperfeicoar, em versao subsequente, o compilador original. A tecnica mencionada pode ser