Send me comments, questions, whatever.
When I'm web surfing, I enjoy finding pointers from other people's home pages
to stuff they think is interesting.
I've found some of my favorite pages that way.
So it seems only fair that I should do for others like I'd have them do unto
This page is really just a hotlist with delusions of grandure:
when I find a URL that I want to hang on to, for whatever reason,
I put it here.
Making it globally available is my way of contributing to WebCulture.
Since I'd be putting in the effort to maintain my "hotlist" anyway,
I can get the satisfaction of contributing at essentially no extra cost.
It's still just my hotlist, though.
Traditionally, major web indices —the classic example being
started a lot like this page, with grad students trying to organize
their own growing collection of links, and they just kept growing.
I can't afford to let that happen; there are already good
general indices out there and I just don't have the time.
I sincerely hope you find lots of fun and interesting stuff here,
and I'm making it available to you in the hopes that you will,
but it isn't intended to be a web index per se.
Some of the pointers from here are to other people's pages that
are pretty comprehensive, such as
but these pointers are only here because I decided I wanted them.
Every pointer on this page is here on my sufferance.
Because there are lots of different reasons for me to want to keep a URL,
and all of them end up here, you'll find an enormous range of variation
in the quality of the stuff here.
IMHO, some of it's really neat, some of it is just barely worth saving,
and most of it is somewhere in between.
Deciding which is which is left as an exercise for the student.
After about a year as a web publisher,
I came to appreciate just how often pages on the web move around.
Nothing seems to stay put.
Of course I'd update a URL when I noticed it was out of date,
but I didn't even know how long ago I'd last tested each URL.
So I instituted the following time-keeping system.
Each entry has one or two dates on it.
The first date is the last time the URL was changed.
If this date is recent, either I've just added the pointer,
or I've just changed it because I discovered the target page had moved.
If this date is old, I haven't changed the URL in a long time.
The second date, if any,
is a more recent time as of which I know the pointer still worked.
If there is no second date,
that's because it would be the same as the first date.
If the first date is old and the second date is recent,
you're looking at a fairly stable URL:
I put it in a long time ago, and it was still working pretty recently.
If a stable URL like that doesn't work for you,
there's a good chance the problem is only temporary.
(that purchased "deja.com", that had been "Deja News",
that lived in the house that Jack built)
Networks (and the like)
/ Sounds and symbols
/ The Press
Adelic (if-lang, alternative consonant shift from PIE)
AllNoun (artificial grammar with only nouns and 4 symbols)
2010 Smiley Award)
(Of the Tongues of Arda, the invented world of J.R.R. Tolkien)
The Briefscript Project
(clasic altlang, from Latin displacing Old Celtic in Great Britain)
(started as an attempt to improve the morphology of Loglan,
then took a turn for the naturalistic)
Eaiea (musical language)
(meta-information about the creation of the language is under
Ilaini: the language of Valdyas (highly inflected)
Ithkuil (designed for high information density)
Kēlen (a language with no open lexical class of verbs)
Liva (a logical language)
Nibuzigu (a musical conlang)
(polysynthetic; one open word class, cf. natlang
Revalency (accent on the second syllable), a musing of my own.
(just a language feature that could be used in a conlang,
therefore it's properly a resource rather than a conlang as such;
but it's creative,
therefore it seemed more appropriate here than above)
Sasxsek (an auxlang)
GRAMMAR OF SOLRESOL
(English translation of Gajewski's 1902 work)
Sonayagema - Sona Language Meetingplace
Re: derivatives of Heinlein's speedtalk
(English pages mostly not there yet)
(or, TAKE: Greek without inflections — a fictional auxlang)
Tenata (doesn't strongly classify words by lexical category)
Teonaht homepage (note the Law Of Detachability)
Thauliralau (nouns are uninflected)
(vor = "a compromise between technical and aesthetic criteria")
(language family, heavily agglutinative; Mark Rosenfelder)
Wessisc Language Suite (Damon Lord)
Ygyde (oligosynthetic, designed for high information density)
Zhyler (a language with 57 noun cases)
Sounds and symbols
/ Other literature
WebMuseum (quondam Le WebLouvre)
SITO (quondam OTIS)
/ Loosely related stuff
I've finally blogged (in abbreviated form)
some of the things I've been saying here, for years, I wanted to say:
An introduction to memes
Big Medicine Central
Viruses of the Mind
Memetics: The nascent science of ideas and their transmission
(J. Peter Vajk;
An Essay Presented to the Outlook Club,
January 19, 1989)
Units, Events, and Dynamics in Memetic Evolution
CSI | The Belief Engine
(Skeptical Inquirer —
Volume 19.3, May / June 1995,
Feature, James Alcock)
Memetics: A Systems Metabiology
WIRED 4.05: Memetic Engineering
The Origin of Species
(Charles Darwin, 1859)
AskThePriest.org: Neither a Borrower nor a Lender Be...
EDGE: MIRROR NEURONS
(V.S. Ramachandran; undated, possibly 2000)
Interdiscilinary Dialogue within the Global Network Environment
(Heath Michael Rezabek, 1993)
index of site dedicated to propaganda analysis
Closed Brain, Open Mind: The brain, its world model & mind
Dynamics and World-Model Creation in Novelty Reducing Neural Networks;
before that, was: Novelty and the End of the Processing Brain Paradigm;
Mervyn van Kuyen)
Genes, Memes, and Megathemes
5 videos on memetics (post on alt.memetics)
Loosely related stuff
The Physical Revue, by Tom Lehrer
Physics - spotlighting exceptional research
The Unreasonable Effectiveness of Mathematics in the Natural Sciences
Communications in Pure and Applied Mathematics,
vol. 13, No. I (February 1960))
Physics, Topology, Logic and Computation: A Rosetta Stone
| Lambda the Ultimate
"Why quantum mechanics is weird"
my attempt to get a handle on the conventional theory
Determinism, locality, and meta-time,
an essay of mine on an alternative approach
The crackpot Index (John Baez)
The Strong Free Will Theorem (pdf)
SF Chronophysics (JBR Guide)
Consistent Quantum Theory
Tony Smith (One can't help speculating that the picture showing
him as a cowboy may be appropriate in more ways than one.)
Huw Price (Centre for Time, University of Sydney)
"The Alternate View" columns of John G. Cramer
Quantum Theory Without Observers
The transactional interpretation of quantum mechanics
Physical Space as a Quaternion Structure, I: Maxwell Equations.
A Brief Note
(Peter Michael Jack)
On the History of Unified Field Theories
On the dimensionality of spacetime
A. Garrett Lisi ("An Exceptionally Simple Theory of Everything")
Two-Time Physics (Itzhak Bars)
Shahar's Home page (time asymmetry and suchlike)
(controversy re using Clifford Numbers
to get around Bell's Inequality)
Vacuum Modified Gravity as an explanation for flat galaxy rotation curves
Lost Causes in Theoretical Physics by R. F. Streater
MatWeb database of material properties
/ Language families
/ Abstraction Theory
Lambda the Ultimate (The Programming Language Weblog)
Ulf's Home-Page of Programming Language Design
(note: he submitted his PhD dissertation in June 2005)
Paul Graham — Essays
One Div Zero:
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
(One Div Zero — An Exploration of Software Development)
Good Ideas, Through the Looking Glass | Lambda the Ultimate
Dictionary of Programming Languages
(at least since 14-Feb-06, no longer maintained)
Code-a-holic/LL (language list)
99 Bottles of Beer
List of programming languages (Wikipedia)
The Language List
Version 2.4, January 23, 1995
(last version distributed on USENET, as far as I know)
Available as a
single web page.
web page, more up-to-date by some unknown (to me) but small amount,
at the University of Kansas.
programming languages (Prof. Susan Stepney, University of York)
The Retrocomputing Museum
Introduction To Computer Languages (2)
syntax across languages
Languages versus D
"the wiki for the D programming language")
(New England Programming Languages and Systems Symposium Series)
Peter Van Roy: Programming Paradigms for Dummies
| Lambda the Ultimate
The Teaching About Programming Languages Project
HOSC (Higher-Order and Symbolic Computation,
formerly Lisp and Symbolic Computation)
Resources for Programming Language Research
Programming Systems Research,
University of Washington
Catalog of Free Compilers and Interpreters
The Catalog of Compiler Construction Tools
CISE directorate (NSF)
Getting Started in Programming
(One person's attempt to answer the frequently asked question,
"What language should I learn?")
The comp.compilers newsgroup (archive, FAQ, and such)
Advanced Programming Languages
(Jose Emilio Labra Gayo)
Programming Language Creator (roll your own)
(tool for writing definitions of programming languages and calculi)
Lightweight Languages 2003
Liskov's list of papers | Lambda the Ultimate
Inspiring Papers | Lambda the Ultimate
Wouter's programming language page
(PLs designed by Wouter van Oortmerssen; almost fifty of them,
some with their own pages, some have been implemented.
Some of them are esoteric.)
Mastering recursive programming
The Quine Page (self-reproducing code)
Categorical languages /
Distributed computing languages /
Esoteric languages /
Extensible languages /
Functional programming /
Lisp languages /
Logic and constraint programming /
Low-level languages /
Non-programmers, programming languages for /
Object-oriented programming /
Scripting languages /
Stack-based languages /
The Biology of Sloppy Code
Introduction to ngrease
Language Oriented Programming: The Next Programming Paradigm
Amorphous Computing Manifesto
Ada Home: the Home of the Brave Ada Programmars (HBAP)
Libre - Home (includes a GPL implementation of Ada)
(descended from Scheme and Common Lisp;
typed, and has an ALGOL-like syntax)
a software environment for defining transformations
How can C Programs be so Reliable? | Lambda the Ultimate
D Programming Language
(systems programming; power, performance, productivity)
The Go Programming Language — FAQ
(Systems programming language)
(high-performance, reflective, both specification and programming)
Blassic (a classic Basic interpreter)
(a language with "BASIC like syntax",
which pretty much sums up the eventual legacies
of all popular programming languages:
the best semantic features are all scrapped,
typically because they're hard to separate out from features
that are inconsistent with new trends in language design,
while the superficial syntax is perpetuated.
Look at C and Java....
The semantics of the successor languages aren't necessarily bad,
mind you, but I don't think any of those old languages would have been
popular if there hadn't been something worthwhile in the old semantics,
from which the successors regularly fail to learn.)
("teaches students computer programming in a 3D environment")
COBOL programming - tutorials, lectures, exercises, examples
("designed to provide one syntax for all range of documents,
configuration files, knowledge representations, object serialization
and even for scripts and large-scale programs")
A Shallow Introduction to the K Programming Language
(a high-level system programming language)
ALA7 (polymorphic lists, simplified access to machine code)
Dodo, the programming language
Distributed computing languages
Obliq (a lexically-scoped untyped interpreted language
that supports distributed object-oriented computation)
The E Language
The Mozart Programming System
(primary implementation of Oz)
Prose (note: also self-identifies as a scripting language)
An "esoteric" programming language is a programming language that is
deliberately designed to be perverse.
That's in contrast to the vast majority of "non-esoteric"
programming languages, which are perverse without anyone deliberately
making them that way.
I've been thinking about designing an esoteric language myself for years,
and once I even started one; but it's been difficult for me,
because the usual way of making a language hard to use is to omit
abstraction support, and I just can't find it in my heart to design
a language that way. The obvious solution is to design a language
that supports abstraction in a perverse way — but it's hard to imagine
any way of supporting abstraction that would be more perverse than the way
C++ does it.
INTERCAL Resources Page
(the spiritual ancestor of all modern esoteric languages)
The Turing Tarpit
Keith's Esoteric Programming Languages Page
(The Esoteric Programming Languages Webring)
Esoteric programming languages wiki
The Unlambda Programming Language
reMorse (accent on the first syllable)
Extensibility, as a movement, was the predecessor of abstraction.
Simula in its early years was presented as an extensible language.
The move from extensibility to abstraction was a classic paradigm shift,
with the attendant ruthless supression of the predecessor,
to the point where the whole extensibility movement is almost invisible
in the history books
(though its erasure was more nearly complete a quarter century ago,
when object-orientation was on the rise instead of on the decline).
the extensibility movement was never as big as its successor became,
although some of the more extreme paeans to the advantages of abstraction
could have been taken verbatim from writings on extensibility.
There's been a new wave of extensible languages since around the turn
of the century.
I'm a bit concerned about a tendancy to not learn from past mistakes;
not that I don't believe in extensibility,
I just don't believe in unstructured extensibility,
just as I don't believe in unstructured control flow.
(On the difference between structure and restriction,
see my design of the
Kernel programming language,
especially guideline G4 on type encapsulation.)
Magpie (A Self-Checking Type System | Lambda the Ultimate)
Seed7 (easy to add statements and functions;
first-class types (of course))
Extensible programming languages (Wikipedia)
Parser that allow syntax extensions | Lambda the Ultimate [sic]
Ivy (extensible syntax; broadly, a scripting language)
A Conversation with Alan Kay
OMeta: an Object-Oriented Language for Pattern Matching
PFront (A programming language with extensible syntax
| Lambda the Ultimate)
Logic and constraint programming
UW Constraint-Based Systems
(University of Washington)
Kanren (A declarative applicative logic programming system)
(13-Nov-04; 23-Mar-10; 05-Sep-11)
Qi (views itself as a "Lisp for the 21st century")
TERSE (algebraic assembly language for x86 processors)
C-- (a portable assembly language)
Non-programmers, programming languages for
A general observation about programming languages that cater to
There seem to be two diametrically opposite ways to go about it.
You can dumb down your language,
hoping to bring it within reach of non-programmers;
or you can improve it until it's so good that even non-programmers
can handle it.
(If you think that improving your language will make it harder
for non-programmers to handle, you might want to rethink
what constitutes an improvement.)
Any researcher in this area should ask,
am I trying to make my language dumb, or good?
Most new languages today are dynamic
(as Lisp programmers have always known they should be),
and capable of interoperating with other languages;
one could also ask that a scripting language support entering commands
at an interpreter prompt, but that's mostly orthogonal to paradigm,
and in principle about any language could
be implemented that way.
The criterion for including a language here is, consequently,
not merely that the language could be put here,
but that I don't see how to justify putting it anywhere else
Scripting: Higher Level Programming for the 21st Century
(PDF; IEEE Computer, March 1998)
The Rexx Language Association
(at least historically scripting,
and otherwise would be miscellaneous)
(self-identifies primarily as a scripting language;
not exactly an extensible language in my sense,
so if not here it would be miscellaneous)
The Falcon Programming Language
(Was once put here because it only self-identified as a scripting language;
now it claims to "provide six integrated programming paradigms".
Further study is called for; one of these times when I recheck the link,
perhaps — but my notes say it "has objects and classes,
but only incidentally;" if that's also its level of involvement
in all the other paradigms it lists, it may only reclassify as
"miscellaneous", which would be unwelcome since I already have too many
(general-purpose visual and functional programming language)
Christopher Strachey (1916–1975)
(page archived at the Internet Archive)
("A Generalized Church-Rosser Theorem", later generalized by Klop)
("Primitive Types Considered Harmful")
Henry Baker's Archive of Research Papers
Alan Bawden —
First-class Macros Have Types
(his Ph.D. Thesis was "Programming as language development")
(lambda calculi and explicit substitutions;
director of research at CNRS)
(calculi, continuations, partial evaluation, ...)
E.W. Dijkstra (1930–2002)
R. Kent Dybvig (Chez Scheme)
Martin Erwig (monads)
Matthias Felleisen's Home Page
(his Master's Thesis was
"Declarative Continuations and Categorial Duality")
Dan Friedman (coauthor of The Little Schemer)
Richard P. Gabriel (Lisp)
(author of On Lisp)
Mark P Jones
'use of advanced programming technologies for system programming')
Jan Willem Klop (generalizations of λ-calculus, etc.)
Cameron Laird (scripting; tcl)
John McCarthy (LISP)
M. Douglas McIlroy (a founding father of extensibility)
Albert R. Meyer
(various deep theory stuff; Wand cites him for eval/quote)
(some very cool stuff at the interface between higher-order logic
and programming; he's academically a grandchild of Alonzo Church)
John C. Mitchell
("On abstraction and the expressive power of programming languages",
Luc Moreau ("A Syntactic Theory of Dynamic Binding")
("Call-by-Name, Call-by-Value, and the Lambda Calculus")
John C. Reynolds
(coined the term "meta-circular evaluator")
(lately, Generalized Algebraic Data Structures)
Olin Shivers (lambda calculus, Scheme, control and scope, ...)
Mike Sperber (partial evaluation, Scheme)
Gerald Jay Sussman
(coauthor of the Wizard Book)
Walid Taha (multi-stage programming)
(big step operational semantics)
Phil Wadler (GJ; monads)
Mitchell Wand's Home Page
("The Theory of Fexprs is Trivial")
a juxtaposition of words that narrowly misses being self-contradictory,
thus conveying its meaning with precision.
International Sociobiology Institute
It was at "http://hrolson.freeyellow.com/page4.html",
and disappeared when FreeYellow discontinued free Web hosting plans.
When last I checked (three years later),
there were still broken links to it all over the web, because
(1) it was pretty much the
page people linked to on sociobiology, and
(2) people don't bother to check that their web links still work,
even though broken links are rampant and can severely degrade the value of
a collection of links.
(Not that I don't know how that happens;
I too learned the hard way that web content has to be maintained,
witness my adaptive grammar pages...
but it's still kind of disappointing to see.
My surfing page is, of course, my own partial solution to the problem,
allowing me to keep a big pile of links without spending more than about
fifteen minutes a day on it... most days...)
La Paranoia Home Page.
It was at "http://www.paranoia.com/",
what is by now quite a long time ago.
When they took the fourth amendment, I was quiet because I didn't deal drugs.
When they took the sixth amendment, I was quiet because I was innocent.
When they took the second amendment, I was quiet because I didn't own a gun.
Now they've taken the first amendment, and I can say nothing about it.