Person. Jean-Baptiste Jeannin
Papers
Provably Safe Optimization of Arrival Flows Into Terminal Airspace dane-2026-provably
Probabilistic Floating-Point Round-Off Analysis via Concentration Inequalities tao-2026-probabilistic
A General Framework for Robust Quantitative Semantics of Signal Temporal Logic chen-2026-a
Towards Formal Verification of Hybrid Synchronous Programs with Refinement Types dane-2026-towards
Automatic Certification of the Active Corner Method for Collision Avoidance kheterpal-2026-automatic
Formalization of Asymptotic Convergence for Stationary Iterative Methods tekriwal-2024-formalization
Formally verified asymptotic consensus in robust networks tekriwal-2024-formally
Security Verification of Low-Trust Architectures tan-2023-security
How Do We Read Formal Claims? Eye-Tracking and the Cognition of Proofs about Algorithms ahmad-2023-how
A Concurrent Switching Model for Traffic Congestion Control rastgoftar-2023-a
Verified Correctness, Accuracy, and Convergence of a Stationary Iterative Linear Solver: Jacobi Method tekriwal-2023-verified
Synchronous Programming and Refinement Types in Robotics: From Verification to Implementation chen-2022-synchronous
Towards Verified Rounding Error Analysis for Stationary Iterative Methods kellison-2022-towards
Work-in-Progress: Towards a Theory of Robust Quantitative Semantics for Signal Temporal Logic jeannin-2022-work
Automating Geometric Proofs of Collision Avoidance with Active Corners kheterpal-2022-automating
Sift: Using Refinement-guided Automation to Verify Complex Distributed Systems maSiftUsingRefinementguided
I4: Incremental inference of inductive invariants for verification of distributed protocols maI4IncrementalInference2019
Towards Automatic Inference of Inductive Invariants ma-2019-towards
CoCaml: Functional Programming with Regular Coinductive Types jeannin-2017-cocaml
Fission: Secure Dynamic Code-Splitting for JavaScript guha-2017-fission
Traditional web programming involves the creation of two distinct programs: a client-side front-end, a server-side back-end, and a lot of communications boilerplate. An alternative approach is to use a tierless programming model, where a single program describes the behavior of both the client and the server, and the runtime system takes care of communication. Unfortunately, this usually entails adopting a new language and thus abandoning well-worn libraries and web programming tools.
In this paper, we present our ongoing work on Fission, a platform that uses dynamic tier-splitting and dynamic information flow control to transparently run a single JavaScript program across the client and server. Although static tier-splitting has been studied before, our focus on dynamic approaches presents several new challenges and opportunities. For example, Fission supports characteristic JavaScript features such as eval and sophisticated JavaScript libraries like React. Therefore, programmers can reason about the integrity and confidentiality of information while continuing to use common libraries and programming patterns. Moreover, by unifying the client and server into a single program, Fission allows language-based tools, like type systems and IDEs, to manipulate complete web applications. To illustrate, we use TypeScript to ensure that client-server communication does not go wrong.