Irrespective of the many different implementation paradigms, it is important that client level specifications allow to balance freedom from implementation bias and properly restricting the possible implementations to the ones that the client desires. Algebraic specification of the black-box behavior of a system provides just this, if a careful choice of what comprises desired output is made. We propose a new notion, canonicity, to achieve this. We take as client specification an algebraic one, in terms of operators from the client’s problem domain. Such a specification generally has multiple algebras as semantics. Rather than designating a specific one, e.g., the initial one, as implementation, we stay at the level of abstraction of the client specification: input and output are in terms of combinations of operators from the algebra. We use that each algebra determines which combinations of specified operators are equal to others as a first criterion that input/output combinations have to satisfy to qualify as an implementation. Then we argue that for a client only certain combinations of, in a sense, basic operators are acceptable to occur as output. We then investigate a notion of canonicity to make this precise. We thus provide a novel syntax and semantics for client specifications. The semantics matches the client’s view of the implementation as a black box. The paper is structured as follows. We concentrate on looking at algebraic specifications from the perspective of the client and the specifier. In Sect. 2.1, we give a brief overview of firstorder logic, on which algebraic specifications are based. In Sect. 2.2, we discuss and formalize algebraic specifications. We introduce a syntax and semantics of algebraic specifications that regards the implementation as a black box, and that is independent of the implementation language. After this, we briefly consider the step towards OO implementations, in Sect. 3. Sect. 4 contains some thoughts about the consequences of the approach and about future work. We first discuss the meta-level notation that is used.
{"title":"Pandora's Box","authors":"R. Middelkoop, C. Huizing, R. Kuiper, E. Luit","doi":"10.29007/l7kx","DOIUrl":"https://doi.org/10.29007/l7kx","url":null,"abstract":"Irrespective of the many different implementation paradigms, it is important that client level specifications allow to balance freedom from implementation bias and properly restricting the possible implementations to the ones that the client desires. Algebraic specification of the black-box behavior of a system provides just this, if a careful choice of what comprises desired output is made. We propose a new notion, canonicity, to achieve this. We take as client specification an algebraic one, in terms of operators from the client’s problem domain. Such a specification generally has multiple algebras as semantics. Rather than designating a specific one, e.g., the initial one, as implementation, we stay at the level of abstraction of the client specification: input and output are in terms of combinations of operators from the algebra. We use that each algebra determines which combinations of specified operators are equal to others as a first criterion that input/output combinations have to satisfy to qualify as an implementation. Then we argue that for a client only certain combinations of, in a sense, basic operators are acceptable to occur as output. We then investigate a notion of canonicity to make this precise. We thus provide a novel syntax and semantics for client specifications. The semantics matches the client’s view of the implementation as a black box. The paper is structured as follows. We concentrate on looking at algebraic specifications from the perspective of the client and the specifier. In Sect. 2.1, we give a brief overview of firstorder logic, on which algebraic specifications are based. In Sect. 2.2, we discuss and formalize algebraic specifications. We introduce a syntax and semantics of algebraic specifications that regards the implementation as a black box, and that is independent of the implementation language. After this, we briefly consider the step towards OO implementations, in Sect. 3. Sect. 4 contains some thoughts about the consequences of the approach and about future work. We first discuss the meta-level notation that is used.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"63 4","pages":"258-270"},"PeriodicalIF":0.0,"publicationDate":"2024-04-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140675673","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}
Runtime validation techniques have been proposed as artifacts to detect and/or correct unforeseen behaviours of computer systems. Their common features is to give only partial validation results, based on a restricted set of system executions produced in the real execution environment. A key issue is thus to better understand which kind of properties can (or cannot) be validated using such techniques. We focus on three techniques known as runtime verification, property-oriented testing, and runtime enforcement. We present these approaches at an abstract level and in a unified framework, and we discuss their respective ability to deal with properties on infinite execution sequences, that are commonly encountered in many application domains.
{"title":"On the Expressiveness of some Runtime Validation Techniques","authors":"Yliès Falcone, Jean-Claude Fernandez, L. Mounier","doi":"10.29007/j7qv","DOIUrl":"https://doi.org/10.29007/j7qv","url":null,"abstract":"Runtime validation techniques have been proposed as artifacts to detect and/or correct unforeseen behaviours of computer systems. Their common features is to give only partial validation results, based on a restricted set of system executions produced in the real execution environment. A key issue is thus to better understand which kind of properties can (or cannot) be validated using such techniques. We focus on three techniques known as runtime verification, property-oriented testing, and runtime enforcement. We present these approaches at an abstract level and in a unified framework, and we discuss their respective ability to deal with properties on infinite execution sequences, that are commonly encountered in many application domains.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"310 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123249297","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}
Philip J. Armstrong, G. Lowe, J. Ouaknine, B. Roscoe
Though Timed CSP was developed 25 years ago and the CSP-based refinement checker FDR [25] was first released 20 years ago, there has never been a version of this tool for Timed CSP. In this paper we report on the creation of such a version, based on the digitisation results of Ouaknine [16, 17] and the associated development of discrete-time versions of Timed CSP with associated models [19, 14, 11, 27]. Dedication: I have happy memories of chasing time in the 1980s with Howard Barringer and others. Now it seems to be catching us up!
{"title":"Model checking Timed CSP","authors":"Philip J. Armstrong, G. Lowe, J. Ouaknine, B. Roscoe","doi":"10.29007/6fqk","DOIUrl":"https://doi.org/10.29007/6fqk","url":null,"abstract":"Though Timed CSP was developed 25 years ago and the CSP-based refinement checker FDR [25] was first released 20 years ago, there has never been a version of this tool for Timed CSP. In this paper we report on the creation of such a version, based on the digitisation results of Ouaknine [16, 17] and the associated development of discrete-time versions of Timed CSP with associated models [19, 14, 11, 27]. Dedication: I have happy memories of chasing time in the 1980s with Howard Barringer and others. Now it seems to be catching us up!","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122891787","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}
What are variables, and what is universal quantification over a variable? Nominal sets are a notion of ‘sets with names’, and using equational axioms in nominal algebra these names can be given substitution and quantification actions. So we can axiomatise first-order logic as a nominal logical theory. We can then seek a nominal sets representation theorem in which predicates are interpreted as sets; logical conjunction is interpreted as sets intersection; negation as complement. Now what about substitution; what is it for substitution to act on a predicate-interpreted-as-a-set, in which case universal quantification becomes an infinite sets intersection? Given answers to these questions, we can seek notions of topology. What is the general notion of topological space of which our sets representation of predicates makes predicates into ‘open sets’; and what specific class of topological spaces corresponds to the image of nominal algebras for first-order logic? The classic Stone duality answers these questions for Boolean algebras, representing them as Stone spaces. Nominal algebra lets us extend Boolean algebras to ‘FOL-algebras’, and nominal sets let us correspondingly extend Stone spaces to ‘∀-Stone spaces’. These extensions reveal a wealth of structure, and we obtain an attractive and self-contained account of logic and topology in which variables directly populate the denotation, and open predicates are interpreted as sets rather than functions from valuations to sets.
{"title":"Stone duality for first-order logic: a nominal approach to logic and topology","authors":"M. Gabbay","doi":"10.29007/tp3z","DOIUrl":"https://doi.org/10.29007/tp3z","url":null,"abstract":"What are variables, and what is universal quantification over a variable? Nominal sets are a notion of ‘sets with names’, and using equational axioms in nominal algebra these names can be given substitution and quantification actions. So we can axiomatise first-order logic as a nominal logical theory. We can then seek a nominal sets representation theorem in which predicates are interpreted as sets; logical conjunction is interpreted as sets intersection; negation as complement. Now what about substitution; what is it for substitution to act on a predicate-interpreted-as-a-set, in which case universal quantification becomes an infinite sets intersection? Given answers to these questions, we can seek notions of topology. What is the general notion of topological space of which our sets representation of predicates makes predicates into ‘open sets’; and what specific class of topological spaces corresponds to the image of nominal algebras for first-order logic? The classic Stone duality answers these questions for Boolean algebras, representing them as Stone spaces. Nominal algebra lets us extend Boolean algebras to ‘FOL-algebras’, and nominal sets let us correspondingly extend Stone spaces to ‘∀-Stone spaces’. These extensions reveal a wealth of structure, and we obtain an attractive and self-contained account of logic and topology in which variables directly populate the denotation, and open predicates are interpreted as sets rather than functions from valuations to sets.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121246376","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}
This article is an introduction to Professor Howard Barringer, in honor of his 60th birthday on December 20, 2011, which was celebrated by the HOWARD-60 workshop (Higher-Order Workshop on Automated Runtime verification and Debugging), held on the same day at University of Manchester. 1 A 60 Second Overview Howard Barringer was born on December 20, 1951, is married to Margaret, and has three children. This forms the concrete part of Howard’s life. Beyond this, Howard has had an abstract life centred around mathematics, physics, and computer science. At secondary school (1964-1969) Howard moved into the science stream and finished with ’A’ levels in mathematics (pure and applied) and physics. He went on to University of Manchester where he first received a B.Sc in Physics (1972), then an M.Sc in Computer Science (1973), and finally a Ph.D in Computer Science (1978). His adult academic life has been centred at University of Manchester. He became a Research Associate in Computer Science at Manchester in 1975, a Lecturer in 1977, a Senior Lecturer in 1986 and was then rapidly promoted to Professor in Computer Science in 1987. For the majority of his career, his research and teaching has been focussed around the development and application of logics, in particular temporal and modal logics, in the specification, design, and analysis of software and hardware systems. Howard insisted on the importance of past time logic in temporal logic, and hence got named “the man who invented the past”. He has taught classes in the theory of computation, compiling techniques, specification and verification, concurrency, modal and temporal logic, algorithms, and programming in Java. Howard also spent a significant portion of his career in senior and highly influential administrative positions at University of Manchester. He has been invited to present over 100 seminars and research lectures in Austria, Belgium, Canada, China (Beijing, Shanghai, Wuhan), Denmark, England, France, Germany, Greece, Israel, Italy, the Netherlands, Norway, Scotland, South Africa, Spain, Sweden, USA (Arizona, California, New York, Pennsylvania, Texas) and Wales. He was visiting professor at Kings College (2001 and 2006), and visited Silicon Valley numerous times including NASA Ames Research Center, Moffett Field, CA in 2002 and 2003, and the Computer Science Laboratory at SRI International, Menlo Park, CA in 2002. It has been observed that, temporally speaking, a series of Mars Rovers were launched after Howard visited NASA. Howard was one of the ∗The writing of this article was carried out at Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration. 1This title was assigned to Howard in connection with his 60th birthday by Andrei Voronkov. A. Voronkov, M. Korovina (eds.), HOWARD-60, pp. 1–12 1 Howard Barringer Klaus Havelund founding editors of the Journal of Logic and Computation in 1989 and is now Co-Chief Edito
1981年至1982年,他两次前往美国12所大学和工业研究实验室,为期三周,与研究人员讨论他们的验证方法。所进行的研究作为一卷发表在Springer-Verlag计算机科学系列讲座笔记(Barringer, 1985)[1]。该研究提出了基于使用时间逻辑(包括对过去的推理)以模块化和组合方式指定系统的想法,这些想法在(Barringer和Kuiper, 1983)[44]中提出。作为这项工作的结果,Howard在Amir Pnueli教授的邀请下,在以色列的Weizmann科学研究所呆了几个星期,以便合作开发并行语言的组合时间证明系统(时间证明系统的组合性的目标已经坚持了大约八年)。那次访问标志着与Pnueli强有力合作的开始,导致了在并行编程语言中为共享变量和基于消息的通信机制构建组合时间证明系统的通用技术(Barringer, Kuiper and Pnueli, 1984) [47], (Barringer, Kuiper and Pnueli, 1985)[49]以及完全抽象的并发模型(Barringer, Kuiper and Pnueli, 1986)[50]。其他研究人员也加入了这项工作,并访问了曼彻斯特,其中包括威廉-保罗·德·罗弗教授和周朝辰教授。1986年应周超辰教授邀请,在北京科学院、武汉大学和上海复旦大学作了关于时间逻辑及其在并发中的应用的系列研究讲座(共32小时,历时4周)。例如,进一步的工作导致了时间不动点演算(Banieqbal和Barringer, 1986)[104],以及可能是第一个实际实现的决策程序,用于检查线性时间逻辑的有效性,涵盖无限过去,无限现在和无限
{"title":"Howard Barringer: the Man who Invented the Past","authors":"K. Havelund","doi":"10.29007/65lt","DOIUrl":"https://doi.org/10.29007/65lt","url":null,"abstract":"This article is an introduction to Professor Howard Barringer, in honor of his 60th birthday on December 20, 2011, which was celebrated by the HOWARD-60 workshop (Higher-Order Workshop on Automated Runtime verification and Debugging), held on the same day at University of Manchester. 1 A 60 Second Overview Howard Barringer was born on December 20, 1951, is married to Margaret, and has three children. This forms the concrete part of Howard’s life. Beyond this, Howard has had an abstract life centred around mathematics, physics, and computer science. At secondary school (1964-1969) Howard moved into the science stream and finished with ’A’ levels in mathematics (pure and applied) and physics. He went on to University of Manchester where he first received a B.Sc in Physics (1972), then an M.Sc in Computer Science (1973), and finally a Ph.D in Computer Science (1978). His adult academic life has been centred at University of Manchester. He became a Research Associate in Computer Science at Manchester in 1975, a Lecturer in 1977, a Senior Lecturer in 1986 and was then rapidly promoted to Professor in Computer Science in 1987. For the majority of his career, his research and teaching has been focussed around the development and application of logics, in particular temporal and modal logics, in the specification, design, and analysis of software and hardware systems. Howard insisted on the importance of past time logic in temporal logic, and hence got named “the man who invented the past”. He has taught classes in the theory of computation, compiling techniques, specification and verification, concurrency, modal and temporal logic, algorithms, and programming in Java. Howard also spent a significant portion of his career in senior and highly influential administrative positions at University of Manchester. He has been invited to present over 100 seminars and research lectures in Austria, Belgium, Canada, China (Beijing, Shanghai, Wuhan), Denmark, England, France, Germany, Greece, Israel, Italy, the Netherlands, Norway, Scotland, South Africa, Spain, Sweden, USA (Arizona, California, New York, Pennsylvania, Texas) and Wales. He was visiting professor at Kings College (2001 and 2006), and visited Silicon Valley numerous times including NASA Ames Research Center, Moffett Field, CA in 2002 and 2003, and the Computer Science Laboratory at SRI International, Menlo Park, CA in 2002. It has been observed that, temporally speaking, a series of Mars Rovers were launched after Howard visited NASA. Howard was one of the ∗The writing of this article was carried out at Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration. 1This title was assigned to Howard in connection with his 60th birthday by Andrei Voronkov. A. Voronkov, M. Korovina (eds.), HOWARD-60, pp. 1–12 1 Howard Barringer Klaus Havelund founding editors of the Journal of Logic and Computation in 1989 and is now Co-Chief Edito","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130515814","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}
Howard Barringer was a pioneer in the study of temporal logics with fixpoints [1]. Their addition adds considerable expressive power. One general issue is how to define proof systems for such logics. Here we examine proof systems for modal logic with fixpoints. We present a tableau proof system for checking validity of formulas which uses names to keep track of unfoldings of fixpoint variables as devised in [8].
Howard Barringer是研究不动点时间逻辑的先驱[1]。它们的加入增加了相当大的表现力。一个普遍的问题是如何为这样的逻辑定义证明系统。这里我们研究具有不动点的模态逻辑的证明系统。我们提出了一个表格证明系统,用于检查公式的有效性,该系统使用名称来跟踪[8]中设计的不动点变量的展开。
{"title":"A Tableau Proof System with Names for Modal Mu-calculus","authors":"C. Stirling","doi":"10.29007/lwqm","DOIUrl":"https://doi.org/10.29007/lwqm","url":null,"abstract":"Howard Barringer was a pioneer in the study of temporal logics with fixpoints [1]. Their addition adds considerable expressive power. One general issue is how to define proof systems for such logics. Here we examine proof systems for modal logic with fixpoints. We present a tableau proof system for checking validity of formulas which uses names to keep track of unfoldings of fixpoint variables as devised in [8].","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"49 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123559634","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}
This paper sets out the on-going research in a project which is investigating how to learn from one interactive proof so that other similar proofs can be completed automatically.
{"title":"Can a system learn from interactive proofs?","authors":"Leo Freitas, Cliff B. Jones, A. Velykis","doi":"10.29007/s478","DOIUrl":"https://doi.org/10.29007/s478","url":null,"abstract":"This paper sets out the on-going research in a project which is investigating how to learn from one interactive proof so that other similar proofs can be completed automatically.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"2013 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114712295","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}
Synthesis of control for distributed systems is considered to be an undecidable problem, under the assumption that control is performed by supervisors synchronizing with the original processes and selectively blocking or supporting the enabled transitions. We described a decidable distributed control problem, where additional communications are allowed between supervisors. In this way, we synthesize control for invariants, reachability, repeated reachability and parity conditions. Special attention is given to reducing the number of added communications.
{"title":"Distributed Control Synthesis","authors":"D. Peled, S. Schewe","doi":"10.29007/4wwx","DOIUrl":"https://doi.org/10.29007/4wwx","url":null,"abstract":"Synthesis of control for distributed systems is considered to be an undecidable problem, under the assumption that control is performed by supervisors synchronizing with the original processes and selectively blocking or supporting the enabled transitions. We described a decidable distributed control problem, where additional communications are allowed between supervisors. In this way, we synthesize control for invariants, reachability, repeated reachability and parity conditions. Special attention is given to reducing the number of added communications.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-02-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133627630","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}
Quantitative verification techniques offer an effective means of computing performance and reliability properties for a wide range of systems. In many cases, it is necessary to perform repeated analyses of a system, for example to identify trends in results, determine optimal system parameters or when performing online analysis for adaptive systems. We argue the need for incremental quantitative verification techniques which are able to re-use results from previous verification runs in order to improve efficiency. We report on recently proposed techniques for incremental quantitative verification of Markov decision processes, based on a decomposition of the model into its strongly connected components. We give an overview of the method, describe a number of useful optimisations and show experimental results that illustrate significant gains in run-time performance using the incremental approach.
{"title":"On Incremental Quantitative Verification for Probabilistic Systems","authors":"M. Kwiatkowska, D. Parker, Hongyang Qu, M. Ujma","doi":"10.29007/bmcf","DOIUrl":"https://doi.org/10.29007/bmcf","url":null,"abstract":"Quantitative verification techniques offer an effective means of computing performance and reliability properties for a wide range of systems. In many cases, it is necessary to perform repeated analyses of a system, for example to identify trends in results, determine optimal system parameters or when performing online analysis for adaptive systems. We argue the need for incremental quantitative verification techniques which are able to re-use results from previous verification runs in order to improve efficiency. We report on recently proposed techniques for incremental quantitative verification of Markov decision processes, based on a decomposition of the model into its strongly connected components. We give an overview of the method, describe a number of useful optimisations and show experimental results that illustrate significant gains in run-time performance using the incremental approach.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126631670","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}
We argue that a modern programming language such as Scala offers a level of succinctness, which makes it suitable for program and systems specification as well as for high-level programming. We illustrate this by comparing the language with the Vdm++ specification language. The comparison also identifies areas where Scala perhaps could be improved, inspired by Vdm++. We furthermore illustrate Scala's potential as a specification language by augmenting it with a combination of parameterized state machines and temporal logic, defined as a library, thereby forming an expressive but simple runtime verification framework.
{"title":"Closing the Gap Between Specification and Programming: VDM++ and Scala","authors":"K. Havelund","doi":"10.29007/2w2f","DOIUrl":"https://doi.org/10.29007/2w2f","url":null,"abstract":"We argue that a modern programming language such as Scala offers a level of succinctness, which makes it suitable for program and systems specification as well as for high-level programming. We illustrate this by comparing the language with the Vdm++ specification language. The comparison also identifies areas where Scala perhaps could be improved, inspired by Vdm++. We furthermore illustrate Scala's potential as a specification language by augmenting it with a combination of parameterized state machines and temporal logic, defined as a library, thereby forming an expressive but simple runtime verification framework.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122297725","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}