Friedrich Gretz, Franz-Josef Grosch, Michael Mendler, Stephan Scheele
{"title":"Synchronized Shared Memory and Procedural Abstraction: Towards a Formal Semantics of Blech","authors":"Friedrich Gretz, Franz-Josef Grosch, Michael Mendler, Stephan Scheele","doi":"10.1109/FDL50818.2020.9232942","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232942","url":null,"abstract":"Traditional imperative synchronous programming languages heavily rely on a strict separation between data memory and communication signals. Signals can be shared between computational units but cannot be overwritten within a synchronous reaction cycle. Memory can be destructively updated but cannot be shared between concurrent threads. This incoherence makes traditional imperative synchronous languages cumbersome for the programmer. The recent definition of sequentially constructive synchronous languages offers an improvement. It removes the separation between data memory and communication signals and unifies both through the notion of clock synchronised shared memory. However, it still depends on global causality analyses which precludes procedural abstraction. This complicates reuse and composition of software components. This paper shows how procedural abstraction can be accommodated inside the sequentially constructive model of computation. We present the Sequentially Constructive Procedural Language (SCPL) and its semantic theory of policy-constructive synchronous processes. SCPL supports procedural abstractions using policy interfaces to ensure that procedure calls are memory safe, wait-free and their scheduling is determinate and causal. At the same time, a policy interface constrains the level of freedom for the implementation and subsequent refactoring of a procedure. As a result, policies enable separate compilation and composition of procedures. We present our extensions abstractly as a formal semantics for SCPL and motivate it concretely in the context of the open-source, embedded, real-time language Blech.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123295471","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Andreas Boysen, Alexander Schulz-Rosengarten, R. V. Hanxleden
{"title":"A Hard Real Time Demonstrator for Dynamic Ticks and Timed SCCharts","authors":"Andreas Boysen, Alexander Schulz-Rosengarten, R. V. Hanxleden","doi":"10.1109/FDL50818.2020.9232943","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232943","url":null,"abstract":"Synchronous programming languages, such as Esterel, Lustre, SCADE or SCCharts, have been developed for designing reactive systems. They abstract from computation times and assume that outputs are synchronous with their inputs. This leads to a deterministic semantics, without race conditions, which makes synchronous languages particularly suitable for safety-critical systems. However, even though synchronous languages have been designed with real-time applications in mind, the handling of physical time is traditionally left to the execution environment. This makes e. g. the expression of arbitrary timeouts difficult and may lead to excessive “busy waiting” computations. The recent proposal of dynamic ticks alleviates this by making physical time a first-class citizen within the synchronous programming model. In this paper, we explore and demonstrate the practical merits of dynamic ticks, including improved timing accuracy and reduced computational requirements, in the context of Timed SCCharts. As demonstration platform, we present a hardware/software platform that involves two stepper motors whose operation must be synchronized at microsecond accuracy to avoid physical damage.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"28 11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125700153","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An Algebra of Deterministic Propositional Acceptance Automata (DPAA)","authors":"Aurélien Lamercerie, B. Caillaud","doi":"10.1109/FDL50818.2020.9232945","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232945","url":null,"abstract":"Deterministic Propositional Acceptance Automata (DPAA) are proposed to capture system requirements expressing mandatory and forbidden discrete-time behavior. The main feature of this formalism is that it can express the expected behavior when the system is in a particular state. DPAA are therefore blending together state properties, expressed as propositional formulas, and simple discrete-time temporal properties, expressed as mandatory and forbidden actions whenever a given state property holds. They extend modal transition systems to a propositonal setting, where models are Kripke structures, rather than labelled transition systems. Composition operators on DPAA are provided, making them an Interface Theory, with a refinement relation, parallel composition, conjunction and quotient operators. An implicit representation using characteristic functions is also proposed to limit the time/space computational complexity.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"515 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132931274","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Beyond real number modeling: Comparison of analog modeling approaches.","authors":"W. Scherr, K. Einwich","doi":"10.1109/FDL50818.2020.9232932","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232932","url":null,"abstract":"In the last few years, several approaches were presented to model analog behavior using digital description languages. It was shown that these easily outperform, for abstract behaviour models, the classic SPICE simulation approaches and can run on digital, event-based simulators. But which is really the most efficient of these? Thus, this work aims to compare the most common “digital” approaches. At first, it focus on generating models based on directed real-type signals only - the so called real number models (RNM). Using a classic filter example, it presents one model in SystemVerilog and one model in SystemC. For both setups the simulation performance is evaluated. Next, to generalize and simplify the modeling process, alternative solutions are implemented. The System Verilog model is refined by a novel proposal, defining linear elements and a resolved, bidirectional signal type called EEnet. In contrast, a model is implemented in SystemC-AMS using standard elements based on electrical linear networks. The execution time of these models is measured as well. All results, generated on the very same hardware and operating system, are collected and presented in a single diagram for comparison. Although SystemC and SystemC-AMS models can outperform their related implementations in SystemVerilog in several aspects, this work points out some potential room for improvement. The results also allow to state some general rules for modeling and simulation.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114232349","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Carna Zivkovic, C. Grimm, J. Kölsch, D. Short, M. Ferstl, Dirk Denger, D. Krems, A. Barisic
{"title":"Bringing Uncertainties into System Simulation: A SystemC AMS Case Study","authors":"Carna Zivkovic, C. Grimm, J. Kölsch, D. Short, M. Ferstl, Dirk Denger, D. Krems, A. Barisic","doi":"10.1109/FDL50818.2020.9233008","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9233008","url":null,"abstract":"The paper reports on the industrial application of SystemC AMS for semi-symbolic analysis. As a case study we analyze the accuracy of a fuel consumption measurement system. As results, two approaches are presented that make formal and symbolic methods more accessible for industrial practice: (1) integration of symbolic simulation into SystemC AMS, which makes the application similar to the established concrete simulation, and (2) uncertainty tables to further simplify the remaining symbolic modeling of inputs and constraints.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124299294","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Efficient Cross-Level Testing for Processor Verification: A RISC- V Case-Study","authors":"V. Herdt, Daniel Große, E. Jentzsch, R. Drechsler","doi":"10.1109/FDL50818.2020.9232941","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232941","url":null,"abstract":"Extensive processor verification at the Register-Transfer Level (RTL) is crucial to avoid bugs. Therefore, simulation-based approaches are prevalent but they require efficient test generation methods to achieve a thorough verification. In this paper we propose an efficient cross-level testing approach for processor verification targeting the RISC- V Instruction Set Architecture (ISA). We generate an endless instruction stream without restrictions on the generated instructions by evolving the instruction stream on-the-fly during simulation. An Instruction Set Simulator (ISS) is leveraged as reference model for the RTL core under test in a tightly coupled cross-level co-simulation setting. This enables a very efficient and comprehensive testing process. As a case-study we present results on the verification of the 32 bit pipelined RISC- V core of MINRES The Good Folk (TGF) Series Our approach has been very effective in finding several serious bugs.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130991700","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Machine Learning in Compilers: Past, Present and Future","authors":"Hugh Leather, Chris Cummins","doi":"10.1109/FDL50818.2020.9232934","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232934","url":null,"abstract":"Writing optimising compilers is difficult. The range of programs that may be presented to the compiler is huge and the systems on which they run are complex, heterogeneous, non-deterministic, and constantly changing. The space of possible optimisations is also vast, making it very hard for compiler writers to design heuristics that take all of these considerations into account. As a result, many compiler optimisations are out of date or poorly tuned. Near the turn of the century it was first shown how compilers could be made to automatically search the optimisation space, producing programs far better optimised than previously possible, and without the need for compiler writers to worry about architecture or program specifics. The searches, though, were slow, so in the years that followed, machine learning was developed to learn heuristics from the results of previous searches so that thereafter the search could be avoided and much of the benefit could be gained in a single shot. In this paper we will give a retrospective of machine learning in compiler optimisation from its earliest inception, through some of the works that set themselves apart, to today's deep learning, finishing with our vision of the field's future.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"46 4","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114135631","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Marten Lohstroh, Christian Menard, Alexander Schulz-Rosengarten, Matthew Weber, J. Castrillón, Edward A. Lee
{"title":"A Language for Deterministic Coordination Across Multiple Timelines","authors":"Marten Lohstroh, Christian Menard, Alexander Schulz-Rosengarten, Matthew Weber, J. Castrillón, Edward A. Lee","doi":"10.1109/FDL50818.2020.9232939","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232939","url":null,"abstract":"We discuss a novel approach for constructing deterministic reactive systems that evolves around a temporal model which incorporates a multiplicity of timelines. This model is central to LINGUA FRANCA (LF), a polyglot coordination language and compiler toolchain we are developing for the definition and composition of concurrent components called Reactors, which are objects that react to and emit discrete events. What sets LF apart from other languages that treat time as a first-class citizen is that it confronts the issue that in any reactive system there are at least two distinct timelines involved; a logical one and a physical one-and possibly multiple of each kind. LF provides a mechanism for relating events across timelines, and guarantees deterministic program behavior under quantifiable assumptions.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"188 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124162622","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Supervisory Control for Dynamic Feature Configuration in Product Lines","authors":"M. Reniers, S. Thuijsman","doi":"10.1109/FDL50818.2020.9232937","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232937","url":null,"abstract":"In this paper a method for engineering supervisory controllers for product lines with dynamic feature configuration is proposed. The variability in valid configurations is described by a feature model. Behavior of system components is achieved using (extended) finite automata and both behavioral and dynamic configuration constraints are expressed by means of requirements as is common in supervisory control theory. Supervisory control synthesis is applied to compute a behavioral model in which the requirements are adhered to. For the challenges that arise in this setting, multiple solutions are discussed. Some of these solutions are exemplified in the ClF tool set using a wiper system model.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"357 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127211795","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"ComPy-Learn: A toolbox for exploring machine learning representations for compilers","authors":"Alexander Brauckmann, Andrés Goens, J. Castrillón","doi":"10.1109/FDL50818.2020.9232946","DOIUrl":"https://doi.org/10.1109/FDL50818.2020.9232946","url":null,"abstract":"Deep Learning methods have not only shown to improve software performance in compiler heuristics, but also e.g. to improve security in vulnerability prediction or to boost developer productivity in software engineering tools. A key to the success of such methods across these use cases is the expressiveness of the representation used to abstract from the program code. Recent work has shown that different such representations have unique advantages in terms of performance. However, determining the best-performing one for a given task is often not obvious and requires empirical evaluation. Therefore, we present ComPy-Learn, a toolbox for conveniently defining, extracting, and exploring representations of program code. With syntax-level language information from the Clang compiler frontend and low-level information from the LLVM compiler backend, the tool supports the construction of linear and graph representations and enables an efficient search for the best-performing representation and model for tasks on program code.","PeriodicalId":322690,"journal":{"name":"2020 Forum for Specification and Design Languages (FDL)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133740538","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}