That's what you can find here

Unless specified otherwise, all the code and the documentation on this site is in public domain.

Programming Languages
Scheme, Haskell, Prolog, ML, C/C++, Perl, typed DSL, Other...
Scheme
XML, Web, macros, text and binary parsing, utilities, database interfaces, papers...
XML
SXML, SSAX, parsing, SXSLT, SXPath, typed SXML...
OOP
Critique, Purely-functional, as-a database...
Lambda-calculus
Calculators, Negation, Division, P-numerals, Puzzles...
Haskell
Logical type programming, dependent types, keyword arguments, HList, stanamic properties, monads, regions...
Algorithms and Data Structures
Trees, Cryptography, Treap, Scheduling, Zipping, Arithmetic compression, Cyclical structures...
Numerical Math
LinAlg, SVD, FFT, Lazy matrices, Matrix Streams, code generation...
Computation
Functional Programming, Monads, Types, Dependent Types, backtracking, Fixpoints, Self-Referential values, Re-writing systems, CPS macros...
Continuations
shift/reset in CBV and CBN; control/prompt; call/cc and fixpoints; enumerators and generators; zipper ...
Linguistics
Continuation semantics, extended abstract categorial grammar, quantifier scope, anaphora ...
Probabilistic Programming
HANSEI. Bayesian nets, HMM, population estimation, multi-target tracking; exact inference, importance sampling...
Essays
Information and Entropy, Computers and Infinity, conference summaries, Principia Mathematica notes...
OS
ZipperFS/OS, HTTP VFS, Layered I/O, Sh agents, DreamOS, Speaking HTTP...
Meta-programming
Staging, typed compilation, BER MetaOCaml, generating Gaussian Eliminators, FFT, numeric code...
Meta-theory
Logical Frameworks, Twelf, type soundness proofs for calculi with delimited control,...

 

What's new (rss)


Algorithms and Data Structures

Solving a text layout problem with Dynamic Programming

Secure Counting of members of a subset without revealing their identities

Provably perfect random shuffling and its pure functional implementations

Pure-functional transformations of cyclic graphs and the Credit Card Transform

Radix-2 Fast Fourier Transform: generating optimal code

Practical Lambda-calculators, which implement a normal-order evaluation as a bottom-up parsing

Accumulating tree traversals, a better tree fold, and XML parsing

The probability of randomly chosen integers being relatively prime

Representing knowledge about knowledge

Total stream processors and their applications to all infinite streams

Flattening a (cyclic) list by a lazy virus

Recursively enumerating binary arithmetic relations, from addition to logarithm -- as conjunctions and disjunctions -- in Prolog and Kanren

Towards the best collection traversal interface: from enumerator to cursor

Provably correct and practical intersection testing of two segments of a circle or two georectangles

On parent pointers in SXML trees

Polymorphic stanamically balanced AVL trees

Selecting a random node from a tree in one pass: from proof to code

Zipper as a delimited continuation. Updating immutable SXML documents side-by-side

Polymorphic variants as negation of open records: solving the expression problem

Annotating trees post factum
 

Programming Languages

XML and Scheme: parsing, querying, authoring, transforming

Functional Style in C++: Closures, Late Binding, and Lambda Abstractions

Why C++ is not very fit for GUI programming

Scheme code, utilities, articles, Web and database programming

Purely-functional Object-Oriented System in Scheme

Makefile as a functional language program

Object-Oriented programming is a harmful methodology

KANREN: a declarative logic programming system embedded in Scheme

Type-level typecase
 

Typed tagless-final interpretations: Lecture notes

Scheme in Perl, or Perl as Scheme

C pointers as closures

Keyword arguments in Haskell, Scheme macros, ...

Eliminating Array Bound Checking through Non-dependent types and proving it

Symbolic differentiation of compiled numeric functions

Representing existential data types with isomorphic simple types

Unusual polymorphism
 

Computing and Computation

Lambda: the ultimate syntax-semantics interface

Many faces of the fixed-point combinator

Type Arithmetic, type-level higher-order for-loops, with applications to safe pointer arithmetic and time-indexed computations

How fundamental is information?

Lexical extensions via macros, and the meaning of identifiers

Syntax-rule-level lambda, CPS, and a systematic macro programming

(Delimited) dynamic binding

Interpreting types as abstract values: a brief course on Hindley-Milner type inference
 

Backtracking, indeterministic, state, etc. Monads in Haskell and Scheme

UNIX pipes as IO monads. Monadic i/o and UNIX shell programming

Sendmail as a Turing machine

Universally polymorphic lists and a polymorphic FOLD in ANSI C without casts

P-numerals: arithmetically more convenient and efficient lambda-numerals

CPS transform and beta-normalization via syntax-rules: Macro-expander as a proof assistant

Inverse typechecking and theorem proving in intuitionistic and classical logics

Purely Functional Lazy Non-deterministic Programming

Constructive Law of Excluded Middle
 

Operating Systems and Networking

Zipper-based file server/OS

Streams and Iteratees: Incremental multi-level input processing

A network file system over HTTP: remote access and modification of files and files A USENIX'99 Freenix track paper

The Web as a computer itself

Persistent delimited continuations for CGI programming with nested transactions
 

Opening of extended file names
including bidirectional and TCP pipes

Kernel of a simple OS in C++

Relaying TCP packets

Distributing Data Using TLT30G, Dr. Dobb's Journal, #289, September 1998, pp.34-40, 92-93.

Speaking HTTP: A File-Uploader Tool,
USENIX ;login: -- vol. 25, No. 2 -- April 2000, pp. 6-14.

Delimited continuations in operating systems
 

Image Processing and Visualization

Flight through/around clouds (a.k.a. Venus)

Grayscale Image Processing

Image Compression Papers


[Flight Poster] One of the earliest flights through clouds


Last updated July 4, 2010

oleg-at-pobox.com or oleg-at-okmij.org
Your comments, problem reports, questions are very welcome!