I'm taking a programming language class right now (not very impressive credentials, I know :P) and I think its focus is telling: the primary goal is not to design and implement a general purpose compiler but rather to design and implement different DSLs.
Now, this obviously involves understanding how compilers and general purpose languages work, but it also involves some other skills and ideas both in design and implementation. The biggest difference is, of course, in scope--rather than thinking about languages good for anything, we think about very narrow languages heavily optimized to do one thing. These languages may stand alone or they may be embedded in bigger languages, but each language itself is distinct from other languages (including the "host" language).
These languages are also not always aimed at programmers--one of the examples (a past final project) was a language aimed at tailors, of all people, to help them work with patterns. Another language we looked at was designed for musicians to combine different inputs into one output.
These sort of languages are programming languages and have the same ideas, but they serve a different purpose. In a lot of ways, languages like this replace programs and GUIs, letting people work with text rather than pointing and clicking. I think there are very many domains where using text is preferable to a GUI--there is a reason I still use a CLI, after all--and this is exactly the sort of thing we're looking into, except not necessarily for programmers.
I've wandered a bit off topic, but I think these ideas are interesting. It's another direction for PL research--focusing on very narrow fields and potentially non-programmers. Just something to think about.
Now, this obviously involves understanding how compilers and general purpose languages work, but it also involves some other skills and ideas both in design and implementation. The biggest difference is, of course, in scope--rather than thinking about languages good for anything, we think about very narrow languages heavily optimized to do one thing. These languages may stand alone or they may be embedded in bigger languages, but each language itself is distinct from other languages (including the "host" language).
These languages are also not always aimed at programmers--one of the examples (a past final project) was a language aimed at tailors, of all people, to help them work with patterns. Another language we looked at was designed for musicians to combine different inputs into one output.
These sort of languages are programming languages and have the same ideas, but they serve a different purpose. In a lot of ways, languages like this replace programs and GUIs, letting people work with text rather than pointing and clicking. I think there are very many domains where using text is preferable to a GUI--there is a reason I still use a CLI, after all--and this is exactly the sort of thing we're looking into, except not necessarily for programmers.
I've wandered a bit off topic, but I think these ideas are interesting. It's another direction for PL research--focusing on very narrow fields and potentially non-programmers. Just something to think about.