In computing, aspect-oriented programming (AOP) is a programming paradigm which aims to increase modularity by allowing the separation of cross-cutting concerns. AspectJ is the first complete and powerful language extension for AOP has been created. With this paper we intend to extend the AspectJ approach to NetLogo. We present and discuss a proposal for a set of language extensions that we call AspectNetLogo. The objective is facilitate aspect-oriented programming with NetLogo and illustrate our prototype implementation of a compiler for this new language.Simulação Social é uma área de pesquisa que utiliza métodos computacionais na resolução de problemas em ciências sociais (política, economia, antropologia, etc.).Programação orientada a agentes [1] define a computação a partir de interações sociais de entidades conhecidas como agentes. Um agente é uma entidade que percebe mudanças no ambiente e age em respostas a essas mudanças visando, possivelmente, alcançar algum objetivo pré-determinado. Agentes em um sistema multi-agentes possuem propriedades interessantes tais como: autonomia, pró-atividade, aprendizado, comunicação e coordenação de tarefas distribuídas, entre outras que os habilitam a tratar problemas complexos.Visando simplificar a execução de simulações sociais utilizando agentes, diversas ferramentas como o PAX [2], o Repast [3] e NetLogo [4] fornecem ao programador uma infra-estrutura básica com os principais elementos de um sistema multi-agente. Essas estruturas foram utilizadas com sucesso para execução de simulações sociais [5][6] [7]. Entretanto, da maneira como estão construídas, exigem que o programador tenha um bom conhecimento de sua estrutura, necessária para definir novos tipos de simulações, bem como requer um maior esforço na manutenção dos seus modelos.A programação orientada a aspectos [8] é uma modelo de programação que foi projetado para simplificar a implementação de crosscutting concerns em sistemas computacionais. Um crosscutting concern é uma propriedade de uma aplicação que, para ser implementada, exige a modificação de um grande número de módulos na aplicação, não podendo ser isolada utilizando técnicas de modularização convencional. Para implementação destes concerns, um aspecto define pointcuts, que identificam partes do código do sistema afetadas pelo concern (chamadas a métodos, declarações de variáveis, etc.), e advices, que descrevem modificações em um pointcut (acrescentar novas variáveis instância, redirecionar a execução de métodos, etc) . Desta forma, aspectos isolam os efeitos da implementação do concern no sistema.O uso de aspectos em um sistema orientado a agentes, em especial no NetLogo, irá permitir que elementos que compõe um agente possam ser definidos e estudados isoladamente do resto da simulação. Essa característica pode facilitar a definição de novas simulações e o reuso de elementos de simulações existentes em novos contextos. Entretanto, tradicionalmente implementações de aspectos são baseadas em conceitos da programação orientada a objetos (classes, métod...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.