Saturday, August 05, 2006

» A Matter of Semantics +

It's all about semantics. Linguists (of both natural languages and engineered languages) have long realized that semantics are foundational to all communication. Computer Scientists have not been blind to this important fact. Recent developments such as the Semantic Web and Domain Specific Languages (DSLs) have only served to emphasize this fact. Actually these developments aren't recent, but they are gaining more notice of late.

Well speaking of semantics, my brother has been working on an interpreted language called SEML (said SEEM-L; short for SEMantic Language). This is a "scripting language" which will allow for some pretty cool implementation strategies. Firstly, it should be stressed that the name SEML is not set in stone. The language is still in the design phase, and the name may change. Beyond that, SEML is a fully Object-Oriented language similar to LISP or Scheme in functionality (recursive replacement), but without all the strangeness (i.e., prefix notation, lists and atoms, monads). It is basically an imperative language with the benefits of a functional language (hey, sounds kind of like Ruby!). I won't say too much, as the language is still emerging, and is prone to change on a whim; but I will say that the prospects look very promising.

With its scheduled pattern-based replacement syntax, it is not simply a platform for hosting DSLs--it is, in its very essence, a DSL. It will include a standard library of patterns for common functionality such as conditional code execution (e.g., if blocks), operators (e.g., +, -), and so on. But these can all be overrided when needed. Another neat feature of the language is (optional) delayed evaluation. Say that you have the statement (using an informal notation) y=x+3. Normally this would be evaluated at the time of assignment--whatever the value of x at the time of assignment, add three to it. But with a special syntax SEML knows that this statement should be evaluated every time y is accessed. If x changes, then when y is accessed it will reflect this change.

At present SEML is nowhere near complete; but it is getting there. My brother is either a genius or a madman; my money is on genius. Time shall tell.


Post a Comment

<< Home