Career (by )

It's not just on technical matters that I find myself liking Paul Graham, he's also pretty much followed the kind of career path I want: start own company, become wealthy enough to no longer need to work, then mess around designing programming languages. Ok, I'm a bit more daring: I want to design a programming language, a virtual machine, operating system kernel, network protocol suite, database, and set of standard libraries.

Read more »

What I want from a programming language (by )

I'm interested in programming languages. When I was a kid, I'd get books on different languages out of the library, and sit and learn a language. I didn't get to write code in many of them, since this was before I owned a modem; all I had at home where BASIC, Z80 assembly language, Pascal, x86 assembler, then C and C++. But I devoured new languages whenever I could. When I came across FORTH I wrote my own implementation (although at the time I didn't get the metaprogramming stuff), since FORTH is easy to implement (it's a great bootstrapping language), and later on, I implemented a kind of Lisp as a scripting language for a game engine (except I used a Prolog-esque syntax, foo(bar,baz) rather than (foo bar baz)). I really wanted to play with the rich feature set of Ada, and the parallelism of occam. I studied COBOL and FORTRAN and found they didn't look much fun. I studied Smalltalk and found that it looked like great fun. Prolog was interesting, a radical departure, but I saw it as foolish to write whole programs in it - I felt it should be used as a database query language like SQL. It's Turing complete, but a large class of programs are ugly to write in it.

Read more »

Secure bootstrapping (by )

Back in the day, Ken Thompson described a rather scary problem with the way programming languages are compiled.

In summary, one could modify the C compiler so that, when it compiled some security-critical application like sshd, it inserted a security hole. The pristine sshd sources, when compiled, would produce a vulnerable executable. But then to protect the modification to the C compiler from being found, one can use the same trick on the compiler - make it insert the bugs into sshd and into itself when compiled from pristine sources. Compile this compiler up, then test it on its original sources, and when it's all working OK, install it on a system (and the bad sshd) and remove the dodgy sources. Clear your .bash_history and you're done 😉

Read more »

Syntactic sugar in s-expression languages (by )

S-expression based languages (eg, Lisps, and by a broader definition of s-expression, things like Prolog) use a single regular syntax to represent the parse tree of code, rather than having parsing rules for each syntactic construct in the language. Read more »

Percival (by )

As of today we have a new addition to the household - a new pet and a wiggly pet goes to the first person to guess what it is!

I will answer questions left in the comments section but only one a day so you might as well leave guesses!

🙂

Oh and its called Percival incase you hadnt guessed!

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales