Basics

Reference 1

  • Escape Capture
  • References: Escape Analysis & Capture Tracking in LLVM Pointer Capture: A pointer value is captured if the function makes a copy of any part of the pointer that outlives the call. Pinter Escape: A pointer value escapes if it is accessible from outside the current function or thread. The latter case is sometimes considered separate and called thread-escape. Capture and Escape are not opposites: Informally, escaping is concerned with the contents of the pointer, while capturing is concerned with the pointer itself 1.

  • Reaching Def
  • Reference 1 Reaching Definition Analysis, (reaching assignment analysis): An assignment (called a definition in classical literature) of the form $[x:=a]^l$ may reach a certain program point (typically the entry or exit of an elementary block) if there is an execution of the program where $x$ was last assigned a value at $l$ when the program point is reached. For example, for the factorial program below: $[y:=x]^1; [z:=1]^2; while [y>1]^3 do ([z:=z*y]^4; [y:=y-1]^5); [y:=0]^6$

  • Interprocedural
  • References: Ch12 of Dragon Book1. Static Program Analysis: Part 7 – Interprocedural analysis Intra-procedural Analysis Most compiler optimizations are performed on procedures one at a time. We refer to such analyses as intraprocedural. These analyses conservatively assume that procedures invoked may alter the state of all the variables visible to the procedures and that they may create all possible side effects, such as modifying any of the variables visible to the procedure or generating exceptions that cause the unwinding of the call stack.

  • Complexity
  • Reference: References: [1] Static Program Analysis, Anders Moller, and Micheal I. Schwartzbach, 2018. Questions/Proposals To decide whether any given a program will halt or not is undecidable. However, there are many programs (probably small or large) that we already know it will halt, or will never halt. How many are there? What is the common feature of these programs? Could we statically describe some (not all) of them? Undecidability of Program Correctness


  1. reference ↩
Created Oct 30, 2019 // Last Updated May 18, 2021

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?