An Extensible Programming Language for Plugin Features

플러그인 언어로 확장 가능한 프로그래밍 언어

  • Published : 2004.05.01

Abstract

The modern softwares have features of modularity and extensibility, and there are several researches on extensible programming languages and compilers. In this paper, we introduce Argos programming language, which provides the extensibility with the concept of plugin languages. A plugin language is used to define a method of a class, and the plugin language processors can be added and replaced dynamically The plugin languages may be used to support multiparadigm programming or domain specific languages.

현대적인 소프트웨어들은 모듈성과 확장성을 강조하고 있으며, 프로그래밍 언어와 컴파일러에서도 확장성에 관한 연구들이 수행되고 있다. 본 논문에서 소개하는 Argos 언어는 플러그인 언어라는 개념을 이용해서 언어와 컴파일러를 확장할 수 있는 방법을 제공한다. Argos에서 플러그인 언어는 클래스의 메소드를 정의하기 위해서 사용되며, 플러그인 언어 처리기는 동적으로 추가 및 교체될 수 있는 특징을 가지고 있다. Argos에서 플러그인 언어는 멀티패러다임 프로그래밍과 도메인 특정 언어를 지원하기 위해서 사용될 수 있다.

Keywords

References

  1. Johannes Mayers, Ingo Melzer, and Franz Schweiggert, 'Lightweight Plug-in Based application Development,' In Objects, Components, Architectures, Services, and Applications for a Networked World, LNCS 2591, Springer-Verlag, pp. 87-102, 2003
  2. Alessandro Rubini, 'Dynamic Kernels: Modularized Device Drivers,' In Linux Journal, Mar., 1996, Available at http://www.linuxjournal.com/
  3. Larry Hoff, 'Netscape Plug-Ins', In Linux Journal, Sep., 1999, available at http://www.linuxjournal.com/
  4. Elipse Platform Technical Overview, Object Technology International, Inc., Feb., 2003, available at http://www.elipse.org/
  5. Matthias Zenger and Martin Odersky, 'Implementing Extensible Compilers,' In Proc. of MPOOL, pp. 61-80, 2001
  6. AspectJ Project, http://elipse.org/aspectj/
  7. Timothy A. Budd, 'The Return of Jensen's Device,' In Proc. of MPOOL, pp.45-63, 2002
  8. Jason Baker and Wilson C. Hsieh, 'Maya: Multiple-Dispatch Syntax Extension in Java,' In Proc. of PLDI, pp. 270-281, 2002
  9. Jonathan Bachrach and Keith Playford, 'The Java Syntactic Extender(JSE),' In Proc. of OOPSLA, pp. 31-42, 2001 https://doi.org/10.1145/504282.504285
  10. Free Online Dictionary of Computing, http://wombat.doc.ic.ac.uk/foldoc/
  11. Conal Elliott, 'Modeling Interactive 3D and Multimedia Animation with an Embedded Language,' In Proc. of USENIX on Domain-Specific Languages, pp. 285-296, 1997
  12. Scot Thibault, Renaud Marlet, and Charles Consel, 'A Domain-Specific Language for Video Device Driver: from Design to Implementation,' In Proc. of USENIX on Domain-Specific Languages, 1997
  13. Jan Bosch, 'Delegating Compiler Objects: Modularity and Reusability in Language Engineering,' In Nordic Journal of Computing, 4, pp. 66-92, 1997
  14. Jan Bosch, Layered Object Model Investigating Paradigm Extensibility, Ph.D. Thesis, Dept. of CS., Lund Univ., Sweden, 1995
  15. Curtis Clifton, et al., 'MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java,' In Proc. of OOPSLA, pp. 130-145, 2000 https://doi.org/10.1145/353171.353181
  16. Todd Milstein, Mark Reay, and Craig Chambers, 'Relaxed Multijava: Balancing Extensibility and Modular Typechecking,' In Proc. of OOPSLA, pp. 224-240, 2003
  17. Martin Odersky and Philip Wadler, 'Pizza into Java: Translating theory into practice,' In Proc. 24th ACM Symposium of Principles of Programming Languages, pp. 146-159, 1997 https://doi.org/10.1145/263699.263715
  18. Don Batory, Bernie Lofaso, and Yannis Smaragdakis, 'JTS: Tools for Implementing Domain-Specific Languages,' In Proc. of Software Reuse, pp. 143-153, 1998 https://doi.org/10.1109/ICSR.1998.685739
  19. Jason Baker and Wilson C. Hsieh, 'Maya: Multiple-Dispatch Syntax Extension in Java,' In Proc. of PLDI, pp. 270-281, 2002 https://doi.org/10.1145/512529.512562
  20. Wolfgang Weck, 'Document-Centered Computing: Compound Document Editors as User Interfaces,' In Journal of Symbolic Computation, no. 11, pp. 1-24, 1997
  21. Clemens Szyperski, Dominik Gruntz, and Stephan Murer, Componet Software, 2nd ed., Addison-Wesley, 2002
  22. James Gosline, 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/
  23. Sheng Liang, Java Native Interface: Programmer's Guide and Specification, Addison-Wesley, 1999
  24. Seth White, et al., JDBC API Tutorial and Reference : Universal Data Access for the Java 2 Platform, 2nd ed, Addison-Wesley, 1999
  25. JavaCC-The Java Parser Generator, available at http://javacc.dev.java.net/
  26. Jim Hugunin, 'Python and Java: The Best of Both Worlds,' In Proc. of the International Python Conference, 1997, available at http://www.jython.org/
  27. James O. Coplien, Multi-Paradigm Design for C++, Addison-Wesley, 1999