Eclipse Modeling Day/Session Abstracts
Building DSLs with Xtext
Domain-Specific Languages (DSLs) are becoming more and more popular, allowing developers to express their intent more precisely and with less syntactic noise. DSLs can be built on top of a host language (like Java or Ruby), which are referred to as "internal DSLs". External DSLs are far more flexible in terms of language design: you can define any desired grammar, you can define domain specific constraints and error messages, and you can process the DSL in a concise manner because it can either be interpreted or transformed into the code of any language by a generator.
Xtext, which is a part of the Eclipse Galileo release, is a framework for developing textual domain-specific languages. Given an EBNF-style grammar, Xtext automatically generates an Ecore meta model and a rich- featured, fully configurable text-based DSL editor including features such as syntax highlighting, hyperlinked reference navigation, reference look-up, code completion, formatting, an outline and so on. The default implementation can easily be customized.
In this session we will explain what DSLs are and why you should care about using them. After a short introduction, we will show how to develop DSLs with Xtext during a live demo. You will see how to define a grammar for a DSL and create a full-blown editor for this DSL. We will also show how to apply code generation that allows you to transform your DSL scripts into running software.
Developing Models to Improve Social Science Theory
Abstract: Social science is challenged by the lack of rigorous experiments that measure all the relevant psychological, behavioral, and social parameters. Modern software architectures allow for complex social science phenomena to be simulated on computers. Theories and models from the social sciences can be implemented in autonomous software objects (agents). Learning, adaptation, memory, network relationships, and even emotional states can be modeled in these computer agents.
Simulating heterogenous populations of these agents shows promise for advancing social science theory by providing an experimental testbed. In addition to advancing theory, computational social science (CSS) shows promise for assessing how proposed policies and operations might be adopted, or rejected, by different groups and populations. The computational horsepower and software exist today to simulate large numbers (e.g. >>10) of interacting, adaptive, and autonomous agents.
The required social science theories and models needed to construct valid computational social science simulations remain to be scientifically developed, documented, shared, and tested. What is needed is a transparent, publicly accessible, common computer simulation framework.
Computational social science simulations to date have been judged on whether or not they are based upon existing social science theories. Often these theories are assumed to be universally valid and scientifically sound with the onus put on the computer modelers to verify they have implemented the existing theories correctly, versus using the simulations to challenge the validity of the theories themselves.
Current practice relies upon round-table discussions of social science subject matter experts advising policy and decision makers. These subject matter expert approaches lack full transparency into the assumptions, methods, and limitations of the propositions put forth by experts. Computational social science methods provide rigorous, repeatable, and transparent methods for adjudicating, advancing, existing social science claims, concepts and theories. Computational modeling of social systems also forces more scientific rigor on the social sciences to develop transparent, falsifiable, and explicit models of human behavior. Challenges that currently exist in advancing applied social science via computational methods and frameworks are presented here along with some suggestions on how to surmount these challenges using the Eclipse Modeling Framework.