Papers by Yukiyoshi Kameyama

This position paper argues for type-level metaprogramming, wherein types and type declarations ar... more This position paper argues for type-level metaprogramming, wherein types and type declarations are generated in addition to program terms. Term-level metaprogramming, which allows manipulating expressions only, has been extensively studied in the form of staging, which ensures static type safety with a clean semantics with hygiene (lexical scoping). However, the corresponding development is absent for type manipulation. We propose extensions to staging to cover ML-style module generation and show the possibilities they open up for type specialization and overhead-free parametrization of data types equipped with operations. We outline the challenges our proposed extensions pose for semantics and type safety, hence offering a starting point for a long-term program in the next stage of staging research. The key observation is that type declarations do not obey scoping rules as variables do, and that in metaprogramming, types are naturally prone to escaping the lexical environment in wh...
Equational axiomatization of call-by-name delimited control
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming - PPDP '10, 2010
Polymorphic Multi-stage Language with Control Effects
Lecture Notes in Computer Science, 2011
Improving Error Messages in Type System
IPSJ Online Transactions, 2010
Finally, safely-extensible and efficient language-integrated query
Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation - PEPM 2016, 2016
Generate and offshore: type-safe and modular code generation for low-level optimization
Proceedings of the 4th ACM SIGPLAN Workshop on Functional High-Performance Computing - FHPC 2015, 2015
Towards Logical Understanding of Delimited Continuations (Extended Abstract)
Reflection Mechanism in Constructive Programming
Jflp, 2002
We introduce a simply typed λ-calculus λκε which has both contexts and environments as first-clas... more We introduce a simply typed λ-calculus λκε which has both contexts and environments as first-class values. In λκε, holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which takes care of packing and unpacking of the term which is used to fill in the holes of the context. λκε is a conservative extension of the simply typed λβ-calculus, enjoys subject reduction property, is confluent and strongly normalizing.
In our previous work we gave a sound and complete axioma- tization of the control operators for d... more In our previous work we gave a sound and complete axioma- tization of the control operators for delimited continuations, shift and reset by Danvy and Filinski and their variants. Since the calculus allows only one use of shift and reset, a next step is to investigate the calculus with many dierent shift's and reset's. In this work, we study the
Simulations of Multi-Valued Models for Modal Calculus
We study multi-valued Kripke models of propositional modal -calculus and simulations between them... more We study multi-valued Kripke models of propositional modal -calculus and simulations between them. We argue that the set of truth values must form a frame (complete Heyting algebra) in order for the multi-valued relations and small sets to form a category. We then show the simula- tion theorem, which says that the truth values of universal formulae are preserved through
Towards logical understanding of delimited continuations
A Classical Catch/Throw Calculus with Tag Abstractions and its Strong Normalizability
Computing: The Australasian Theory Symposium, 1998
ions and its Strong NormalizabilityYukiyoshi Kameyama and Masahiko SatoDepartment of Information ... more ions and its Strong NormalizabilityYukiyoshi Kameyama and Masahiko SatoDepartment of Information Science, Kyoto Universityfkameyama,masahikog@kuis.kyoto-u.ac.jpAbstract. The catch and throw constructs in Common Lisp providesa means to implement non-local exits. Nakano proposed a calculus L c=twhich has inference rules for the catch and throw constructs, and whosetypes correspond to the intuitionistic propositional logic. He introducedthe tag-abstraction/application mechanism into L...
A New Formulation of the Catch/Throw Mechanism
Fuji International Symposium on Functional and Logic Programming, 1997
The catch/throw mechanism in Common Lisp gives a simple control structure fornon-local exits. Nak... more The catch/throw mechanism in Common Lisp gives a simple control structure fornon-local exits. Nakano[7, 9] and Sato[13] proposed intuitionistic calculi with inferencerules which give logical interpretations of the catch/throw-constructs. Althoughthe calculi are theoretically well-founded, we cannot use the catch/throwmechanism for handling run-time errors in a meaningful way, because of theside-condition of the implication-introduction rule (the formulation rule of the-abstract)....
CAL: A Computer Assisted Learning System for Computation and Logic
Lecture Notes in Computer Science, 2001
In this paper, we describe a computer system CAL which assists studentsé understanding of a lectu... more In this paper, we describe a computer system CAL which assists studentsé understanding of a lecture course in logic and computation. We introduce a new foundational theory of expressions, which is inspired by the theory of expressions due to Martin-Löf [6], and use the expressions determined by the theory to implement various syntactic objects in CAL. We also introduce the
Undecidability of Type-Checking in Domain-Free Typed Lambda-Calculi with Existence
Lecture Notes in Computer Science, 2008
This paper shows undecidability of type-checking and type- inference problems in domain-free type... more This paper shows undecidability of type-checking and type- inference problems in domain-free typed lambda-calculi with existential types: a negation and conjunction fragment, and an implicational frag- ment. These are proved by reducing type-checking and type-inference problems of the domain-free polymorphic typed lambda-calculus to those of the lambda-calculi with existential types by continuation passing style translations.

Lecture Notes in Computer Science, 2004
A CPS translation is a syntactic translation of programs, which is useful for describing their op... more A CPS translation is a syntactic translation of programs, which is useful for describing their operational behavior. By iterating the standard call-by-value CPS translation, Danvy and Filinski discovered the CPS hierarchy and proposed a family of control operators, shift and reset, that make it possible to capture successive delimited continuations in a CPS hierarchy. Although shift and reset have found their applications in several areas such as partial evaluation, most studies in the literature have been devoted to the base level of the hierarchy, namely, to level-1 shift and reset. In this article, we investigate the whole family of shift and reset. We give a simple calculus with level-n shift and level-n reset for an arbitrary n > 0. We then give a set of equational axioms for them, and prove that these axioms are sound and complete with respect to the CPS translation. The resulting set of axioms is concise and a natural extension of those for level-1 shift and reset.
Lecture Notes in Computer Science, 2008
We study the dynamic control operators for delimited continuations, control and prompt. Based on ... more We study the dynamic control operators for delimited continuations, control and prompt. Based on recent developments on purely functional CPS translations for them, we introduce a polymorphically typed calculus for these control operators which allows answer-type modification. We show that our calculus enjoys type soundness and is compatible with the CPS translation. We also show that the typed dynamic control operators can macro-express the typed static ones (shift and reset), while the converse direction is not possible, which exhibits a sharp contrast with the type-free case.
A Type-Theoretic Study on Partial Continuations
Lecture Notes in Computer Science, 2000
. Partial continuations are control operators in functional programmingsuch that a function-like ... more . Partial continuations are control operators in functional programmingsuch that a function-like object is abstracted from a part ofthe rest of computation, rather than the whole rest of computation. Severaldierent formulations of partial continuations have been proposedby Felleisen, Danvy&Filinski, Hieb et al, and others, but as far as weknow, no one ever studied logic for partial continuations, nor proposeda typed
A Call-by-Name CPS Hierarchy
Lecture Notes in Computer Science, 2012
Uploads
Papers by Yukiyoshi Kameyama