Reasoning about Function Objects

被引:0
|
作者
Nordio, Martin [1 ]
Calcagno, Cristiano [2 ,3 ]
Meyer, Bertrand [1 ]
Mueller, Peter [1 ]
Tschannen, Julian [1 ]
机构
[1] ETH, Zurich, Switzerland
[2] Monoidics Ltd, London, England
[3] Imperial Coll, London, England
来源
OBJECTS, MODELS, COMPONENTS, PATTERNS | 2010年 / 6141卷
基金
英国工程与自然科学研究理事会;
关键词
C-NUMBER; LOGIC; VERIFICATION; INVARIANTS; PROGRAMS; EIFFEL;
D O I
暂无
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Modern object-oriented languages support higher-order implementations through function objects such as delegates in C#, agents in Eiffel, or closures in Scala. Function objects bring a new level of abstraction to the object-oriented programming model, and require a comparable extension to specification and verification techniques. We introduce a verification :methodology that extends function objects with auxiliary side-effect free (pure) methods to model logical artifacts: preconditions, postconditions and modifies clauses. These pure methods can be used to specify client code abstractly, that is, independently from specific instantiations of the function objects. To demonstrate the feasibility of our approach, we have implemented an automatic prover, which verifies several non-trivial examples.
引用
收藏
页码:79 / +
页数:3
相关论文
共 50 条
  • [1] Compositional reasoning about active objects with shared futures
    Din, Crystal Chang
    Owe, Olaf
    FORMAL ASPECTS OF COMPUTING, 2015, 27 (03) : 551 - 572
  • [2] Reasoning about memory layouts
    Gast, Holger
    FORMAL METHODS IN SYSTEM DESIGN, 2010, 37 (2-3) : 141 - 170
  • [3] Reasoning about Durations
    Kelly, Laura Jane
    Khemlani, Sangeet
    Johnson-Laird, P. N.
    JOURNAL OF COGNITIVE NEUROSCIENCE, 2020, 32 (11) : 2103 - 2116
  • [4] Reasoning About Uncertain Conditionals
    Pfeifer, Niki
    STUDIA LOGICA, 2014, 102 (04) : 849 - 866
  • [5] Formally Reasoning About Quality
    Almagor, Shaull
    Boker, Udi
    Kupferman, Orna
    JOURNAL OF THE ACM, 2016, 63 (03)
  • [6] Reasoning about Nondeterminism in Programs
    Cook, Byron
    Koskinen, Eric
    ACM SIGPLAN NOTICES, 2013, 48 (06) : 219 - 229
  • [7] Reasoning about proof and knowledge
    Lewitzka, Steffen
    ANNALS OF PURE AND APPLIED LOGIC, 2019, 170 (02) : 218 - 250
  • [8] Reasoning about Nonblocking Concurrency
    Groves, Lindsay
    JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2009, 15 (01) : 72 - 111
  • [9] Reasoning About Connectors in Coq
    Zhang, Xiyue
    Hong, Weijiang
    Li, Yi
    Sun, Meng
    FORMAL ASPECTS OF COMPONENT SOFTWARE (FACS 2016), 2017, 10231 : 172 - 190
  • [10] Reasoning About Partial Contracts
    Azzopardi, Shaun
    Gatt, Albert
    Pace, Gordon
    LEGAL KNOWLEDGE AND INFORMATION SYSTEMS, 2016, 294 : 23 - 32