Engr 691-06: Special Topics in Engineering Science
(Software Language Engineering)
Spring 2009
Lecture Notes and Web Resources


  1. M. P. Ward. "Language-Oriented Programming," Software---Concepts and Tools, Vol. 15, No. 4, pp. 147-161, 1994. Also available as http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf.
  2. Doug Rosenberg with Kendall Scott. "Domain Modeling," Chapter 2 in Use Case Driven Object Modeling with UML, Addison Wesley 1999.
  3. Slides on domain modeling, course registration system example.

  4. Doug Rosenberg with Kendall Scott. "Use Case Modeling," Chapter 3 in Use Case Driven Object Modeling with UML, Addison Wesley 1999.
  5. Reference: Alistair Cockburn. "Introduction," Chapter 1 in Writing Effective Use Cases, Addison-Wesley, 2001.

  6. James Coplien, Daniel Hoffman, and David Weiss. "Commonality and Variability in Software Engineering," IEEE Software. Vol. 15, No. 6, November 1998.
  7. Jon Bentley. "Programming Pearls: Little Languages," Communications of the ACM, Vol. 29, No. 8, pp. 711-721, August 1986. [PDF]
  8. H. C. Cunningham. "A Little Language for Surveys: Constructing an Internal DSL in Ruby," In Proceedings of the ACM SouthEast Conference, 6 pages, March 2008. [manuscript] [presentation]
  9. H. Conrad Cunningham. "Domain-Specific Language for Simple Surveys"
    [Ruby source code] [test DSL input file] [test DSL input file with errors]

  10. Martin Fowler. Domain Specific Languages, book under development http://www.martinfowler.com/dslwip/, Accessed 1 May 2009.
  11. Other reference material (handed out but not discussed explicitly)

  12. Martin Fowler. "One Lair and Twenty Ruby DSLs," Chapter 3 in The ThoughtWorks Anthology: Essays on Software Technology and Innovation, pp. 15-38, Pragmatic Bookshelf, 2008.
  13. Steve Freeman and Nat Pryce. "Evolving an Embedded Domain-Specific Language in Java," In Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 12 pages, 2006. (Online copy at http://www.jmock.org/oopsla2006.pdf.)
  14. Relevant references from Fall 2006 Ruby Software Development class

  15. Martin Fowler. Language Workbenches: The Killer-App for Domain Specific Languages? http://www.martinfowler.com/articles/languageWorkbench.html, June 2005.
    [author's website] [local copy]
  16. Martin Fowler. Generating Code for DSLs, http://www.martinfowler.com/articles/codeGenDsl.html, June 2005.
    [author's website]
  17. Conrad Cunningham. Ruby version of Fowler's DSL framework.
  18. Jim Weirich. "Rake Tutorial," "Rake User Guide," and "Rake by Example," 2005.
    (Basic ideas discussed.) [Ruby Rake web site]
  19. Jim Freeze. Creating DSLs with Ruby, Artima Developer, http://www.artima.com/rubycs/articles/ruby_as_dsl.html, March 2006.
    [Artima website] [local printer-friendly copy]
  20. Jamis Buck. Writing Domain Specific Languages, the { buckblogs :here }, 20 April 2006.
    [blog entry]


UP to Engr 691 Software Language Engineering root document?


Copyright © 2009, H. Conrad Cunningham
Last modified: Wed, 13 May 2009