skip to main content
10.1145/1111037acmconferencesBook PagePublication PagespoplConference Proceedingsconference-collections
POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM2006 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
POPL06: The 33rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2006 Charleston South Carolina USA January 11 - 13, 2006
ISBN:
978-1-59593-027-9
Published:
11 January 2006
Sponsors:
Next Conference
January 19 - 25, 2025
Denver , CO , USA
Bibliometrics
Skip Abstract Section
Abstract

It is my great pleasure to welcome you to POPL'06, the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, one of the flagship conferences in the programming languages calendar.The Call for Papers attracted a total of 167 submissions. Each paper was assigned to three members of the program committee. Committee members were expected to read each paper assigned to them, and write a review, but were also encouraged to seek additional reviews from others. In practice, most papers indeed benefited from these additional reviews. We are hugely grateful to these referees, whose names are listed later in this proceedings.All the reviews were made available to authors a week before the program committee meeting, so that they had the opportunity to make a 500-word response. These responses were read by the committee members responsible, and were taken into account during the committee's discussions. I did not ask committee members to make a written reply to each author response.The committee held a physical meeting in Cambridge, England, on 21st and 22nd September, which every member of the committee attended. We were conscious that POPL's rejection ratio is comparatively high, because it receives so many submissions, and that, as a result, high-quality papers might be rejected. For 2006 we decided to increase the number of accepted papers by shortening the length of each talk from 30 to 25 minutes, and by extending the conference to a full three days (as in 2005). Nevertheless, our over-riding concern was to maintain the standard of accepted papers. Balancing these concerns, we eventually accepted 33 papers, a rather modest increase over the 31 accepted in 2005, but the shorter talks have made it possible to have shorter sessions and longer breaks during the conference. I would welcome your feedback about whether or not you regard these changes as improvements.The POPL'06 program also features three invited talks, given by James McKinna, Martin Odersky, and Tim Sweeney.

Article
Why dependent types matter

Language designers have in recent years proposed a wealth of richer type systems for programming which seek to extend the range of statically enforced guarantees on data and code. Most such proposals have been evolutionary extensions of ML or Haskell, ...

    Article
    The next 700 data description languages

    In the spirit of Landin, we present a calculus of dependent types to serve as the semantic foundation for a family of languages called data description languages. Such languages, which include pads, datascript, and packettypes, are designed to ...

    Article
    A hierarchical model of data locality

    In POPL 2002, Petrank and Rawitz showed a universal result---finding optimal data placement is not only NP-hard but also impossible to approximate within a constant factor if PNP. Here we study a recently published concept called reference affinity, ...

    Article
    Simplifying reductions

    We present optimization techniques for high level equational programs that are generalizations of affine control loops (ACLs). Significant parts of the SpecFP and PerfectClub benchmarks are ACLs. They often contain reductions: associative and ...

    Article
    Formal certification of a compiler back-end or: programming a compiler with a proof assistant

    This paper reports on the development and formal certification (proof of semantic preservation) of a compiler from Cminor (a C-like imperative language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for ...

    Article
    Engineering with logic: HOL specification and symbolic-evaluation testing for TCP implementations

    The TCP/IP protocols and Sockets API underlie much of modern computation, but their semantics have historically been very complex and ill-defined. The real standard is the de facto one of the common implementations, including, for example, the 15,000--...

    Article
    Decidability and proof systems for language-based noninterference relations

    Noninterference is the basic semantical condition used to account for confidentiality and integrity-related properties in programming languages. There appears to be an at least implicit belief in the programming languages community that partial ...

    Article
    On flow-sensitive security types

    This article investigates formal properties of a family of semantically sound flow-sensitive type systems for tracking information flow in simple While programs. The family is indexed by the choice of flow lattice.By choosing the flow lattice to be the ...

    Article
    A logic for information flow in object-oriented programs

    This paper specifies, via a Hoare-like logic, an interprocedural and flow sensitive (but termination insensitive) information flow analysis for object-oriented programs. Pointer aliasing is ubiquitous in such programs, and can potentially leak ...

    Article
    Polymorphic regular tree types and patterns

    We propose a type system based on regular tree grammars, where algebraic datatypes are interpreted in a structural way. Thus, the same constructors can be reused for different types and a flexible subtyping relation can be defined between types, ...

    Article
    Verifying properties of well-founded linked lists

    We describe a novel method for verifying programs that manipulate linked lists, based on two new predicates that characterize reachability of heap cells. These predicates allow reasoning about both acyclic and cyclic lists uniformly with equal ease. The ...

    Article
    Environment analysis via ΔCFA

    We describe a new program-analysis framework, based on CPS and procedure-string abstractions, that can handle critical analyses which the k-CFA framework cannot. We present the main theorems concerning correctness, show an application analysis, and ...

    Article
    Small bisimulations for reasoning about higher-order imperative programs

    We introduce a new notion of bisimulation for showing contextual equivalence of expressions in an untyped lambda-calculus with an explicit store, and in which all expressed values, including higher-order values, are storable. Our notion of bisimulation ...

    Article
    A fixpoint calculus for local and global program flows

    We define a new fixpoint modal logic, the visibly pushdown μ-calculus (VP-μ), as an extension of the modal μ-calculus. The models of this logic are execution trees of structured programs where the procedure calls and returns are made visible. This new ...

    Article
    Adventures in time and space

    This paper investigates what is essentially a call-by-value version of PCF under a complexity-theoretically motivated type system. The programming formalism, ATR1, has its first-order programs characterize the poly-time computable functions, and its ...

    Article
    N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems

    The design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and ...

    Article
    Compiler-directed channel allocation for saving power in on-chip networks

    Increasing complexity in the communication patterns of embedded applications parallelized over multiple processing units makes it difficult to continue using the traditional bus-based on-chip communication techniques. The main contribution of this paper ...

    Article
    Fast and loose reasoning is morally correct

    Functional programmers often reason about programs as if they were written in a total language, expecting the results to carry over to non-total (partial) languages. We justify such reasoning.Two languages are defined, one total and one partial, with ...

    Article
    Modular set-based analysis from contracts

    In PLT Scheme, programs consist of modules with contracts. The latter describe the inputs and outputs of functions and objects via predicates. A run-time system enforces these predicates; if a predicate fails, the enforcer raises an exception that ...

    Article
    Stratified type inference for generalized algebraic data types

    Stratified type inference for generalized algebraic data types.

    Article
    Hybrid type checking

    Traditional static type systems are very effective for verifying basic interface specifications, but are somewhat limited in the kinds specifications they support. Dynamically-checked contracts can enforce more precise specifications, but these are not ...

    Article
    A polymorphic modal type system for lisp-like multi-staged languages

    This article presents a polymorphic modal type system and its principal type inference algorithm that conservatively extend ML by all of Lisp's staging constructs (the quasi-quotation system). The combination is meaningful because ML is a practical ...

    Article
    The next mainstream programming language: a game developer's perspective

    Game developers have long been early adopters of new technologies. This is so because we are largely unburdened by legacy code: With each new hardware generation, we are free to rethink our software assumptions and develop new products using new tools ...

    Article
    A virtual class calculus

    Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are defined in an object's class and may be redefined within subclasses. They resemble inner classes, which are also defined within a class, but virtual ...

    Article
    Interruptible iterators

    This paper introduces interruptible iterators, a language feature that makes expressive iteration abstractions much easier to implement. Iteration abstractions are valuable for software design, as shown by their frequent use in well-designed data ...

    Article
    Specifying C++ concepts

    C++ templates are key to the design of current successful mainstream libraries and systems. They are the basis of programming techniques in diverse areas ranging from conventional general-purpose programming to software for safety-critical embedded ...

    Article
    Frame rules from answer types for code pointers

    We define a type system, which may also be considered as a simple Hoare logic, for a fragment of an assembly language that deals with code pointers and jumps. The typing is aimed at local reasoning in the sense that only the type of a code pointer is ...

    Article
    Certified assembly programming with embedded code pointers

    Embedded code pointers (ECPs) are stored handles of functions and continuations commonly seen in low-level binaries as well as functional or higher-order programs. ECPs are known to be very hard to support well in Hoare-logic style verification systems. ...

    Article
    Associating synchronization constraints with data in an object-oriented language

    Concurrency-related bugs may happen when multiple threads access shared data and interleave in ways that do not correspond to any sequential execution. Their absence is not guaranteed by the traditional notion of "data race" freedom. We present a new ...

    Contributors
    • Cornell University
    • Epic Games, Inc.

    Recommendations

    Acceptance Rates

    Overall Acceptance Rate824of4,130submissions,20%
    YearSubmittedAcceptedRate
    POPL '152275223%
    POPL '142205123%
    POPL '041762916%
    POPL '031262419%
    POPL '021282822%
    POPL '011262419%
    POPL '001513020%
    POPL '991362418%
    POPL '981753218%
    POPL '972253616%
    POPL '961483423%
    POPL '941733923%
    POPL '931993920%
    POPL '922043015%
    POPL '911523120%
    POPL '891913016%
    POPL '881772816%
    POPL '871082927%
    POPL '831702816%
    POPL '821213831%
    POPL '811212420%
    POPL '791462718%
    POPL '781352720%
    POPL '771052524%
    POPL '76902022%
    POPL '751002323%
    POPL '731002222%
    Overall4,13082420%