James Skene Seminar
who is a post-doc with John Hosking
at the University of Auckland gave a seminar on "Descript, a declarative, object-oriented modelling language".
Software engineering, or the act of producing software, involves capturing decisions and domain knowledge in abstractions. Ultimately, the programs that we write are abstractions, or models, of their every possible execution. But, in the course of writing a program we may also develop other abstractions, such as domain models, class hierarchies, interfaces, domain-specific representations etc.
Ideally, once we have captured some knowledge in an abstraction, we would prefer to reuse that abstraction in other projects, rather than go to the effort of redeveloping it. But, it seems to be difficult to keep track of what artifacts mean over time, and to separate interesting abstractions from non-interesting, project specific ones.
In my talk I will discuss Descript, a language that I am developing with funding from the FRST. Descript is an attempt at a language that will allow software engineers to capture abstractions in such a way that their meaning is clear, retained over time, easy to extract, relatively untainted by quotidian detail, and at the same time still useful. It is object-oriented in the sense that it models objects and relationships in the real world. It is declarative in the sense that it has no primitives for modelling actions. Descript is intended to be useful for programming, modelling and metamodelling. It is also intended to address some perceived deficiencies in existing technologies in the model-driven engineering sphere, such as UML, MOF and OCL.