Call for Papers

The 2nd International Conference on Software Language Engineering (SLE) is devoted to topics related to artificial languages in software engineering. SLE’s foremost mission is to encourage and organize communication between communities that have traditionally looked at software languages from different, more specialized, and yet complementary perspectives. SLE emphasizes the fundamental notion of languages as opposed to any realization in specific “technical spaces”.

Scope

The term “software language” comprises all sorts of artificial languages used in software development including general-purpose programming languages, domain-specific languages, modeling and meta-modeling languages, data models, and ontologies. Used in its broadest sense, examples include modeling languages such as UML-based and domain-specific modeling languages, business process modeling languages, and web application modeling languages. The term “software language” also comprises APIs and collections of design patterns that are mplicitly defined languages.Software language engineering is the application of a systematic, disciplined, quantifiable approach to the development, use, and maintenance of these languages. Thus, the SLE conference is concerned with all phases of the lifecycle of software languages; these include the design, implementation, documentation, testing, eployment, evolution, recovery, and retirement of languages. Of special interest are tools, techniques, methods and formalisms that support these activities.

In particular, tools are often based on or even automatically generated from a formal escription of the language. Hence, of special interest is the treatment of language descriptions as software artifacts, akin to programs - while paying attention to the special status of language descriptions, subject to tailored engineering principles and methods for modularization, refactoring, refinement, composition, versioning, co-evolution, and analysis.

Topics of Interest

We solicit high-quality contributions in the area of SLE ranging from theoretical and conceptual contributions to tools, techniques and frameworks that support the aforementioned lifecycle activities. Some examples of tools, techniques, applications, and problems are listed below in order to clarify the types of contributions sought by SLE.

  • Formalisms used in designing and specifying languages and tools that analyze such language descriptions: For example, of interest are formalisms such as grammars, schemas, ontologies, and metamodels; innovative tools that detect inconsistencies in a metamodel or analyze grammars in building a parser; and formal logics and proof assistants that verify properties of language specifications.

  • Language implementation techniques: This includes advances in traditional compiler generator tools such as parser/scanner generators, attribute grammar systems, term-rewriting systems, functional-programming-based combinator libraries, among many others; also of interest are metamodel-based and ontology tools such as constraint, rule, view, transformation, and query formalisms and engines.

  • Program and model transformation tools: Examples include tools that support program refinement and refactoring, model-based development, aspect and model weaving, model extraction, metamodeling, model transformations, round-trip engineering, and runtime system transformation.

  • Composition, integration, and mapping tools for managing different aspects of software languages or different manifestations of given language: For example, SLE is interested in tools for mapping between the concrete and abstract syntax of a language, for managing textual and graphical concrete syntax for the same or closely related languages; also, mapping descriptions and tools or XML/object/relational mappings.

  • Language evolution: Included are extensible languages and type systems and their supporting tools, as well as language onversion tools. APIs, when considered as languages, are subject to evolution; thus tools and techniques that assist developers in using a new version of an API or a competing implementation in a program are also of interest.

  • Approaches to the elicitation, specification, and verification of requirements for software languages: Examples include the use of requirements engineering techniques in the development of domain-specific languages and the application of logic-based formalisms for verifying language requirements.

  • Language development frameworks, methodologies, techniques, best practices, and tools for the broader language lifecycle covering phases such as analysis, testing, and documentation. For example, frameworks for advanced type or error checking systems, constraint mechanisms, tools for metrics measurement and language usage analysis, documentation generators, visualization backends, knowledge and process management approaches, as well as IDE support for many of these activities are of interest.

  • Design challenges in SLE: Example challenges include finding a balance between specificity and generality in designing domain-specific languages, between strong static typing and weaker yet more flexible type systems, or between deep and shallow embedding approaches, as, for example, in the context of adding type-safe XML and database programming support to general purpose programming languages.

  • Applications of languages including innovative domain-specific languages or “little” languages: Examples include policy languages for security or service oriented architectures, web-engineering with schema-based generators or ontology-based annotations. Of specific interest are the engineering aspects of domain-specific language support in all of these cases.

Do note that this list is not exclusive and many examples of tools,techniques, approaches have not been listed. The program committee chairs encourage potential contributors to contact them with questions about the scope and topics of interest of SLE.