Skip to main content
CenXiv.org
This website is in trial operation, support us!
We gratefully acknowledge support from all contributors.
Contribute
Donate
cenxiv logo > cs > arXiv:2510.00210

Help | Advanced Search

Computer Science > Programming Languages

arXiv:2510.00210 (cs)
[Submitted on 30 Sep 2025 (v1) , last revised 2 Oct 2025 (this version, v2)]

Title: The CoCompiler: DSL Lifting via Relational Compilation

Title: CoCompiler:通过关系编译的DSL提升

Authors:Naomi Spargo (Galois), Santiago Cuéllar (Galois), Jonathan Daugherty (Galois), Chris Phifer (Galois), David Darais (Galois)
Abstract: Lifting low-level or legacy code into a domain-specific language (DSL) improves our ability to understand it, enables deeper formal reasoning, and facilitates safe modification. We present the CoCompiler, a bidirectional compiler and lifter between C and Lustre, a synchronous dataflow language used for reactive systems. The key insight behind the CoCompiler is that writing a compiler as a relation, rather than as a traditional function, yields a DSL lifter "for free". We implement this idea by rewriting the verified Lustre-to-C compiler V\'elus in the Walrus relational programming language. This solves what we call the vertical lifting problem, translating canonical C into Lustre. To address the complementary horizontal problem-handling real-world C outside the compiler's image-we apply semantic-preserving canonicalization passes in Haskell. The resulting tool, the CoCompiler, supports lifting real reactive C code into Lustre and onward into graphical behavioral models. Our approach is modular, language-agnostic, and fast to implement, demonstrating that relational programming offers a practical foundation for building DSL lifters by repurposing existing compilers.
Abstract: 将低级或遗留代码提升到领域特定语言(DSL)可以提高我们对其的理解能力,使更深入的形式推理成为可能,并促进安全修改。 我们提出了CoCompiler,一个在C语言和Lustre之间的双向编译器和提升器,Lustre是一种用于反应式系统的同步数据流语言。 CoCompiler的关键见解是,将编译器编写为关系而非传统函数,可以“免费”获得DSL提升器。 我们通过在Walrus关系编程语言中重写经过验证的Lustre到C的编译器Vélus来实现这一想法。 这解决了我们称之为垂直提升问题的问题,即将标准C翻译成Lustre。 为了处理互补的水平问题——处理编译器图像之外的真实世界C代码——我们在Haskell中应用保持语义的标准转换过程。 由此产生的工具CoCompiler支持将真实的反应式C代码提升到Lustre,并进一步提升到图形化行为模型。 我们的方法是模块化的、与语言无关的,并且易于快速实现,证明了关系编程通过重新利用现有编译器为构建DSL提升器提供了实用的基础。
Comments: To be published in miniKanren 2025. 14 pages, 10 figures
Subjects: Programming Languages (cs.PL)
Cite as: arXiv:2510.00210 [cs.PL]
  (or arXiv:2510.00210v2 [cs.PL] for this version)
  https://doi.org/10.48550/arXiv.2510.00210
arXiv-issued DOI via DataCite

Submission history

From: Naomi Spargo [view email]
[v1] Tue, 30 Sep 2025 19:37:56 UTC (799 KB)
[v2] Thu, 2 Oct 2025 20:55:08 UTC (799 KB)
Full-text links:

Access Paper:

    View a PDF of the paper titled
  • View Chinese PDF
  • View PDF
  • HTML (experimental)
  • TeX Source
view license
Current browse context:
cs.PL
< prev   |   next >
new | recent | 2025-10
Change to browse by:
cs

References & Citations

  • NASA ADS
  • Google Scholar
  • Semantic Scholar
a export BibTeX citation Loading...

BibTeX formatted citation

×
Data provided by:

Bookmark

BibSonomy logo Reddit logo

Bibliographic and Citation Tools

Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)

Code, Data and Media Associated with this Article

alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)

Demos

Replicate (What is Replicate?)
Hugging Face Spaces (What is Spaces?)
TXYZ.AI (What is TXYZ.AI?)

Recommenders and Search Tools

Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
IArxiv Recommender (What is IArxiv?)
  • Author
  • Venue
  • Institution
  • Topic

arXivLabs: experimental projects with community collaborators

arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.

Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.

Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.

Which authors of this paper are endorsers? | Disable MathJax (What is MathJax?)
  • About
  • Help
  • contact arXivClick here to contact arXiv Contact
  • subscribe to arXiv mailingsClick here to subscribe Subscribe
  • Copyright
  • Privacy Policy
  • Web Accessibility Assistance
  • arXiv Operational Status
    Get status notifications via email or slack

京ICP备2025123034号