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
...
|
Metcast
Introduction,
Channels,
Request language,
Soutei...
|
Image Processing
VR,
Wavelets,
Zerotrees,
Lazy images...
|
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, generating Gaussian Eliminators,
FFT, numeric code...
|
| 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 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
|
Treap, a sorted dictionary data structure based on randomized search trees, in Scheme
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
|
| Programming Languages |
|---|
|
XML and Scheme: parsing, querying,
authoring, transforming
C++ Digest
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
Meta-Theory and Logical Frameworks
|
Weather Observation Markup Format, an application of XML to annotate weather observation reports
Functional Programming articles, posts and notes
Haskell code and articles
HTML/XML/LaTeX authoring in Scheme
and Haskell
Scheme in Perl, or Perl as
Scheme
Literate XML/DTD programming
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
|
| Networking and Communication |
|---|
|
Handling multiple TCP Connections in C++, C/C++ Users Journal, v.14, No. 5, May 1996, pp. 17-23.
The Web as a computer itself
TCPStream -- a C++ standard iostream over a TCP channel
Persistent
delimited continuations for CGI programming with nested
transactions
|
Distributing Data Using TLT30G, Dr. Dobb's Journal, #289, September 1998, pp.34-40, 92-93.
Remote "command prompt" (pseudo-telnet) over HTTP
Speaking HTTP: A File-Uploader Tool,
USENIX ;login: -- vol. 25, No. 2 -- April 2000, pp. 6-14.
|
| Computing and Computation |
|---|
|
Expressing formal proofs in a computer language: Y Scheme
The Web as a computer itself
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
Compilation by evaluation as syntax-semantics interface in natural languages
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
Concurrent and serializable computations and the evaluation order
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
|
| Operating Systems |
|---|
|
Zipper-based
file server/OS
Layered I/O
A network file system over HTTP:
remote access and modification of files and files
A USENIX'99 Freenix track paper
Patch-free User-level Link-time
intercepting of system calls and interposing on library functions
|
Opening of extended file names
including bidirectional and TCP pipes
Kernel of a simple OS in C++
Relaying TCP packets
Writing agents in sh: conversing through a pipe
Delimited continuations in operating systems
|
| Image Processing and Visualization |
|---|
|
Flight through/around clouds (a.k.a. Venus)
|
Grayscale Image Processing
Image Compression Papers
|