I am thinking about doing something with Domain Specific Languages for my undergraduate project. My one issue is I can not really find any interesting good examples will be able to root around in. Does anybody have good good examples of DSELs (ideally free)?

Also, an area I would like to take a look at is fixing/addressing concurrency problems (coroutines etc) with DSEL's. What are the good good examples that anybody uses of the in DSELs? If this sounds like a stupid use of DSELs please explain why...

Another potential area to understand more about would database programming. Again is a stupid area to understand more about with DSEL's. For instance, would adding some crazy database manipulation syntax to C# say be considered a good project to attempt?

EDIT: General languages I'd be searching at applying in could be Java, Python, Scala, C# etc. Most likely not C++ or C.

Linda implementations can be viewed as as eDSLs. STM implementations like CL-STM are extremely eDSLs.

Unrelated to concurrency, but very helpful take root Prolog implementations, you will find lots of them for Plan, Lisp and Clojure. Parsing eDSLs have been pointed out already - as well as their patriarch Parsec certainly worth digging into.

EDIT: together with your listing of implementation languages you are missing probably the most interesting eDSL possibilities. Probably the most effective and versatile eDSLs are created with metaprogramming. Scala-style (as well as Haskell-style) eDSLs derive from high order functions, i.e., on small-interpreters. They are more difficult in design, a smaller amount flexible and restricted to the syntax of the host language.

boost::spirit if you are after C++ is definitely an interesting example. Quote:

Spirit is some C++ libraries for parsing and output generation implemented as Domain Specific Embedded Languages (DSEL)...

(I've no clue that which you mean by "fixing concurrency" though. I do not see the best way to solve "concurrency problems" generally, or the way a DSEL may help.)