SLEBoK (Software Language Engineering Body of Knowledge)
The field of software language engineering (SLE) has emerged based on a strong motivation to connect and integrate different research disciplines such as compiler construction, reverse engineering, software transformation, model-driven engineering, and ontologies. SLE is defined as the application of systematic, disciplined, and measurable approaches to the development, deployment, use, and maintenance of software languages.
The Software Language Engineering Body of Knowledge (SLEBoK) is a community-wide effort to provide a unique and comprehensive description of the concepts, tools and methods developped by the SLE community. It features artefacts, definitions, methods, techniques, best practices, open challenges, case studies, teaching material, and other components that would help students, researchers, teachers, and practitioners to learn from, to better leverage, to better contribute to, and to better disseminate the intellectual contributions and practical tools and techniques coming from the SLE field.
The SLEBoK has been initiated during the SLEBoK Dagstuhl Seminar in August, 2017, exactly one decade after the advent of SLE as a scientific field (SLE 2008 in Toulouse, France) to continue working on ideas of earlier initiatives like SL(E)BOK @ SLE 2012 and extend them. The SLEBoK is expected to continuously involve, reflecting an up-to-date view on SLE.
Use the SLEBoK
The SLEBoK is provided as a Github repository. We recommend users to browse directly the SLEBoK through Github, or to clone the repository for local consultations.
The SLEBoK is currently composed of the following main sections that the reader may consult:
- terms: provides a glossary and precise definitions of the concepts used and developped in SLE.
- topics: connects terms into broader categories to form a proper taxonomy and eventually ontology.
- literature: provides several reviews of the litterature on specific topics related to SLE.
- tools: provides the description of some SLE tools.
- usecases: describes relevant scenarios for SLE.
- teaching: provides materials about existing courses, and insights regarding an SLE curriculum.
Contribute to the SLEBoK
Contributions can be made through pull requests. Github issues are also used for discussing the contributions, and for community-wise discussions.
The SLEBoK Slack channel is also available to discuss any improvements of the SLEBoK (content, structure, etc.):
The SLEBoK would not have been possible without the initial set up provided by the Dagstuhl Seminar 17342 Participants.