• Nenhum resultado encontrado

universidade do vale do itajaí - IIS Windows Server - Univali

N/A
N/A
Protected

Academic year: 2023

Share "universidade do vale do itajaí - IIS Windows Server - Univali"

Copied!
211
0
0

Texto

O problema com muitos cursos de graduação em ciência da computação é que os cursos de programação são ministrados antes dos cursos de arquitetura e organização de computadores. Devido às características mencionadas da linguagem de programação C, foi possível construir um compilador C para a família de processadores BIP, levando em consideração a compatibilidade entre o suporte oferecido pela linguagem e o suporte de instruções da arquitetura do processador BIP.

PROBLEMATIZAÇÃO

Este compilador funciona de forma integrada com a ferramenta Bipide para explorar o potencial didático das ilustrações que fornece. Outro trabalho relacionado é a construção do compilador Portugal de Noschang (2012), que permite a representação de programas num ASA (Abstract Syntactic Tree).

OBJETIVOS

METODOLOGIA

Pesquisa sobre ASA: Nesta fase, foi realizado um estudo sobre árvores sintáticas abstratas e seus benefícios. Pesquisa sobre a linguagem de programação C: Nesta fase foi realizada uma pesquisa sobre a linguagem de programação C.

ESTRUTURA DO TRABALHO

A Seção 2.2 apresenta algumas características dos compiladores da linguagem C com suporte para tratamento de interrupções. Finalmente, as Seções 2.4 e 2.5 apresentam as propriedades e estrutura da família de processadores BIP e da ferramenta de desenvolvimento integrado Bipide.

COMPILADORES

A segunda categoria de análises semânticas é realizada pelo tradutor para melhorar a eficiência de execução do texto fonte traduzido. Esse tipo de análise geralmente é fonte de discussão sobre técnicas de otimização e melhoria de código. A geração intermediária de código é realizada durante a fase de análise sintática, onde a tarefa do analisador sintático é determinar a estrutura sintática de um programa por meio de marcas introduzidas pelo processo de análise sintática.

Figura 1. Estrutura lógica do front-end de um tradutor.
Figura 1. Estrutura lógica do front-end de um tradutor.

LINGUAGEM C

Uma instrução for é usada com um loop que é executado repetidamente até que a condição para interromper o loop seja atendida. Uma instrução while é um loop repetido que é executado repetidamente até que uma condição seja atendida para interromper o loop.

Tabela 1. Palavras reservadas da linguagem C
Tabela 1. Palavras reservadas da linguagem C

ANTLR

O algoritmo de análise LL(*), diferentemente de LL(k), permite percorrer arbitrariamente muitas visualizações e assume a responsabilidade de especificar quantas visualizações de visualização serão geradas. Outro aspecto do ANTLR é que ele unifica notações lexicais, notações de análise e análise de árvore.

BIP

ANTLR v3 introduz uma nova estratégia de análise chamada análise LL(*) que é mais poderosa do que os analisadores tradicionais baseados em LL(k), que são limitados por um número finito de verificações futuras determinadas pelo valor de k. O algoritmo de análise Adaptive LL(*) é o algoritmo utilizado pela ferramenta na quarta versão. Contudo, este algoritmo não possui documentação concreta até o momento da redação deste relatório, como pode ser visto na Tabela 24 do Apêndice A.

O conjunto de instruções BIP I consiste em oito instruções, uma instrução de controle, três instruções de transferência e quatro instruções aritméticas. O BIP I possui duas especificações de organização, uma utilizando a estrutura do tipo Princeton, com uma única memória para armazenamento de dados de instrução, e outra organização utilizando a estrutura do tipo Harvard, com memórias separadas para instruções e dados.

Tabela 3. Conjunto de instruções BIP I.
Tabela 3. Conjunto de instruções BIP I.

A organização do BIP II, assim como a arquitetura, é uma extensão do BIP I, onde foi incluído o registro de status e foram feitas algumas alterações no circuito de atualização do PC, conforme mostra a Figura 6.

Tabela 4. Conjunto de instruções BIP II.
Tabela 4. Conjunto de instruções BIP II.

Como pode ser observado na Figura 7, a estrutura organizacional do BIP III é muito semelhante à estrutura organizacional do BIP II (Figura 6), diferindo apenas na ULA (Unidade Lógica Aritmética). Com a unificação da unidade aritmética presente no BIP II e a adição das funcionalidades de lógica booleana e deslocamento lógico introduzidas pelo BIP III, a ALU passou a ter uma identidade de Unidade Funcional mostrada na Figura 8.

Tabela 5. Conjunto de instruções BIP III.
Tabela 5. Conjunto de instruções BIP III.

BIPIDE

O módulo de ajuda é composto por informações sobre as funcionalidades da ferramenta e informações teóricas relacionadas à arquitetura e organização dos processadores BIP. O módulo de ajuda consiste em informações teóricas sobre arquitetura e organização de computadores e apresenta uma descrição dos processadores BIP para ajudar o usuário a entender a arquitetura e o conjunto de instruções desses processadores.

Figura 11. Bipide: Módulo de Programação  Fonte: Vieira (2012).
Figura 11. Bipide: Módulo de Programação Fonte: Vieira (2012).

FERRAMENTAS SIMILARES

O suporte a interrupções fornecido pela ferramenta AVR Studio é fornecido por meio de interrupções cronometradas e interrupções acionadas externamente. O suporte para interrupções temporizadas é fornecido através de uma API de interrupção (Application Programming Interface) utilizando uma macro definida por ISR(), conforme mostrado na Tabela 12, que recebe como parâmetro um vetor que possui pontos de interrupção e um nome pré-definido.

COMPILADOR C

Em seguida, o gerador de código identifica os métodos de entrada e/ou saída para realizar o processamento apropriado com cada um. Como os métodos de leitura e gravação são definidos como exceções, eles são tratados no gerador de código.

Tabela 7. Palavras reservadas da linguagem C.
Tabela 7. Palavras reservadas da linguagem C.

SUPORTE A SIMULAÇÃO DO µBIP

No painel direito do simulador (Figura 12), onde está disponível o acesso aos registros dos processadores da família BIP, foram adicionados outros registros relacionados ao µBIP que não estavam presentes até o momento: (i) $pot0_dir; (ii). A simulação de interrupção foi realizada em duas etapas, onde na primeira etapa, mostrada na Figura 17, o registro do PC é incrementado.

Figura 16. Alteração no simulador para o µBIP.
Figura 16. Alteração no simulador para o µBIP.

ALTERAÇÃO DE INTERFACE

A aba Simulação contém todo o conteúdo relacionado ao contexto de simulação do texto fonte codificado na primeira aba. A aba simulação, assim como na versão 3.0 do Bipide, mostra duas formas de codificação feitas na aba .., a primeira refletindo com precisão o que foi codificado e a segunda contendo o que foi codificado e traduzido para linguagem assembly. Para melhorar a apresentação da funcionalidade da ferramenta Bipide, foram adicionadas guias de contexto a duas funções.

A funcionalidade de dica de ferramenta dá ao usuário acesso rápido à descrição do que a função selecionada realizará, muitas vezes eliminando a necessidade de ir até a guia de ajuda da ferramenta para procurar mais informações. Para adicionar recursos de acessibilidade ao Bipide, foram implementadas dicas de teclado ou dicas de teclas. Se a ação estiver anexada a uma guia, serão exibidas dicas de teclado para as funções inseridas em conexão com essa guia.

Um recurso muito útil que agiliza as ações no sistema são as teclas de atalho e as teclas de função. Este recurso permite encaixar arquivos na ferramenta de diversas formas, por exemplo, um ao lado do outro, disponível em forma de abas ou até mesmo mover o arquivo para fora da ferramenta.

Figura 19. Arquivo no contexto de programação.
Figura 19. Arquivo no contexto de programação.

SUPORTE A NOVAS LINGUAGENS

Além do nome da linguagem de programação, outras informações devem ser fornecidas neste XML para que a ferramenta funcione corretamente com o novo compilador, a saber: (i) Extensão do arquivo, que será utilizada ao salvar e abrir arquivos para identificá-los destaque para usar; (ii) Destaque, caminho do arquivo contendo as especificações de destaque do idioma atribuído; (iii) Modelo de estrutura de arquivo, contém um fragmento de código fonte com modelo do conteúdo principal de um programa escrito na linguagem; (iv) Exemplos, exemplos de programas escritos na linguagem. A Tabela 17 mostra um exemplo de XML para configuração de linguagens de programação, e o resultado da serialização deste XML é a tela ilustrada na Figura 25.

SUPORTE MULTI-IDIOMA

Para fornecer suporte multilíngue na interface do usuário, foi utilizada a técnica de dicionário de recursos. O Dicionário de Recursos é implementado em arquivos no formato XAML, onde cada atributo de arquivo contém conteúdo e uma chave que pesquisa o conteúdo. Assim como os componentes da interface, as dicas de funções foram implementadas usando o dicionário de recursos.

A técnica utilizada para permitir a ajuda do sistema no suporte a vários idiomas era diferente da técnica de dicionário de recursos utilizada no sistema. Portanto, a estrutura em árvore ilustrada na Figura 26 é o resultado da serialização da estrutura XML. A Tabela 20 fornece um trecho da estrutura XML usada para definir a estrutura de apresentação da ajuda.

Com as alterações realizadas, foi possível transferir para o simulador o dicionário de recursos que deverá utilizar de acordo com o idioma selecionado no Bipide. A Tabela 22 ilustra um trecho do arquivo XAML usado para alterar o conteúdo da linguagem do simulador.

Figura 26. Tela gerada a partir do XML de mapeamento de estutura da ajuda.
Figura 26. Tela gerada a partir do XML de mapeamento de estutura da ajuda.

TESTES

Após o ASA retornar o texto fonte através deste mecanismo, o código objeto é gerado. Foi realizado um estudo sobre as palavras reservadas da linguagem de programação C que podem ser utilizadas na geração de código objeto da família de processadores BIP até sua quarta geração, portanto um estudo separado foi realizado para determinar o uso do µBIP neste projeto. . Este estudo permitiu determinar quais palavras reservadas foram adotadas na criação do compilador da linguagem C para a família de processadores BIP, e o estudo completo pode ser encontrado na seção 2.2.

Foi também realizado um estudo sobre a ferramenta de criação de gramática ANTLR, com o objetivo de compreender melhor o funcionamento da ferramenta e compreender os algoritmos e técnicas utilizadas na geração do código-fonte para análise gramatical. Também foi realizado um levantamento da família de processadores BIP e da ferramenta Bipide, pois estes são os objetivos deste trabalho. Ao estudar a família de processadores BIP foi possível adquirir conhecimento sobre a arquitetura e organização destes processadores e também compreender a evolução incremental de geração em geração de processadores.

Este trabalho contribuiu para a documentação do modelo ASA proposto para Portugal, documentando todos os nós existentes no modelo, complementado com diagramas de classes. Ao construir o compilador usando o modelo Portugol ASA, o objetivo de construir um compilador C com baixo acoplamento entre o núcleo do compilador e o IDE Bipide poderia ser alcançado.

Tabela 12. Programa utilizado na validação do compilador C  C  Código resultante da
Tabela 12. Programa utilizado na validação do compilador C C Código resultante da

TRABALHOS FUTUROS

Dicionário Interativo da Educação Brasileira - EducaBrasil. http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf >. Um trabalho científico introdutório para alunos do ensino médio utilizando o sistema operacional Linux e a linguagem C. Nacional de Ensino de Física, São Luiz, 2007. Gostaríamos de mais informações sobre as estratégias ALL(*), mas não encontramos no site e wiki.

Is there any paper or documentation on this that we can get to do our research? I read your research paper in which you discuss the use of BIP in digital circuit and system design courses. Cc: André Raabe , Paulo Viniccius .

MODELO

  • NoBloco
  • NoCadeia
  • NoCaracter
  • NoCaso
  • NoChamadaFuncao
  • NoDeclaracao
  • NoDeclaracaoFuncao
  • NoDeclaracaoMatriz
  • NoDeclaracaoParametro
  • NoDeclaracaoVariavel
  • NoDeclaracaoVetor
  • NoDecremento
  • NoEnquanto
  • NoEscolha
  • NoExpressao
  • NoFacaEnquanto
  • NoInclusaoBiblioteca
  • NoIncremento
  • NoInteiro
  • NoLogico
  • NoMatriz
  • NoMenosUnario
  • NoNao
  • NoOperacao
  • NoOperacaoAtribuicao
  • NoOperacaoDivisao
  • NoOperacaoLogicaDiferenca
  • NoOperacaoLogicaE
  • NoOperacaoLogicaIgualdade
  • NoOperacaoLogicaMaior
  • NoOperacaoLogicaMaiorIgual
  • NoOperacaoLogicaMenor
  • NoOperacaoLogicaMenorIgual
  • NoOperacaoLogicaOU
  • NoOperacaoModulo
  • NoOperacaoMultiplicacao
  • NoOperacaoSoma
  • NoOperacaoSubtracao
  • NoPara
  • NoPare
  • NoPercorra
  • NoReal
  • NoReferencia
  • NoReferenciaMatriz
  • NoReferenciaVariavel
  • NoReferenciaVetor
  • NoRetorne
  • NoSe
  • NoVetor

PROGRAMA DE TESTES PORTUGOL 2.0

PROGRAMA DE TESTES HELP BIPIDE 4.0

Imagem

Figura 1. Estrutura lógica do front-end de um tradutor.
Figura 4. NoBloco e suas heranças
Tabela 2. Arquitetura BIP I.
Figura 5. Organização tipo Harvard para o BIP I.
+7

Referências

Documentos relacionados

Boletim do Arquivo da Universidade de Coimbra, XXVII [ 2014 ] , 405-417 405.. Arquivos de música: uma análise às bases teóricas e ao testemunho do