From type systems to language systems?

As a matter of "kick-start" to a discussion about something I'm sort of "obsessed" with (*), lately :

* What if from our current "successful" OO type systems coming out-of-the-box in the execution platform, with reflective capabilities (see Java, .NET, ...) and metadata-based patterns of thought for problem solving (1,2) ... we would slowly but surely end up --we like it or not (3)-- entering a new paradigm, where DSLs have become first class citizens of the new platforms, much like types today? (type systems-centric logic vs. language/modeling systems-centric logic) ?

* Assumption/question : I reckon, that would likely be nothing really new, actually, just a matter of applying a raise in abstraction of how we bake artifacts (documents, code, end-user results, etc). More specifically, that would be yet another use of reification thinking processes and alike/related. But then... couldn't or SHOULDn't we draw useful lessons, from those reflection-enabled type systems (which seemingly tend to ease the implementation of loosely coupled architecture designs) and Berners Lee's and Fielding's (4) works regarding scalability?

I do think we should, but thanks in advance for sharing your thoughts, much welcome.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

What benefit do you get?

What benefit do you get from making the languages themselves first class citizens in a common type/execution framework like .NET?

I mean DSLs tend to be of benefit because they're distinctly different than your other options. Even the most peculiar .NET language is still bound by the framework constraints. I'm not sure that a framework can be suitably generic/flexible to support arbitrary language features and still be practical.

Reified semantics

Yeah, I've also had a vague hunch about this. I'll try and expand on it a bit, though my thinking is still pretty sloppy as you can see:

* A lot of the "frameworks" out there, from COM/CORBA to CLR to XML/web services stuff to data modeling/ORM, can be thought of as reifying "syntax" (in the sense that types in these systems can be thought of as defining the structure of an abstract syntax tree, sometimes with accompanying transformations from concrete syntax as with XML schemas)

* I suspect that someday creation of new reified-abstract-syntax frameworks will finally start to settle down, and attention will start to turn to reifying semantics (i.e. making more incursions into what's now referred to as "behavior"). There seems to have been a lot of academic work done on this already (denotational semantics, etc.) and it will be interesting to see more of that turned into technological artifacts.

I've been recently following Microsoft's "Oslo"/SQL Server Modeling, which they are promoting as modeling applications, but it's basically another reified-syntax framework with "behavior" relegated to separate "runtimes" (" You definately can't have an "executable model" unless there's a runtime to execute it. Such a runtime is meant to read data from a database (either an Oslo Repository or something else) and produce behavior based on that data, e.g. your average CRM application. You're right, also, that we don't ship any runtimes with the current Oslo SDK. " -- MSFT's Chris Sells on MSDN message board thread) That seems to be confusing people, which got me thinking that the next trend will be towards "reified semantics". (e.g. Haskell's monad transformers?)

ATTN people who know what they're talking about: Does the above make any sense at all? I guess classifying type systems as "syntax" is a stretch.

not sure i follow

but if i do, then you might find shen interesting.