P code

Continuing yesterday’s theme of the connection between concepts used in programming and concepts in the larger culture, there is a concept in computer science of a “P code”, which is short for pseudo-code. It comes up because when you’re trying to make a computer language. You could build the language directly from the underlying machine instructions, but that’s often really hard to do, and it kind of wires you in to that particular set of machine instructions.

So what people sometimes do is create a made-up machine, one that doesn’t really exist, but that happens to be really easy to work with, if you’re trying to implement a computer language. Instead of spending months trying to figure out how to turn a very high level description into a very low level set of computer instructions, you find some nice middle ground between high level and low level, and you do the translation in two steps:



If you design the P-code carefully, it turns out that this is much easier than trying to translate in a single step. Of course a lot hinges on how good your P-code is.

There are many other situations in society where the gap between “high level description” and “low level description” is very large, to the point where there is a real problem. For example, most casual political conversations in our country tend to be vastly oversimplified, with all issues painted in black and white and every argument reduced to a kind of pointless jingoism that merely reaffirms one’s pre-formed opinion. I have noticed that in the U.S., it is extremely difficult for a Democrat and a Republican to sustain a political conversation for more than about a minute. After that, each ends up expending most of their effort simply trying to hide the fact that they believe the other to be completely insane.

Similarly, it is very hard for the average U.S. citizen to accurately follow a legal brief or ruling from the bench. Legal language, which sounds superficially like English, is actually a form of technical description – the words and phrases don’t really mean what you might think they mean, if you didn’t know their technical interpretation. And there are similar language problems with medicine, engineering, physics, architecture, psychology, anthropology, biology, literary analysis, and many other fields.

It’s not that people in these fields are trying to be obscure. It’s more that in order to get serious work done in a field, you need to develop a kind of shorthand, so that when you get together with other people who are equally serious and focused, you can get right to work on the problems at hand, without continually needing to start from scratch.

When faced with something like a legal document or a scientific paper, people who are not in a given field generally throw up their hands and give up trying to understand what is going on. The distance between expert knowledge and common knowledge is simply too great. The net result is that most people get shut out of real discussion about a lot of important issues.

But suppose we were to introduce, in every field, a field-appropriate pseudo-code? Not something thrown together dismissively as a sop to the masses, but rather a serious yet accessible way of expressing important concepts in that field, one that was carefully and thoughtfully constructed, with serious intent. To do this properly in any given field it would be necessary to get mindshare from both experts and laypeople, and it would probably be necessary to iterate a few times before the right balance is reached.

It might be productive to make this a general paradigm, to assume that citizens are capable of thoughtful, intelligent discourse, but that the proper scaffolding – an accurate yet accessible language – is needed to bridge the gap between expert knowledge and truly conversant non-expert knowledge.

I think the most important insight to draw from computer science P-code is that the best solution is not likely to be a watered down version of expert knowledge, not merely a “[fill in the blank] For Dummies”. Rather, it is likely to be something uniquely crafted to its purpose, a language of discourse for a particular field which is optimized for a rapid learning curve and a lack of specialized jargon, a common ground that makes sense to both expert and non-expert.

Perhaps if we work seriously at constructing enough field-specific P-codes, we might end up with a general approach to making them, and to knowing whether they are going to be up to the job. And we all might just end up with fewer pointless arguments around the water cooler.

One thought on “P code”

  1. P-Codes for Licenses.

    I found it wonderful that those people from creative commons provide three versions of a license:

    Human-Readable
    Commons Deed

    Lawyer-Readable
    Legal Code

    Machine-Readable
    Digital Code

    Ken, you are right we need more of this…

Leave a Reply

Your email address will not be published. Required fields are marked *