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


  1. Jon Bentley. "Programming Pearls: Little Languages," Communications of the ACM, Vol. 29, No. 8, pp. 711-721, August 1986. [PDF]
  2. 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]
  3. H. Conrad Cunningham. "Domain-Specific Language for Simple Surveys"
    [Ruby source code] [test DSL input file] [test DSL input file with errors]

  4. James Coplien, Daniel Hoffman, and David Weiss. "Commonality and Variability in Software Engineering," IEEE Software. Vol. 15, No. 6, November 1998.
  5. Slides on domain modeling, course registration system example.

  6. Mark Ardis, Nigel Daley, Daniel Hoffman, Harvey Siy, and David Weiss. "Software Product Lines: A Case Study," Software Practice and Experience, Vol. 30, No. 7, pp. 825-847.2000.
  7. (For Reference) 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.
  8. Instructor's example Scala code for selected Fowler examples

  9. Computer Configuration DSLs
  10. Email Message Building Internal DSL using Method Chaining with Progressive Interfaces:
  11. State Machine Model and "Secret Panel" Controller External DSLs
  12. UNDER CONSTRUCTION BELOW THIS POINT

  13. 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.
  14. Doug Rosenberg with Kendall Scott. "Domain Modeling," Chapter 2 in Use Case Driven Object Modeling with UML, Addison Wesley 1999.
  15. Doug Rosenberg with Kendall Scott. "Use Case Modeling," Chapter 3 in Use Case Driven Object Modeling with UML, Addison Wesley 1999.
  16. Reference: Alistair Cockburn. "Introduction," Chapter 1 in Writing Effective Use Cases, Addison-Wesley, 2001.

    Other reference material (handed out but not discussed explicitly)

  17. 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.)
  18. Relevant references from Fall 2006 Ruby Software Development class

  19. 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]
  20. Martin Fowler. Generating Code for DSLs, http://www.martinfowler.com/articles/codeGenDsl.html, June 2005.
    [author's website]
  21. Conrad Cunningham. Ruby version of Fowler's DSL framework.
  22. Jim Weirich. "Rake Tutorial," "Rake User Guide," and "Rake by Example," 2005.
    (Basic ideas discussed.) [Ruby Rake web site]
  23. 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]
  24. Jamis Buck. Writing Domain Specific Languages, the { buckblogs :here }, 20 April 2006.
    [blog entry]


UP to Engr 691 Software Language Engineering root document?


Copyright © 2011, H. Conrad Cunningham
Last modified: Sun Feb 21 17:20:17 CST 2016