Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Emma Söderberg is active.

Publication


Featured researches published by Emma Söderberg.


Science of Computer Programming | 2013

Extensible intraprocedural flow analysis at the abstract syntax tree level

Emma Söderberg; Torbjörn Ekman; Görel Hedin; Eva Magnusson

We have developed a new approach for implementing precise intraprocedural control-flow and dataflow analyses at the abstract syntax tree level. Our approach is declarative, making use of reference attribute grammars augmented with circular attributes and collection attributes. This results in concise executable specifications of the analyses, allowing extensions both to the language and with further source code analyses. To evaluate the new approach, we have implemented control flow, dataflow and dead assignment analyses for Java, by extending the JastAdd Extensible Java Compiler. We have compared our results to several well-known analysis frameworks and tools, using a set of Java programs as benchmarks. These results show that our approach performs well concerning both efficiency and preciseness.


software language engineering | 2010

Automated selective caching for reference attribute grammars

Emma Söderberg; Görel Hedin

Reference attribute grammars (RAGs) can be used to express semantics as super-imposed graphs on top of abstract syntax trees (ASTs). A RAG-based AST can be used as the in-memory model providing semantic information for software language tools such as compilers, refactoring tools, and meta-modeling tools. RAG performance is based on dynamic attribute evaluation with caching. Caching all attributes gives optimal performance in the sense that each attribute is evaluated at most once. However, performance can be further improved by a selective caching strategy, avoiding caching overhead where it does not pay off. In this paper we present a profiling-based technique for automatically finding a good cache configuration. The technique has been evaluated on a generated Java compiler, compiling programs from the Jacks test suite and the DaCapo benchmark suite.


language descriptions tools and applications | 2011

Building semantic editors using JastAdd: tool demonstration

Emma Söderberg; Görel Hedin

A semantic editor, providing services like completion and code browsing, can help users to quickly develop high-quality source code. However, a lot of languages still lack semantic editor support due to the difficulty and costs of development. Tool generation and reuse can greatly alleviate this development task. Specifically, tool generation from a formal specification, such as reference attribute grammars (RAGs), can increase development speed by reusing existing specifications. In this tool demonstration we demonstrate how semantic editors can be built with the aid of JastAdd, a meta-compilation tool based on RAGs. We demonstrate two editors built this way. One for a small object-oriented language, PicoJava, and one for the JastAdd specification language itself.


software language engineering | 2013

Circular Higher-order Reference Attribute Grammars

Emma Söderberg; Görel Hedin

Reference attribute grammars (RAGs) provide a practical declarative means to implement programming language compilers and other tools. RAGs have previously been extended to support both circular attributes and context-dependent declarative rewrites of the abstract syntax tree. In this previous work, dependencies between circular attributes and rewrites are not considered. In this paper, we investigate how these extensions can interact, and still be well defined. We introduce a generalized evaluation algorithm that can handle grammars where circular attributes and rewrites are interdependent. To this end, we introduce circular higher-order attributes, and show how RAG rewrites are a special form of such attributes.


software language engineering | 2018

Continuous model validation using reference attribute grammars

Johannes Mey; René Schöne; Görel Hedin; Emma Söderberg; Thomas Kühn; Niklas Fors; Jesper Öqvist; Uwe Aßmann

Just like current software systems, models are characterised by increasing complexity and rate of change. Yet, these models only become useful if they can be continuously evaluated and validated. To achieve sufficiently low response times for large models, incremental analysis is required. Reference Attribute Grammars (RAGs) offer mechanisms to perform an incremental analysis efficiently using dynamic dependency tracking. However, not all features used in conceptual modelling are directly available in RAGs. In particular, support for non-containment model relations is only available through manual implementation. We present an approach to directly model uni- and bidirectional non-containment relations in RAGs and provide efficient means for navigating and editing them. This approach is evaluated using a scalable benchmark for incremental model editing and the JastAdd RAG system. Our work demonstrates the suitability of RAGs for validating complex and continuously changing models of current software systems.


LU-CS-TR:2012-249; 98 (2012) | 2012

Incremental Evaluation of Reference Attribute Grammars using Dynamic Dependency Tracking

Emma Söderberg; Görel Hedin


Archive | 2012

Contributions to the Construction of Extensible Semantic Editors

Emma Söderberg


software language engineering | 2012

A Comparative Study of Incremental Attribute Grammar Solutions to Name Resolution

Emma Söderberg; Görel Hedin


Technical Report Series TUD-SERG-2012-021 | 2012

Natural and Flexible Error Recovery for Generated Modular Language Environments

M. de Jonge; Lennart C. L. Kats; Emma Söderberg; Eelco Visser


Archive | 2010

Contributions to the generation of semantic editors

Emma Söderberg

Collaboration


Dive into the Emma Söderberg's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Johannes Mey

Dresden University of Technology

View shared research outputs
Top Co-Authors

Avatar

René Schöne

Dresden University of Technology

View shared research outputs
Top Co-Authors

Avatar

Thomas Kühn

Dresden University of Technology

View shared research outputs
Top Co-Authors

Avatar

Uwe Aßmann

Dresden University of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge