• Axiom-Based Transformations: Optimisation and Testing 

      Bagge, Anya Helene; Haveraaen, Magne (Peer reviewed; Journal article, 2009-10-10)
      Programmers typically have knowledge about properties of their programs that aren't explicitly expressed in the code ­ properties that may be very useful for, e.g., compiler optimisation and automated testing. Although ...
    • Classifying and Measuring Student Problems and Misconceptions 

      Rosbach, Alexander Hoem; Bagge, Anya Helene (Norsk informatikkonferanse, Chapter; Peer reviewed, 2013)
      In this paper we report on an attempt to classify student problems and mistakes, and measuring the frequency of particular problems in a firstsemester programming course. We also propose a scheme for annotating student ...
    • Inferring Required Permissions for Statically Composed Programs 

      Hasu, Tero; Bagge, Anya Helene; Haveraaen, Magne (Lecture Notes in Computer Science; 8208, Chapter; Peer reviewed, 2013)
      Permission-based security models are common in smartphone operating systems. Such models implement access control for sensitive APIs, introducing an additional concern for application developers. It is important for the ...
    • Interfacing concepts: Why declaration style shouldn't matter 

      Bagge, Anya Helene; Haveraaen, Magne (Peer reviewed; Journal article, 2010-09-17)
      A concept (or signature) describes the interface of a set of abstract types by listing the operations that should be supported for those types. When implementing a generic operation, such as sorting, we may then specify ...
    • Parsing in a Broad Sense 

      Zaytsev, Vadim; Bagge, Anya Helene (Lecture Notes in Computer Science: 8767, Chapter; Peer reviewed, 2014)
      Having multiple representations of the same instance is common in software language engineering: models can be visualised as graphs, edited as text, serialised as XML. When mappings between such representations are considered, ...
    • A Pretty Good Formatting Pipeline 

      Bagge, Anya Helene; Hasu, Tero (Lecture Notes in Computer Science; 8225, Chapter; Peer reviewed, 2013)
      Proper formatting makes the structure of a program apparent and aids program comprehension. The need to format code arises in code generation and transformation, as well as in normal reading and editing situations. Commonly ...
    • Reflections on Courses for Software Language Engineering 

      Bagge, Anya Helene; Lämmel, Ralf; Zaytsev, Vadim (Conference object; Peer reviewed, 2014)
      Software Language Engineering (SLE) has emerged as a field in computer science research and software engineering, but it has yet to become entrenched as part of the standard curriculum at universities. Many places have a ...
    • Separating Exceptional Concerns 

      Bagge, Anya Helene (IEEE conference proceedings, Chapter; Peer reviewed, 2012)
      Traditional error handling mechanisms, including exceptions, have several weaknesses that interfere with maintainability, flexibility and genericity in software: Error code is tangled with normal code; reporting is tangled ...
    • Testing with Concepts and Axioms in C++ 

      Bagge, Anya Helene; David, Valentin; Haveraaen, Magne (Reports in Informatics: 368, Research report, 2008-10)
      Modern development practices encourage extensive testing of code while it is still under development, using unit tests to check individual code units in isolation. Such tests are typically case-based, checking a likely ...
    • Walk Your Tree Any Way You Want 

      Bagge, Anya Helene; Lämmel, Ralf (Lecture Notes in Computer Science; 7909, Chapter; Peer reviewed, 2013)
      Software transformations in the Nuthatch style are described as walks over trees (possibly graphs) that proceed in programmerdefined steps which may observe join points of the walk, may observe and affect state associated ...