Reference 1
RUST ——–buffer——–> Ocaml <———————
Escape Hatches:
ML:C FFI Rust:unsafe Java: JNI
All type soundness(safety) guarranttes are gone.
Instead, use Principled FFIs:
Linking types: support safe initeroperability with other languages.
Slow migration from dynamic typing to static typing.
Mixed with dynamic & static types. EG: C#, Typescript, Hack, Flow, Dart.
Cast Calculus: cast dynamic type to static type.
What is Semantics of Casts?: What a cast should be checking or not checking is the heart of where the research area is. Three main questions:
relational reasoning. soundness.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?