Blog

List of all postsAtom feed

Loyc's future

I don’t know whether I want to continue using .NET at all.

(read more)

TODO - The ultimate programming language

I’d like to make a “universal” programming language that takes the best features of all the new languages, and either (1) directly supports those features, somehow, or (2) provides lower-level primitives out of which those features can be built, with features provided by the standard library.

(read more)

Redesigning LES

I proposed Loyc Expression Syntax version 1 to an external group for the first time recently, and did not get a warm reception. ‘Non-obvious whitespace rules’, ‘overbearing semicolon requirements’, and ‘operator precedence rules that differ from C/JS’ were mentioned as pain points. For two weeks I thought and I thought, exploring different options, and while I could not find a perfect solution, I did find a solution that I am happy with.

(read more)

MPL Research Report, First Ed.

In this novella I’ll explain MPL, the research language I’m working on in the Programming Language Lab at the University of Calgary. It’s a concurrent language, which is a bit strange because none of us here have any major experience making concurrent software. Instead, MPL is derived largely from Category Theory, a branch of mathematics that I have so far been unable to understand personally.

(read more)

Annual Progress Report

It’s been a disappointing school year. I returned to university in the hope that finally, finally I’d be able to devote a lot of time to Loyc, make real progress, and perhaps finally make something that would attract the interest of … well, anyone. Actually getting a Master’s degree was never the point, it was just a bonus.

(read more)

Parsing & type inference (Algorithm W in Haskell), and thoughts about Union types

For a university class I had to implement type inference for a toy lambda calculus (first an untyped one, then a typed one). A parser was provided, but it was very bare-bones so I decided to make my own using Parsec. (Sadly, returning to university has slowed my work on Loyc, but I digress.)

(read more)

Design elements of a multi-language standard library

Recently the Wolfram Language became available. While the language itself has some innovations, the primary attraction of this language is a fantastically rich library of professionally curated functionality. But it is a proprietary “cethedral” model and it the library is tied to just one language, the Wolfram Language. Meanwhile, the open-source “bazaar” model has almost taken over the landscape of software development, but in a messy and irregular way. Given any two random open-source libraries, chances are they cannot talk to each other even if they are designed for the same domain. Because most standard libraries are impoverished, with a dearth of standard interfaces, it is often the case that two libraries written for the same domain are incompatible, even if they are written in the same language. In other words, the output of one library cannot be used directly as the input of the other.

(read more)

LoycCore split into its own repository

People often have trouble understanding what Loyc is, and I often find it hard to explain it to people. That’s not surprising: I know what I want–cross-language interoperability–but I don’t know the best way to reach my goal, and that makes it hard to present a coherent vision. But out of the Loyc project I have grown a series of C# libraries that are much easier to understand and explain. That’s why I am splitting out these libraries into their own repository, LoycCore.

(read more)