ebook img

Utilizando Programação Orientada a Aspectos no Projeto de Sistemas Hardware Desenvolvidos PDF

98 Pages·2007·0.35 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Utilizando Programação Orientada a Aspectos no Projeto de Sistemas Hardware Desenvolvidos

Sérgio Queiroz de Medeiros Utilizando Programação Orientada a Aspectos no Projeto de Sistemas Hardware Desenvolvidos com SystemC Natal-RN 2006 Sérgio Queiroz de Medeiros Utilizando Programação Orientada a Aspectos no Projeto de Sistemas Hardware Desenvolvidos com SystemC Orientador: David Boris Paul Déharbe UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO Natal-RN 2006 Dissertação de Mestrado sob o título Utilizando Programação Orientada a Aspectos no Projeto de Sistemas Hardware Desenvolvidos com SystemC defendida por Sérgio Queiroz de Medeiros e aprovada em 03 de março de 2006 em Natal, Rio Grande do Norte, pela banca examinadoraconstituídapelosprofessores: Prof. Dr. DavidBorisPaulDéharbe UniversidadeFederaldoRioGrandedoNorte Orientador Prof. Dr. IvanSaraivaSilva UniversidadeFederaldoRioGrandedoNorte Profa. Dra. EdnaNatividadedaSilvaBarros UniversidadeFederaldePernambuco MembroExterno "Eunãotinhaesterostodehoje, assimcalmo,assimtriste,assimmagro, nemestesolhostãovazios, nemolábioamargo. Eunãotinhaestasmãossemforça, tãoparadasefriasemortas; eunãotinhaestecoração quenemsemostra. Eunãodeiporestamudança, tãosimples,tãocerta,tãofácil: -Emqueespelhoficouperdida aminhaface?" CecíliaMeireles Agradecimentos Aopovoládecasa,oqueincluimeupai,Dudu,quenãoconsegueentenderessepovoquetem o terceiro grau, minha mãe, Doninha, minhas duas irmãs, Anna e Regina, e até mesmo a gata Bolotta. AJanaína,queesteveaomeuladoduranteestetempo. AgradeçoaDeus,apesardapoucafé,aqualeuaindabusco. Atodososmeusamigosqueconseguemmeaguentar,emespecialaDidi,quemeensinouaser maisalegre,eaoilustreCCCC. Agradeço ao meu orientador David, com quem aprendi muito, que me ensinou a converter númerosbináriosedecimais,equeteveapaciênciademeorientaraolongode5anos. Atodos os demais professores do DIMAp, em especial ao professor Ivan, que me ajudou a participar domeuprimeirocongresso,eatodososprofessoresquetiveaolongodavidadesdeoInstituto Alvorada. Resumo Novos paradigmas de linguagens de programação vêem sendo comumente testados e ge- ralmente são incorporados depois por linguagens de descrição de hardware. Recentemente, a programação orientada a aspectos (POA) provou ser útil na tentativa de melhorar a modula- ridade de linguagens estruturadas e orientadas a objeto tais como Java, C++ e C. Diante de tal fato, podemos esperar que o uso de POA pode melhorar o entendimento de sistemas hard- ware que estão sendo projetados, bem como tornar seus componentes mais reusáveis e fáceis demanter. Iremos abordar então o uso de POA em aplicações desenvolvidas utilizando a biblioteca SystemC. Serão apresentados vários exemplos que ilustram o uso de POA juntamente com SystemC,mostrandoalternativasediscutindoosseusbenefícios. Abstract New programming language paradigms have commonly been tested and eventually incor- porated into hardware description languages. Recently, aspect-oriented programming (AOP) has shown successful in improving the modularity of object-oriented and structured languages such Java, C++ and C. Thus, one can expect that, using AOP, one can improve the understan- ding of the hardware systems under design, as well as make its components more reusable and easiertomaintain. WeapplyAOPinapplicationsdevelopedusingtheSystemClibrary. Severalexampleswill be presented illustrating how to combine AOP and SystemC. During the presentation of these examples,thebenefitsofthisnewapproachwillalsobediscussed. Sumário ListadeFiguras ListadeTabelas 1 Introdução 14 2 ProgramaçãoOrientadaaAspectos 18 2.1 Componente×Aspecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 CrosscuttingConcerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 CriandoAspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 CódigodeComportamentoTransversal . . . . . . . . . . . . . . . . . . . . . 21 2.5 PontosdeJunção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.6 CombinaçãodeAspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.7 AspectC++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.7.1 ConjuntodeJunção . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.7.1.1 ExpressõesdeCasamento . . . . . . . . . . . . . . . . . . . 26 2.7.2 OponteirothisJoinPoint . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.7.3 CriandoumAspecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7.4 CódigodeComportamentoTransversal . . . . . . . . . . . . . . . . . 29 2.7.5 Introduções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.7.6 OrdenaçãodeComportamentosTransversais . . . . . . . . . . . . . . 33 2.8 OpapeldaPOAnaPOO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3 SystemC 35 3.1 ElementosBásicosdeSystemC . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 ExemplodeUmaAplicaçãoSystemC . . . . . . . . . . . . . . . . . . . . . . 38 3.3 InterfaceseCanais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 ExemplosdaUtilizaçãodeAspectosnoProjetodeSistemasUtilizandoSystemC 43 4.1 ModelagemdeHardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.1.1 ModelandoaComunicaçãocomoumAspecto . . . . . . . . . . . . . 45 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.1.2 PolíticadeTrocadeLinhasdaCache . . . . . . . . . . . . . . . . . . 49 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.1.3 SeparaçãodoControleedoFluxodeDados . . . . . . . . . . . . . . . 51 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2 Projeto/Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.1 UtilizandoAspectosparaRealizaraColetadeMétricas . . . . . . . . . 54 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2.2 UtilizandoProjetoporContratocomPOA . . . . . . . . . . . . . . . . 57 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.2.3 ABibliotecadeVerificaçãoPadrãodoSystemCePOA . . . . . . . . . 60 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Implementação/Conclusão . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2.4 UsandoPOAcomArchC . . . . . . . . . . . . . . . . . . . . . . . . . 63 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Implementação/Conclusão . . . . . . . . . . . . . . . . . . . . . . . . 64 4.3 AnálisedeDesempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.4 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5 Conclusões 68 Referências 71 ApêndiceA--OProtocoloOCP 75 A.1 CaracterísticasOCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 A.2 SinaiseCodificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 A.2.1 SinaisBásicosdoFluxodeDados . . . . . . . . . . . . . . . . . . . . 77 ApêndiceB--ImplementaçãodaComunicaçãoUtilizandoOCPeAspectos 80

Description:
programação orientada a aspectos (POA) provou ser útil na tentativa de ridade de linguagens estruturadas e orientadas a objeto tais como Java, C++ e C. such Java, C++ and C. Thus, one can expect that, using AOP, one can .. do desenvolvimento das linguagens de descrição de hardware (CHU.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.