Denotational Semantics with Nominal Scott Domains

被引:3
|
作者
Loesch, Steffen [1 ]
Pitts, Andrew M. [1 ]
机构
[1] Univ Cambridge, Comp Lab, Cambridge CB2 1TN, England
关键词
Languages; Theory; Metaprogramming; denotational semantics; domain theory; full abstraction; nominal sets; symmetry; FULL ABSTRACTION; STRUCTURAL RECURSION; NAMES;
D O I
10.1145/2629529
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
When defining computations over syntax as data, one often runs into tedious issues concerning alpha-equivalence and semantically correct manipulations of binding constructs. Here we study a semantic framework in which these issues can be dealt with automatically by the programming language. We take the user-friendly "nominal" approach in which bound objects are named. In particular, we develop a version of Scott domains within nominal sets and define two programming languages whose denotational semantics are based on those domains. The first language, lambda nu-PCF, is an extension of Plotkin's PCF with names that can be swapped, tested for equality and locally scoped; although simple, it already exposes most of the semantic subtleties of our approach. The second language, PNA, extends the first with name abstraction and concretion so that it can be used for metaprogramming over syntax with binders. For both languages, we prove a full abstraction result for nominal Scott domains analogous to Plotkin's classic result about PCF and conventional Scott domains: two program phrases have the same observable operational behaviour in all contexts if and only if they denote equal elements of the nominal Scott domain model. This is the first full abstraction result we know of for languages combining higher-order functions with some form of locally scoped names which uses a domain theory based on ordinary extensional functions, rather than using the more intensional approach of game semantics. To obtain full abstraction, we need to add two functionals, one for existential quantification over names and one for "definite description" over names. Only adding one of them is not enough, as we give counter-examples to full abstraction in both cases.
引用
收藏
页数:46
相关论文
共 50 条
  • [41] Disentangling Denotational Semantics Definitions
    Tirelo, Fabio
    Bigonha, Roberto S.
    Saraiva, Joao
    [J]. JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2008, 14 (21) : 3592 - 3607
  • [42] ON DENOTATIONAL VERSUS PREDICATIVE SEMANTICS
    BROY, M
    LENGAUER, C
    [J]. JOURNAL OF COMPUTER AND SYSTEM SCIENCES, 1991, 42 (01) : 1 - 29
  • [43] DENOTATIONAL SEMANTICS OF NETS WITH NONDETERMINISM
    KOK, JN
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1986, 213 : 237 - 249
  • [44] Denotational semantics for JS']JSD
    Yeung, WL
    [J]. ASIA PACIFIC SOFTWARE ENGINEERING CONFERENCE AND INTERNATIONAL COMPUTER SCIENCE CONFERENCE, PROCEEDINGS, 1997, : 72 - 80
  • [45] Towards a denotational semantics for TimeML
    Katz, Graham
    [J]. ANNOTATING, EXTRACTING AND REASONING ABOUT TIME AND EVENTS, 2007, 4795 : 88 - 106
  • [46] Denotational semantics for thread algebra
    Vu, Thuy Duong
    [J]. JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2008, 74 (02): : 94 - 111
  • [47] DENOTATIONAL SEMANTICS OF PROGRAMMING LANGUAGES
    TENNENT, RD
    [J]. COMMUNICATIONS OF THE ACM, 1976, 19 (08) : 437 - 453
  • [48] A denotational semantics of defeasible logic
    Maher, MJ
    [J]. COMPUTATIONAL LOGIC - CL 2000, 2000, 1861 : 209 - 222
  • [49] A denotational semantics for equilibrium logic
    Aguado, Felicidad
    Cabalar, Pedro
    Pearce, David
    Perez, Gilberto
    Vidal, Concepcion
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2015, 15 : 620 - 634
  • [50] A Denotational Semantics for Dynamic Architectures
    Marmsoler, Diego
    [J]. 2019 13TH INTERNATIONAL SYMPOSIUM ON THEORETICAL ASPECTS OF SOFTWARE ENGINEERING (TASE 2019), 2019, : 136 - 143