DOI QR코드

DOI QR Code

결합 방식 멀티패러다임 프로그래밍을 지원하는 언어의 설계 및 구현

Design and Implementation of a Language Supporting Compositional Approach to Multiparadigm Programming

  • 최종명 (숭실대학교 대학원 컴퓨터학과) ;
  • 유재우 (숭실대학교 컴퓨터학부)
  • 발행 : 2003.12.01

초록

본 논문에서는 멀티패러다임 프로그래밍의 결합 방식(compositional approach)[20]을 프로그래밍 언어에 적용한 새로운 형태의 멀티패러다임 언어인 Argos를 소개한다. Argo는 자바 언어의 수퍼셋이고, Argos 언어의 메소드를 정의하는 문법은 다른 언어의 문법을 사용할 수 있는 확장점을 가지고 있다. 따라서 Argos 클래스의 각 메소드는 자바, C, Prolog, Python 등의 여러 프로그래밍 언어들 중에서 하나를 선택해서 구현할수 있도록 허용함으로써 객체지향과 멀티패러다임 프로그래밍을 동시에 지원한다. Argos의 메소드는 기존의 프로그래밍 언어로 작성할 수 있기 때문에 다른 멀티패러다임 언어에 비해 상대적으로 배우기 쉽고, 라이브러리 재사용성도 높은 장점을 가지고 있다. Argos 컴파일러는 입력 프로그램 을 사용된 언어에 따라 분할하고, 분할된 메소드 코드를 해당 언어의 처리기에 전달해서 컴파일하는 DCO(delegating compiler object) 모델[28,29]에 따라 구현된다.

In this paper we introduce a new style multiparadigm language named Argos which applies a compositional approach [20] to multiparadigm programming. Argos is a superset of the Java, and its grammar has an extension point which allows other languages to be used in Argos programs. Therefore, Argos can support object-oriented programming and multiparadigm programming by enabling each method in a class to be implemented with one of the Java, C, Prolog, Python, and XML languages. Since Argos allows the existing languages to be used, it has advantages such as easiness of learning and high reusability. The Argos compiler is implemented according to the delegating compiler object (DCO) model[28,29]. The compiler partitions a program Into several parts according to the languages used in methods and delivers the parts the languages' processors which compile the parts.

키워드

참고문헌

  1. R. Nigel Horspool and Michael R. Levy, 'Translator-Based Multiparadigm Programming,' Journal of Systems & Software, 23(1), pp.39-49, 1993 https://doi.org/10.1016/0164-1212(93)90059-7
  2. Bruce D. Shriver, 'Software paradigms,' IEEE Software, 1989
  3. Timothy A. Budd, Multiparadigm programming in LEDA, Addison-Wesley, 1995
  4. Kam Sing Ng, Linpeng huand and Yongqiang Sun, 'A multiparadigm language for developing agent-oriented applications,' In TOOLS, pp.18-26, 1998 https://doi.org/10.1109/TOOLS.1998.713583
  5. Wolfgang Weck, 'Document-Centered Computing : Compound Document Editors as User Interfaces,' in Journal of Symnolic Computation, No.11, pp.1-24, 1998
  6. CiLab, The OpenDoc White Paper, 1994
  7. Clemens Szyperski, Dominik Gruntz and Stephan Murer, Component Software, 2nd ed., Addison-Wesley, 2002
  8. James Gosling, Bill Joy, Guy Steele and Gilad Bracha, The Java Language Specification, 2nd ed., Addison-Wesley, 2000, available at http://java.sun.com/docs/books/jls/
  9. Bryn Keller, Xoltar Toolkit, available at http://www.xoltar.org/
  10. James O. Coplien, Multi-Paradigm Design C++, Addison-Wesley, 1999
  11. kam-Wing Ng and Chi-Keung Luk, 'A Survey of Languages Integrating Functional, Object-oriented and Logic Programming,' In Journal of Systems Architecture, pp.5-36, 1995 https://doi.org/10.1016/0165-6074(94)00017-5
  12. Hafedh Mili, Ali Mili, Sherif Yacoub and Edward Addy, Reuse Based Software Engineering Techniques, Organization and Measurement, John Wiley & Sons, 2002
  13. Jim Hugunin, 'Python and Java : The Best of Both Worlds,' In Proc. of the 6th International Python Conference, 1997, available at http://www.jython.org/
  14. Diomidis Spinellis, 'Small Tools for Automatic Text Generation,' In Proc. of USENIX, 1998, available at http://www.usenix.org/
  15. Timothy A. Budd, 'The Return of Hensen's Device,' In Proc. of MPOOL, pp.45-63, 2002
  16. Bredan Machado and K. M. George, 'A Model for Multi-paradigm Systems,' In Proc. of Computer Science, pp.221-227, 1991
  17. J. H. M. Lee and P. K. C. Pun, 'Object Logic Intergration : a Multiparadigm Design Methogology and a Programming Language,' In Computer Languages, 23(1), pp.25-42, 1997 https://doi.org/10.1016/S0096-0551(97)00004-0
  18. Jong-Myung Choi, Jae-Woo Yoo, 'Multiparadigm within a Class,' In Proc. of ISFST, pp.143-148, 1999
  19. Valentino Vranic, 'Towards Multi-Paradigm Software Development,' In Journal of Computing and Information Tecchnology, 10(2), pp.133-147, 2002 https://doi.org/10.2498/cit.2002.02.07
  20. Pamela Zave, 'A Compositional Approach to Multiparadigm Programming,' In IEEE Software, pp.15-25, 1989 https://doi.org/10.1109/52.35586
  21. Brent Hailpen, 'Multiparadigm Languages,' In IEEE Software, 3(1), pp.6-9, 1986 https://doi.org/10.1109/MS.1986.232426
  22. Daniel G. Bobrow, 'If Prolog is the answer, what is the question,' In Proc. of 5th Generation Computer Systems, pp.138-145, 1984
  23. Diomidis D. Spinellis, Programming Paradigms as Object Classes : A Structring Mechanism for Multiparadigm Programming, Ph.D. Thesis, Dept. of Computing, Imperial College of Science, Technology and Medicine, University of London, Feb., 1994
  24. Java VM Bridge for Functional Languages, available at http://sourceforge.net/projects/jnm-brige/
  25. Jennifer Hamilton, 'Language Integration in the Common Language Runtime,' In SIGPLAN Notices, 38(2), pp.19-28, 2003 https://doi.org/10.1145/772970.772973
  26. Jennifer Hamilton, 'Interlanguage Object Sharing with SOM,' In Proc. of USENIX Conference on Object-Oriented Technologies, 1996
  27. Box D., Essential COM, Addison Wesley, 1998
  28. Jan Bosch, 'Delegating Compiler Objects : Modularity and Reusability in Langyage Engineering,' In Nordic Journal of Computing, 4, pp.66-92, 1997
  29. Jan Bosch, Layered Object Model Investigating Paradigm Extensibility, Ph.D. Thesis, Dept. of CS., Lund Univ., Sweden, 1995
  30. JavaCC-The Java Parser Genrator, available at, http://javacc.dev.java.net/
  31. Martin Odersky and p Wadler, 'Pizza into Java : Translating theory into practice,' In Proc. 24th ACM Symposium on Principles of Programming Languages, pp.146-159, 1997 https://doi.org/10.1145/263699.263715
  32. Shaun-inn Wu, 'Integrating Logic and Object-Oriented Programming,' In OOPS Messenger, 2(1), pp.28-37, 1991 https://doi.org/10.1145/122438.122440
  33. Anton Dliens, DLP-A Language for Distributed Logic Programming Design, Semantics and Implementation, John Wiley & Sons, 1992
  34. Michael Hanus, 'Distributed Programming in a Multi-Paradigm Declarative Language,' In Proc. of PPDP, LNCS 1702, Springer-Verlag, pp.188-205, 1999 https://doi.org/10.1007/10704567_11
  35. H. Ait-Kaci, 'An Overview of LIFE,' In Next Generation Information System Technology,, Springer-Verlag, pp.42-58, 1991