skip to main content

Language extension via dynamically extensible compilers.

Seefried, Sean, Computer Science & Engineering, Faculty of Engineering, UNSW

2006

Check for online availability

  • Title:
    Language extension via dynamically extensible compilers.
  • Author/Creator/Curator: Seefried, Sean, Computer Science & Engineering, Faculty of Engineering, UNSW
  • Subjects: plug-ins; functional programming; extensibility; dynamic loading; expression problem; meta-programming
  • Resource type: Thesis
  • Type of thesis: Ph.D.
  • Date: 2006
  • Language: English
  • Permissions: This work can be used in accordance with the Creative Commons BY-NC-ND license.
    Please see additional information at https://library.unsw.edu.au/copyright/for-researchers-and-creators/unsworks

  • Description: This dissertation provides the motivation for and evidence in favour of an approach to language extension via dynamic loading of plug-ins. There is a growing realisation that language features are often a superior choice to software libraries for implementing applications. Among the benefits are increased usability, safety and efficiency. Unfortunately, designing and implementing new languages is difficult and time consuming. Thus, reuse of language infrastructure is an attractive implementation avenue. The central question then becomes, what is the best method to extend languages?Much research has focussed on methods of extension based on using features of the language itself such as macros or reflection. This dissertation focuses on a complementary solution: plug-in compilers. In this approach languages are extended at run-time via dynamic extensions to compilers, called plug-ins. Plug-ins can be used to extend the expressiveness, safety and efficiency of languages. However, a plug-in compiler provides other benefits. Plug-in compilers encourage modularity, lower the barrier of entry to development, and facilitate the distribution and use of experimental language extensions. This dissertation describes how plug-in support is added, to both the front and back-end of a compiler, and demonstrates their application through a pair of case studies.

Searching Remote Databases, Please Wait