oleg kiselyov

Beyond pure Prolog: Power and danger

Lambda the Ultimate - Programming Languages Weblog  Mon, 01/23/2012 - 04:54

One of the sections of Oleg Kiselyov's Prolog and Logic Programming page, on Beyond pure Prolog: power and danger, points out (i) term introspection (in the guise of the var/1 predicate) can be derived from three of Prolog's imperative features, two of which are quite mild-looking, and (ii) this introspection potentially makes Prolog code hard to understand.


 

Functional Pearl: Implicit Configurations —or, Type Classes R...

Lambda the Ultimate - Programming Languages Weblog  Sat, 12/26/2009 - 10:13

Functional Pearl: Implicit Configurations —or, Type Classes Reflect the Values of Types, by Oleg Kiselyov and Chung-chieh Shan:

The configurations problem is to propagate run-time preferences throughout a program, allowing multiple concurrent configuration sets to coexist safely under statically guaranteed separation.

This problem is common in all software systems, but particularly acute in Haskell, where currently the most popular solution relies on unsafe operations and compiler pragmas.


 

Differentiating Parsers

Lambda the Ultimate - Programming Languages Weblog  Sat, 12/05/2009 - 10:03

A fascinating article by Oleg Kiselyov on delimited continuations:


 

Lifted inference: normalizing loops by evaluation

Lambda the Ultimate - Programming Languages Weblog  Thu, 08/13/2009 - 20:34

Lifted inference: normalizing loops by evaluation. Oleg Kiselyov and Chung-chieh Shan. 2009 Workshop on Normalization by Evaluation.

Many loops in probabilistic inference map almost every individual in their domain to the same result.

Running such loops symbolically takes time sublinear in the domain size.


 

Staging with Delimited Control

Lambda the Ultimate - Programming Languages Weblog  Sun, 11/30/2008 - 19:49

Yukiyoshi Kameyama, Oleg Kiselyov, Chung-chieh Shan, Shifting the Stage: Staging with Delimited Control.

PEPM2009.

It is often hard to write programs that are ef?cient yet reusable. For example, an efficient implementation of Gaussian elimination should be specialized to the structure and known static properties of the input matrix.


 

Continuation Fest 2008

Lambda the Ultimate - Programming Languages Weblog  Wed, 08/13/2008 - 09:19

I had received the announcement for the Continuation Fest 2008, but then completely forgot about it.

Back in mid-April, some neat stuff was going on in Tokyo:


 

Lightweight Monadic Regions

Lambda the Ultimate - Programming Languages Weblog  Wed, 08/06/2008 - 10:57

Oleg Kiselyov and Chung-chieh Shan. Lightweight Monadic Regions.

Haskell'08.

We present Haskell libraries that statically ensure the safe use of resources such as file handles.

We statically prevent accessing an already closed handle or forgetting to close it. The libraries can be trivially extended to other resources such as database connections and graphic contexts...

Region annotations are part of an expression's inferred type.


 

Pure, Declarative, and Constructive Arithmetic Relations

Lambda the Ultimate - Programming Languages Weblog  Tue, 02/26/2008 - 23:11

Pure, Declarative, and Constructive Arithmetic Relations.

Oleg Kiselyov, William E. Byrd, Daniel P. Friedman, and Chung-chieh Shan. FLOPS 2008. (source code)

We present decidable logic programs for addition, multiplication, division with remainder, exponentiation, and logarithm with remainder over the unbounded domain of natural numbers.

Our predicates represent relations without mode restrictions or annotations.