An Oslo's Mg sidekick, much like IL has this one — Let Y# enable clever DSL processing tools
AbstractThe Y# Language helps you express(~) your Oslo platform-based domain-specific language's design intent, for your language's implementors and users convenience — be those users humans or other tools using your language's reference implementation. By allowing you to formalize "somewhere" your DSL's design intent, Y# helps you make safer your DSL reuse by tools interested in it, in their contexts. — Thanks to the same information, Y# aims at easing as well the discovery of interesting properties of your DSL, by tools, for their purpose. It must be understood that Y# is not a programming language¬PL — nor it is a general purpose (meta) modeling language either. Instead, it is more a domain-specific(*) meta language itself, to be used for helping the design and implementation of your actual domain-specific language, in the Oslo platform's usage context. The Y4 Platform is a Visual Studio-Integrated Environment to implement this idea, along with other software factory helper features. Remarks¬PL Therefore, Y# is mostly irrelevant for being discussed on LtU, for example. However, the underlying theoretical aspects about its target ontology and/or design goals, or about DSL-oriented tool chains, can be discussed there usefully. (*) It is fair enough to see the domain of Y# as being the design and implementation of DSLs in the context of the Oslo platform. (~) (Warning) — Note that the current design of Y# doesn't quite have any other choice than to borrow a lot from an intuitionist approach to decide about its feature set / constructs as a language, since the language's object which is here at hand is still rather new (for the author, at least) — an effort is made to formalize the background of the language's design as unambiguously as we can, though. — (feedback welcome) |
||
ForewordAll of this content about Y# — The Language — and The Y4 Platform, makes the basic assumption that you have a good knowledge of the Domain-Specific (Modeling) Languages approach, and a basic knowledge of The Oslo platform's purpose and functionality, as documented in various online materials as of late January, 2009. If it is not the case, you should make yourself familiar with these two topics, at least, before reading more about Y# and Y4. Less specifically, a fair understanding / knowledge about the Software Factories (for) Industrialized Software Development ideas, which have been around for the last six or so years, is likely to be helpful, too. Check out these links as well, for the general thinking background scene. That being said, the reader not familiar yet with this above should not worry too much either. Out of our own practical experience, we do think that the entry cost for the Domain-Specific Language-oriented approach in general, and as it will be implemented in Oslo more specifically, is positively reasonable, as soon as we relate that cost to the approach's significant usefulness we have repetitively observed — especially when compared to other trends — no offense intended. Unsurprisingly, we are strong proponents of Oslo, over here. If you are not really interested in the Oslo platform, or "worse", even less interested in Domain-Specific Languages, it is then very likely that Y# is definitely irrelevant for you... (And, accordingly, we will welcome more and pay closer attention to other Oslo proponents' criticism than yours — again, no offense.) But of course, there is no software development technology of (absolute) perfection anywhere, though. As powerful and appealing as it will be, the forthcoming Oslo platform is no exception, there. Y# and Y4 just try to contribute here for making Oslo even more sound and friendly, by addressing what we believe will be (is) an important concern we have had eventually before the platform's release. To close this foreword, since someone mentioned it, we do not want Y# or Y4 to be either vaporware or rocket science. Much like Oslo's Mg and M themselves, we want both our language and tool to be objectively concrete, useful, and user-friendly — and that does mean we want to keep them as consistent, expressive, and simple as we can, but not simplistic. While you will need to have a basic knowledge about the underlying language theory's concepts (and maybe heard about other "classics"), you won't need to hold a Ph.D to understand how to make a good profit of Y# to invent and design your Oslo-based DSLs and implement clever DSL processing tools. Start by reading the rationale. Then, some time later, please give us your feedback. |
||
Available Resources
And of course... |
||
Last updated February 15, 2009
© Cyril Jandia 2008, 2009. All rights reserved.