activity
20002022
most citedStream Fusion, to Completeness

45 citations · 146 across the 18 of their papers we have counts for

collaborators
Showing cs.PLShow all

14 papers · 1 filter

cs.PL2022★ 1 cited

Highest-performance Stream Processing

Oleg Kiselyov, Tomoaki Kobayashi, Aggelos Biboudis +1

We present the stream processing library that achieves the highest performance of existing OCaml streaming libraries, attaining the speed and memory efficiency of hand-written stat…

cs.PL2022

Do Mutable Variables Have Reference Types?

Oleg Kiselyov

Implicit heterogeneous metaprogramming (a.k.a. offshoring) is an attractive approach for generating C with some correctness guarantees: generate OCaml code, where the correctness g…

cs.PL2022★ 1 cited

let (rec) insertion without Effects, Lights or Magic

Oleg Kiselyov, Jeremy Yallop

Let insertion in program generation is producing code with definitions (let-statements). Although definitions precede uses in generated code, during code generation `uses' come fir…

cs.PL2019★ 5 cited

Effects Without Monads: Non-determinism -- Back to the Meta Language

Oleg Kiselyov

We reflect on programming with complicated effects, recalling an undeservingly forgotten alternative to monadic programming and checking to see how well it can actually work in mod…

cs.PL2018★ 17 cited

Eff Directly in OCaml

Oleg Kiselyov, KC Sivaramakrishnan

The language Eff is an OCaml-like language serving as a prototype implementation of the theory of algebraic effects, intended for experimentation with algebraic effects on a large…

cs.PL2017★ 7 cited

Generating Code with Polymorphic let: A Ballad of Value Restriction, Copying and Sharing

Oleg Kiselyov

Getting polymorphism and effects such as mutation to live together in the same language is a tale worth telling, under the recurring refrain of copying vs. sharing. We add new stan…

cs.PL2016★ 45 cited

Stream Fusion, to Completeness

Oleg Kiselyov, Aggelos Biboudis, Nick Palladinos +1

Stream processing is mainstream (again): Widely-used stream libraries are now available for virtually all modern OO and functional languages, from Java to C# to Scala to OCaml to H…

cs.PL2016★ 4 cited

Answer-Type Modification without Tears: Prompt-Passing Style Translation for Typed Delimited-Control Operators

Ikuo Kobori, Yukiyoshi Kameyama, Oleg Kiselyov

The salient feature of delimited-control operators is their ability to modify answer types during computation. The feature, answer-type modification (ATM for short), allows one to…

cs.PL2015

Proceedings ML Family/OCaml Users and Developers workshops

Oleg Kiselyov, Jacques Garrigue

This volume collects the extended versions of selected papers originally presented at the two ACM SIGPLAN workshops: ML Family Workshop 2014 and OCaml 2014. Both were affiliated wi…

cs.PL2012★ 17 cited

Monolingual Probabilistic Programming Using Generalized Coroutines

Oleg Kiselyov, Chung-chieh Shan

Probabilistic programming languages and modeling toolkits are two modular ways to build and reuse stochastic models and inference procedures. Combining strengths of both, we expres…

cs.PL2011★ 9 cited

Implementing Explicit and Finding Implicit Sharing in Embedded DSLs

Oleg Kiselyov

Aliasing, or sharing, is prominent in many domains, denoting that two differently-named objects are in fact identical: a change in one object (memory cell, circuit terminal, disk b…

cs.PL2005★ 33 cited

Haskell's overlooked object system

Oleg Kiselyov, Ralf Laemmel

Haskell provides type-class-bounded and parametric polymorphism as opposed to subtype polymorphism of object-oriented languages such as Java and OCaml. It is a contentious question…

cs.PL2003

Subclassing errors, OOP, and practically checkable rules to prevent them

Oleg Kiselyov

This paper considers an example of Object-Oriented Programming (OOP) leading to subtle errors that break separation of interface and implementations. A comprehensive principle that…

cs.PL2000

Why C++ is not very fit for GUI programming

Oleg Kiselyov

With no intent of starting a holy war, this paper lists several annoying C++ birthmarks that the author has come across developing GUI class libraries. C++'s view of classes, insta…