BEGIN:VCALENDAR
PRODID:-//eluceo/ical//2.0/EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:bbbe26a83b83c998e64745397ff4fa1b
DTSTAMP:20261013T011118Z
SUMMARY:Anton Risberg Alaküla's PhD defence
DESCRIPTION:Kontakt: anton.risberg_alakula@cs.lth.se\n\nThesis title:&nbsp\
 ;Live Exploration and Testing of Source Code AnalyzersAuthor: Anton Risber
 g Alaküla\, Department of Computer Science\, Lund UniversityFaculty oppon
 ent: Associate Professor Matthias Hauswirth\, Università della Svizzera i
 taliana (USI)\, Lugano\, SwitzerlandExamination Committee:Professor Regina
  Hebig\, University of Rostock\, GermanyProfessor David Broman\, KTH Royal
  Institute of TechnologyAssociate Professor Mircea Lungu\, IT University C
 openhagen\, DenmarkDeputy: Senior Lecturer Flavius Gruian\, Lund Universit
 ySession chair:&nbsp\;Professor Björn Regnell\, Lund UniversitySupervisor
 s:Main supervisor: Professor Görel Hedin\, Lund UniversityAssociate Senio
 r Lecturer Niklas Fors\, Lund UniversityLocation: E:1406\,&nbsp\;E-huset\,
  Klas Anshelms väg 10/Ole Römers väg 3\, LundHere is a link to the thes
 is in Research Portal (opens in new window)&nbsp\;AbstractSource code anal
 ysis is central in software development tools\, for example in compilers t
 o detect compile-time errors and possible optimizations\, in IDEs to provi
 de interactive coding assistance\, and in stand-alone analysis tools to de
 tect bugs. Many source code analyses can be composed of a set of smaller\,
  connected analysis steps. For example\, the static semantic analysis perf
 ormed by a compiler typically depends on type analysis\, which in turn dep
 ends on name analysis. A tool typically only exposes the final step to end
  users\, but during development it is beneficial to be able to explore and
  test all intermediate steps as well.In this thesis we explore tools and t
 echniques for simplifying the development of source code analyzers\, parti
 cularly focusing on exploring and testing intermediate analysis steps. We 
 introduce the concept of property probes to support this goal. Property pr
 obes enable efficient and robust interaction with computations associated 
 with nodes in abstract syntax trees (ASTs). This thesis presents the diffe
 rent kinds of probes\, and associated algorithms for creating and applying
  them. We also present benchmarks showing that performance scales well for
  real-world development tasks.We have implemented property probes in a too
 l called CodeProber. CodeProber has been integrated into two university co
 urses on compilers and program analysis as an aid during lab assignments. 
 We performed an in-depth user study on students in one of the courses\, an
 d found overall very positive feedback.Property probes work well with anal
 ysis formalisms such as Attribute Grammars (AGs) which associate functiona
 lity with nodes in a tree structure. In AGs\, attributes are supposed to b
 e specified in a declarative way\, free from side effects. However\, in pr
 actice\, side effects may still exist\, and this can cause subtle bugs tha
 t are hard to debug. In this thesis we present algorithms that can be used
  to dynamically test for the presence of side effects. We applied these al
 gorithms to a Java compiler and found 13 issues\, including nondeterminist
 ic code generation.Finally\, in this thesis we present text probes\, a lan
 guage for unit testing source code analysis results. Text probes are struc
 tured comments in source files\, and they enable tests that are a small fr
 action of the size of a traditional unit test. They also fit well in an ag
 ile test-driven development workflow. We added text probe support to CodeP
 rober\, which gives the developer code completion while creating tests\, a
 nd live feedback on the test results.&nbsp\;\n\nMer information om händel
 sen: https://www.cs.lth.se/evenemang/anton-risberg-alakulas-phd-defence
DTSTART;TZID=GMT:20261029T121500
DTEND;TZID=GMT:20261029T121500
LOCATION:E:1406\, E-huset\, Klas Anshelms väg 10/Ole Römers väg 3\, Lun
 d
END:VEVENT
END:VCALENDAR
