PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

The Use of Aspects to Simplify Concurrent Programming

Treść / Zawartość
Identyfikatory
Warianty tytułu
Języki publikacji
EN
Abstrakty
EN
Developers who create multi-threaded programs must pay attention to ensuring safe implementations that avoid problems and prevent introduction of a system in an inconsistent state. To achieve this objective programming languages offer more and more support for the programmer by syntactic structures and standard libraries. Despite these enhancements, multi-threaded programming is still generally considered to be difficult. The aim of our study was the analysis of existing aspect oriented solutions, which were designed to simplify concurrent programming, propose improvements to these solutions and examine influence of concurrent aspects on complexity of programs. Improved solutions were compared with existing by listing differing characteristics. Then we compared classical concurrent applications with their aspect oriented equivalents using metrics. Values of 2 metrics (from 7 considered) decreased after using aspect oriented solutions. Values of 2 other metrics decreased or remained at the same level. The rest behaved unstably depending on the problem. No metric reported increase of complexity in more than one aspect oriented version of program from set. Our results indicate that the use of aspects does not increase the complexity of a program and in some cases application of aspects can reduce it.
Rocznik
Strony
27--37
Opis fizyczny
Bibiogr. 15 poz., tab.
Twórcy
autor
  • Faculty of Computer Science and Management, Institute of Informatics, Wrocław University of Technology
  • Faculty of Computer Science and Management, Institute of Informatics, Wrocław University of Technology
Bibliografia
  • [1] B. Schauer, “Multicore processors–a necessity,” ProQuest discovery guides, 2008, pp. 1–14.
  • [2] G. Kiczales, J. Lamping, A. Mendhekar,C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin,Aspect-oriented programming. Springer,1997.
  • [3] “concurrent aspects library,” https://github.com/mnegacz/concurrent-aspects.
  • [4] C. A. Cunha, J. a. L. Sobral, and M. P.Monteiro, “Reusable aspect-oriented implementations of concurrency patterns and mechanisms,”in Proceedings of the 5th international conference on Aspect-oriented software development, ser. AOSD ’06. New York, NY, USA: ACM, 2006, pp. 134–145. [Online]. http://doi.acm.org/10.1145/1119655.1119674
  • [5] B. Harbulot and J. R. Gurd, “Using aspectj to separate concerns in parallel scientific java code,” in Proceedings of the 3rd international conference on Aspect-oriented software development, ser. AOSD ’04. New York, NY, USA: ACM, 2004, pp. 122–131. [Online]. http://doi.acm.org/10.1145/976270.976286
  • [6] J. L. Sobral, “Incrementally developing parallel applications with aspectj,” in Proceedings of the 20th international conference on Parallel and distributed processing, ser. IPDPS’06. Washington, DC, USA: IEEE Computer Society, 2006, pp. 116–116. [Online]. http: //dl.acm.org/citation.cfm?id=1898953.1899048
  • [7] J. Bloch, Effective Java (2Nd Edition) (The Java Series), 2nd ed. Upper Saddle River, NJ, USA: Prentice Hall PTR, 2008.
  • [8] B. Eckel, Thinking in Java, 3rd ed. Prentice Hall Professional Technical Reference, 2006.
  • [9] T. Peierls, B. Goetz, J. Bloch, J. Bowbeer, D. Lea, and D. Holmes, Java Concurrency in Practice. Addison-Wesley Professional, 2005.
  • [10] U. D. Hohenstein and U. Gleim, “Using aspect-orientation to simplify concurrent programming,” in Proceedings of the tenth international conference on Aspect-oriented software development companion, ser. AOSD ’11. New York, NY, USA: ACM, 2011, pp. 29–40. [Online]. http://doi.acm.org/10.1145/1960314. 1960324
  • [11] R. Laddad, AspectJ in Action: Practical Aspect-Oriented Programming. Greenwich, CT, USA: Manning Publications Co., 2003.
  • [12] R. G. Lavender and D. C. Schmidt, “Active object– an object behavioral pattern for concurrent programming,” 1995.
  • [13] “Dining philosophers problem implmentation,”https://github.com/vonhessling/DiningPhilosophers.
  • [14] “Producer-consumer problem implementation,”https://github.com/dcryan/Producer-Consumer.
  • [15] “Java Fork/Join for Parallel Programming,” http://www.javacodegeeks.com/2011/02/javaforkjoin-parallel-programming.html.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-3c809546-f4e1-480b-b45d-a2770e655ecf
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.