Outline of a Literature Review

July 3, 2009
  1. DSLs are important
    1. Definitive ANTLR reference positioned as book teaching how to make DSLs
    2. Sprinkle et al. Guest Editor introduction in latest IEEE software on DSLs
    3. S. Dmitriev “Language Oriented Programming: The Next Programming Paradigm”
  2. DSLs
    1. What is a DSL
      1. Definitions (Variety of sources)
      2. Bentley 1986 Little Languages
    2. How DSLs are implemented
      1. Supporting the DSL Spectrum (review of DSL approaches)
      2. When and how to develop domain-specific languages
      3. Notable design patterns for DSLs
    3. DSL benefits
      1. Supporting the DSL Spectrum (claimed 50:1 improvement in program length)
    4. Why DSLs work
      1. SWYN: Notation has a large effect on performance. Mental models of evaluators.
      2. When and how to develop domain-specific languages
      3. Prechelt 2000/2003: Scripting langs. vs. stodgier langs empirical comparison
    5. Misc. Surveys of other DSL literature
      1. Domain-specific languages in software development
      2. Domain-specific languages: An annotated bibliography
      3. Landin 1966: The next 700 programming languages
      4. Beyond LEX and YACC: Introduction to a number of DSLs to simplify compiler construction
      5. Fowler 2005 on language workbenches
  3. Debugging
    1. Maintenance is expensive and important
      1. Measuring and managing software maintenance
    2. There is a variety of data on debugging strategies and tactics and tools to support these
      1. Weiser 1982: Programmers use slices when debugging (just a tactic)
      2. Gugerty and Olson 1986 Debugging by Skilled and Novice Programmers (not much theory)
      3. Eisenstadt 1993: Tales of debugging from the front lines
      4. Murphy 2008 Debugging–a qualitative analysis of novices’ strategies
      5. Ko 2005, Ko 2006: Detailed study of corrective and perfective maintenance tasks, how it informs Whyline/IDE design
      6. Ko 2006: Debugging by asking q. about program output (Introduction of the Whyline)
      7. Liu 2006: Statistical Debugging: A hypothesis testing based approach
      8. Ruthruff 2005: Empirical study of fault localization for end-user programmers
      9. Ducasse and Emde 1988 A review of automated debugging systems (some debugging strategies and types of knowledge)
    3. There are a variety of models of bugs and debugging
      1. Vessey 1989 Toward a theory of computer program bugs (debugging is about program comprehension)
      2. Hale 1991 Towards a model of programmers’ cognitive processes during software maintenance, Hale 1999 evaluation of the model (Structural Learning Theory)
      3. Eisenstadt 1993: Tales of debugging from the front lines
      4. Von Mayrhauser/Vans 1997/1999: Program understanding behavior during maintenance (Integrated Comprehension Model)
      5. Xu 2004: Cognitive processes during program debugging (Bloom’s Taxonomy in the Cognitive Domain)
      6. Ramanujan 2000: An experimental investigation of the impact of individual, program, and organizational characteristics on software maintenance effort (Human Information Processing)
    4. Misc survey
      1. Debugging: A review of the literature (McCauley 2008)
  4. DSLs + Debugging: Nearly green-field
    1. There is a need for DSL debuggers
      1. Weaving a debugging aspect into DSL etc.
      2. KHEPERA
      3. Editorial Review of above: Cost of maintenance + proliferation of DSL usage = DSL maintenance
    2. Survey of literature looking at DSL maintenance
      1. Little Languages: Little maintenance?
      2. DSL maintenance vs. UML maintenance in IEEE software
      3. A software engineering experiment in software component generation: Experiment on DSL vs. GPL tasks
    3. Editorial Review: Most published research on debugging in general does not apply to DSLs in general. Not much literature on DSL maintenance
    4. Need for theory-based approach
      1. Hannay 2007 A Systematic Review of Theory Use in Software Engineering Experiments
      2. Ko 2005: Framework and methodology for studying the causes of errors in programming systems (theory of bug introduction)

This justifies and leads into my thesis, which, in the current plan:

  • Extends Ko’s 2005 theory to make predictions about DSL bugs (by incorporating knowledge of what DSLs are, when they are used and why they work)
  • Applies the various theories of debugging to DSLs or shows why they are difficult to apply
  • Claims that there is virtually no existing research on costs of DSL maintenance
  • Claims that there is very little understanding of DSL maintenance issues
  • Predicts that DSL maintenance is an important consideration
  • Examines the above predictions via interviews of DSL-using practitioners in Toronto.

2 Responses to “Outline of a Literature Review”

  1. Ian Says:

    Have you tried searching for debugging of specific DSLs? For example, I picked a couple of DSLs mentioned in the Wikipedia article on DSLs. Most turned up nothing, but Googling “debug uml” turned up an interesting sounding Nasa paper on debugging UML: http://ti.arc.nasa.gov/m/pub/188h/0188%20(Schumann).pdf

  2. aran Says:

    @Ian: That’s a good link, thanks.

Comments are closed.

%d bloggers like this: