A Formally Verified Sequentializer for Lustre-Like Concurrent Synchronous Data-Flow Programs

被引:4
|
作者
Shi, Gang [1 ]
Gan, Yuanke [1 ]
Shang, Shu [1 ]
Wang, Shengyuan [1 ]
Dong, Yuan [1 ]
Yew, Pen-Chung [2 ]
机构
[1] Tsinghua Univ, Dept Comp Sci & Technol, Beijing, Peoples R China
[2] Univ Minnesota, Dept Comp Sci & Engn, Minneapolis, MN 55455 USA
关键词
Synchronous Data-flow Languages; Concurrency; Semantics; Determinism; Verification; Sequentialization; Verified Compiler;
D O I
10.1109/ICSE-C.2017.83
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Synchronous data-flow languages (SDFL), such as Lustre [1], is a concurrent language that has been widely used in safety-critical systems. Verified compilers for such languages are crucial in generating trustworthy object code. A good approach is to first translate a concurrent SDFL program to a sequential intermediate representation, such as a Clight [2] code, and then use an existing verified compiler such as CompCert [3] to produce executable object code for the target machine. A verified Sequentializer is crucial in such a verified compiler. It produces a sequential topological order among the program statements that preserve the program dependencies and the dynamic semantics of the original program. In this paper, we show such an approach for a SDFL language such as Lustre. The approach is general enough to be applicable to other SDFLs as well. It first gives a formal specification of the operational semantics, and proves its determinism property for a Lustre-like program. It then formally proves the equivalence of the original concurrent semantics and its target sequential semantics using the well-established proof assistant Coq ([4], [5]), and extracts the certified code for such a sequentializer by Coq.
引用
收藏
页码:109 / 111
页数:3
相关论文
共 50 条
  • [1] A formally verified transformation to unify multiple nested clocks for a Lustre-like language
    Gang Shi
    Yucheng Zhang
    Shu Shang
    Shengyuan Wang
    Yuan Dong
    Pen-Chung Yew
    Science China Information Sciences, 2019, 62
  • [2] A formally verified transformation to unify multiple nested clocks for a Lustre-like language
    Shi, Gang
    Zhang, Yucheng
    Shang, Shu
    Wang, Shengyuan
    Dong, Yuan
    Yew, Pen-Chung
    SCIENCE CHINA-INFORMATION SCIENCES, 2019, 62 (01)
  • [3] A formally verified transformation to unify multiple nested clocks for a Lustre-like language
    Gang SHI
    Yucheng ZHANG
    Shu SHANG
    Shengyuan WANG
    Yuan DONG
    Pen-Chung YEW
    Science China(Information Sciences), 2019, 62 (01) : 208 - 210
  • [4] A Modular Memory Optimization for Synchronous Data-Flow Languages Application to Arrays in a Lustre Compiler
    Gerard, Leonard
    Guatto, Adrien
    Pasteur, Cedric
    Pouzet, Marc
    ACM SIGPLAN NOTICES, 2012, 47 (05) : 51 - 60
  • [5] Removing Causality Cycle of Synchronous Programs with Sequential Data-flow Recursion
    Mo, Tieqiang
    Hao, Peng
    2008 8TH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN, PROCEEDINGS, 2008, : 154 - 159
  • [6] On retiming synchronous data-flow graphs
    O'Neil, TW
    Sha, EHM
    PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS, 2001, : 103 - 108
  • [7] Data-Flow Testing of Declarative Programs
    Fischer, Sebastian
    Kuchen, Herbert
    ICFP'08: PROCEEDINGS OF THE 2008 SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2008, : 201 - 212
  • [8] Data-flow testing of declarative programs
    Fischer, Sebastian
    Kuchen, Herbert
    ACM SIGPLAN NOTICES, 2008, 43 (09) : 201 - 212
  • [9] Data-flow analysis for MPI programs
    Strout, Michelle Mills
    Kreaseck, Barbara
    Hovland, Paul D.
    2006 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, PROCEEDINGS, 2006, : 175 - 184
  • [10] Data-flow synthesis for logic programs
    De Carvalho, Cedric Luiz
    Pereira, Antonio Eduardo Costa
    Julia, Rita Maria Da Silva
    Systems Analysis Modelling Simulation, 1999, 36 (03): : 349 - 366