CS 541 meeting -*- Outline -*- * approaches to solving these problems Bonnie Nardi's book "A Small Matter of Programming" (MIT press, 1993) have a discussion about this the results in 1999 were as follows: ** domain specific languages (DSLs) examples: Microsoft Excel, Lotus 1-2-3 what other examples have you seen? music notation, knitting notation, MathCad, Mathematica, computer-aided design systems, text formatting systems (FrameMaker, Microsoft Word), statistical packages (SPSS), 4GLs, Logo the basic idea is to split the work, letting programming experts write the domain specific language, and letting end-users use it to do their real work, exploiting their expertise in the domain ** reuse, as in object-oriented frameworks the idea here is to share the work components, and object-oriented frameworks are examples ** executable specifications or search the idea here is to let the machine do the work Prolog and other logic programming languages are an example ** other issues meta-language design and meta-meta-language design, who are the customers? will this put us out of business? how can we as language designers help in this process? what is the role of visualization? what is the role of collaboration? ** syllabus based on this What are the common elements in what works? what are the most successful approaches? in 1999: domain specific languages, building these with Haskell (explain the connection with lazy evaluation) object-oriented programming, frameworks, components (Smalltalk) logic programming perhaps using it to make domain specific languages (at least see how well prototyping works)