Cost semantics


  • Functional language
  • Proven-correct compiler
  • Able to bootstrap itself

<->

🤝

.asm

🤝

$\text{machine_sem}\,(\text{compile}\,prog)\,\subseteq\\ \text{extend_with_resource_limit}(\text{source_sem}\,prog)$
$\text{extend_with_resource_limit}(\text{source_sem}\,prog)$
$\text{source_sem}\,prog\,\cup$ 💥

🤝

$\text{machine_sem}\,(\text{compile}\,prog)\subseteq\\ \text{extend_with_resource_limit}(\text{source_sem}\,prog)$

👍

$\text{machine_sem}\,(\text{compile}\,prog)=\text{source_sem}\,prog$

✅ 👉 👍

$\bbox[background-color: #f19a3e]{\text{is_safe}\,prog} \implies \\ \text{machine_sem}\,(\text{compile}\,prog)= \text{source_sem}\,prog$
*Wildly oversimplified
  • Cost semantics proved sound w.r.t compiler
  • Concrete examples with tight bounds
  • Published on OOPSLA 2020