在2024-2025学期的巴黎高师MPRI硕士课程中,包含了Marc Pouzet 与 Timothy Bourke 讲授的同步反应式系统。该课程的主题覆盖了同步语言的语义与逻辑基础、同步语言的编译技术、面向同步语言的模型检测形式化验证等。课程中的各节课最后也补充了与课程主题相关的参考材料,内容分别如下。
第一节-使用Lustre对嵌入式系统编程
-
Darek Biernacki, Jean-Louis Colaco, Grégoire Hamon, and Marc Pouzet. Clock-directed Modular Code Generation of Synchronous Data-flow Languages. In ACM International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), Tucson, Arizona, June 2008.
-
Caspi, P., D. Pilaud, N. Halbwachs, and J. A. Plaice (Jan. 1987). “LUSTRE: A declarative language for programming synchronous systems”. In: Proc. 14th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages (POPL 1987). Munich, Germany: ACM Press, pp. 178–188.
-
Caspi, P. and M. Pouzet (May 1995). “A Functional Extension to Lustre”. In: International Symposium on Languages for Intentional Programming. Ed. by M. A. Orgun and E. A. Ashcroft. Sydney, Australia: World Scientific.
-
Colaço, J.-L., B. Pagano, and M. Pouzet (Sept. 2005). “A Conservative Extension of Synchronous Data-flow with State Machines”. In: Proc. 5th ACM Int. Conf. on Embedded Software (EMSOFT 2005). Ed. by W. Wolf. Jersey City, USA: ACM Press, pp. 173–182.
-
(Sept. 2017). “Scade 6: A Formal Language for Embedded Critical Software Development”. In: Proc. 11th Int. Symp. Theoretical Aspects of Software Engineering (TASE 2017). Nice, France: IEEE Computer Society, pp. 4–15.
-
Colaço, J.-L. and M. Pouzet (Oct. 2003). “Clocks as First Class Abstract Types”. In: Proc. 3rd Int. Workshop on Embedded Software (EMSOFT 2003). Ed. by R. Alur and I. Lee. Vol. 2855. LNCS. Philadelphia, PA, USA: Springer, pp. 134–155.
-
(Aug. 2004). “Type-based initialization analysis of a synchronous dataflow language”. In: Int. J. Software Tools for Technology Transfer 6.3, pp. 245–255.
-
Dvorak (ed.), D. L. (Mar. 2009). NASA Study on Flight Software Complexity. Final Report. NASA Office of Chief Engineer.
-
Halbwachs, N., F. Lagnier, and P. Raymond (June 1993). “Synchronous observers and the verification of reactive systems”. In: Proc. 3rd Int. Conf. on Algebraic Methodology and Software Technology (AMAST’93). Ed. by M. Nivat, C. Rattray, T. Rus, and G. Scollo. Twente: Workshops in Computing, Springer Verlag.
-
Halbwachs, N., P. Caspi, P. Raymond, and D. Pilaud (Sept. 1991). “The synchronous dataflow programming language LUSTRE”. In: Proc. IEEE 79.9, pp. 1305–1320.
-
Halbwachs, N., J.-C. Fernandez, and A. Bouajjani (Apr. 1993). “An executable temporal logic to express safety properties and its connection with the language Lustre”. In: Proc. 6th Int. Symp. Lucid and Intensional Programming (ISLIP’93). Quebec, Canada.
-
Halbwachs, N., F. Lagnier, and C. Ratel (Sept. 1992). “Programming and verifying real-time systems by means of the synchronous data-flow language LUSTRE”. In: IEEE Trans. Software Engineering 18.9, pp. 785–793.
-
Huet, G. (Sept. 1991). The Gilbreath trick: a case study in axiomatisation and proof development in the Coq proof assistant. Rapport de Recherche RR-1511. Rocquencourt, France: Inria.
-
Jahier, E., P. Raymond, and N. Halbwachs (May 2019). The Lustre V6 Reference Manual. Verimag. Grenoble.
-
Kahn, G. (Aug. 1974). “The Semantics of a Simple Language for Parallel Programming”. In: Proc. 6th Int. Federation for Information Processing (IFIP) Congress 1974. Ed. by J. L. Rosenfeld. Stockholm, Sweden: North-Holland, pp. 471–475.
-
Le Guernic, P., T. Gautier, M. Le Borgne, and C. Le Maire (Sept. 1991). “Programming Real-Time Applications with Signal”. In: Proc. IEEE 79.9, pp. 1321–1336.
-
Lublinerman, R., C. Szegedy, and S. Tripakis (Jan. 2009). “Modular Code Generation from Synchronous Block Diagrams: Modularity vs. Code Size”. In: Proc. 36th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages (POPL 2009). Savannah, GA, USA: ACM Press, pp. 78–89.
-
Plaice, J. A. (1988). “Sémantique et compilation de LUSTRE, un langage
déclaratif synchrone”. PhD thesis. Grenoble INP. -
Pouzet, M. (Apr. 2006). Lucid Synchrone, v. 3. Tutorial and reference manual. Université Paris-Sud.
-
Pouzet, M. and P. Raymond (Oct. 2009). “Modular Static Scheduling of Synchronous Data-flow Networks: An efficient symbolic representation”. In: Proc. 9th ACM Int. Conf. on Embedded Software (EMSOFT 2009). Grenoble, France: ACM Press, pp. 215–224.
-
Ptolemaeus, C., ed. (2014). System Design, Modeling, and Simulation using Ptolemy II. Ptolemy.org.
-
Raymond, P. (1991). “Compilation efficace d’un langage déclaratif synchrone: le générateur de code Lustre-V3”. PhD thesis. Grenoble INP.
-
— (July 1996). “Recognizing regular expressions by means of dataflow networks”. In: Proc. 23rd Int. Colloq. on Automata, Languages and Programming. Ed. by F. Meyer auf der Heide and B. Monien. LNCS 1099. Paderborn, Germany: Springer, pp. 336–347.
-
Raymond, P., Y. Roux, and E. Jahier (2008). “Lutin: A Language for Specifying and Executing Reactive Scenarios”. In: EURASIP Journal of Embedded Systems.
-
The Economist (June 2012). “Open-source medical devices: When code can kill or cure”. In: The Economist: Technology Quarterly.
-
Wadge, W. W. and E. A. Ashcroft (1985). LUCID, the dataflow programming language. Academic Press Professional, Inc.
第二节-Lustre:增加数组、重置、状态机
-
André, C. (Oct. 1995). SyncCharts: A Visual Representation of Reactive Behaviors. Technical Report. RR 95-52. Sophia-Antipolis, France: I3S.
-
Berry, G. (May 1989). Programming a Digital Watch in Esterel v3. Rapport de recherche 1032. Sophia Antipolis: Inria.
-
— (July 2000). The Esterel v5 Language Primer. 5.91. Ecole des Mines and INRIA.
-
Biernacki, D., J.-L. Colaço, G. Hamon, and M. Pouzet (June 2008). “Clock-directed modular code generation for synchronous data-flow languages”. In: Proc. 9th ACM SIGPLAN Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES 2008). Tucson, AZ, USA: ACM Press, pp. 121–130.
-
Bourke, T. and M. Pouzet (Apr. 2013). “Zélus: A Synchronous Langu