C codegen considered unnecessary: go directly to binary, do not pass C. Compilation of Julia code for deployment in model-based engineering
Fredrik Bagge Carlson, Cody Tapscott, Gabriel Baraldi, Chris, Rackauckas

TL;DR
This paper demonstrates how Julia's native LLVM-based compilation enables direct deployment of high-level code as binaries for real-time embedded systems, bypassing the need for C code generation.
Contribution
It introduces a novel approach using Julia's LLVM pipeline to compile high-level models directly into architecture-specific binaries for real-time applications.
Findings
Julia can compile to binaries suitable for embedded systems.
The approach simplifies deployment by avoiding C code generation.
Case studies include a Raspberry Pi estimator and a Julia PID library.
Abstract
Since time immemorial an old adage has always seemed to ring true: you cannot use a high-level productive programming language like Python or R for real-time control and embedded-systems programming, you must rewrite your program in C. We present a counterexample to this mantra by demonstrating how recent compiler developments in the Julia programming language allow users of Julia and the equation-based modeling language ModelingToolkit to compile and deploy binaries for real-time model-based estimation and control. Contrary to the approach taken by a majority of modeling and simulation tools, we do not generate C code, and instead demonstrate how we may use the native Julia code-generation pipeline through LLVM to compile architecture-specific binaries from high-level code. This approach avoids many of the restrictions typically placed on high-level languages to enable C-code…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsModel-Driven Software Engineering Techniques · Simulation Techniques and Applications · Modeling and Simulation Systems
MethodsLib
