This afternoon I’ve been reworking my presentation for yesno such that it’s suitable for UWORCS. This has involved gutting most of my slides, and not just because I need to cut it down for time. Yesno, for those who are not familiar, is a programming language which aims to be complete, i.e., every program must yield some values (“halt”). The trade-off is there is some inconsistency.

I have a more concrete idea of what yesno should and should not do now. A lot of my slides, when I was proposing the project, where I was totally off on what it should do. I’m also reminded of how basic yesno is: it’s got a long road of revision and research and refinement ahead of it before it’s broadly usable. If the evolution of a programming language is like chiselling marble, then mainstream languages have abandoned even the most minute chisel in favour of polish, and I’m still whacking away with a sledgehammer.

But, it’s reaffirmed my interest in a complete framework. It’s a bit too far off to say whether completeness/inconsistency is best served by a language or a library/macro system for some existing language. At this point I think a language serves the purpose well, but who knows.

It seems to me that there’s use for using data that hasn’t been finished computing yet. A web browser that’s rendering a half-loaded page, or even in soft real-time applications, providing some sort of result because you’re running out of time. It’s a nice framework for these things, I think, and one which hasn’t had its fair due of research attention.

I may even pick up yesno again in the summer and actually formalize the semantics and what’s missing about the semantics. It worked as a class project, but there are some quite large holes in the semantics that need serious thought.