A Language to Build Languages

I’ve been fascinated by computers since before I graduated from high school. One of the early ideas that captured my imagination was the possibility of creating a program that could think like a person. Throughout my career I have pondered the possibility and I have come to the conclusion that while we may be able to write programs that provide the fundamental structures and operations upon which intelligence may emerge, we are far from understanding how intelligence works well enough that we can reproduce it constructively by design. That puts me in the camp that is sometimes labeled emergent AI, although I prefer the term digital intelligence to artificial intelligence.

One of the aspects that I feel will be required for emergent digital intelligence (let’s abbreviate it EDI, shall we), is the ability to introspect, that is, to examine its own thought process. This is something that I have felt for a long time, in fact, for almost as long as I  have been interested in computers. I have always looked for ways that programs could examine themselves. For instance, I was fascinated by the fact that I could write code that examined its own representation in memory and even modify itself while running in Microsoft Basic as early as 1979.

Much of my early introduction to programming was due to a subscription to Byte magazine, an early journal aimed at amateur microcomputer enthusiasts. Every August, Byte published their annual computer language issue in which they explored the features of a different language. I suspect that this was my first exposure to the Lisp language. Lisp is the second oldest high level computer language, predated only by FORTRAN.

It is also the first computer language that focused on symbolic processing instead of being primarily concerned with numerical computation. That is to say, it was written to facilitate the manipulation of lists of symbols. A symbol, in this case, is an arbitrary label or name. For example, you might have a list:

(alice bob ralph sally)

The parenthesis denote the beginning and end of the list. The four names are symbols and make up the elements of the list and they are considered in the order that they are written between the parenthesis, that is alice is the first element of the list, bob is the second, ralph the third, and sally the fourth and final.

Further, Lisp code was represented by lists, just like its data. Consequently, program code could be manipulated by the language as easily as data could. This jumped out at me immediately as giving Lisp the ability to introspect over its own code. Another, more subtle capability of Lisp is the ability to take a list and rewrite it according to a template called a macro. This turns out to be incredibly useful in allowing repetitive operations to be condensed to their essence.

Lisp is typically implemented as an interpreter. It accepts a line of input, processes it and prints a result. This is called a Read, Eval, Print Loop or REPL for short. The reason that I bring this up at this point is to point out that the component that does the Read portion of the REPL is a very interesting piece of the picture. It takes a list of input characters and parses them into symbols and builds them into a small program. It is responsible for recognizing if there are any macros in the list and if so, expanding them into their translations. When it is finished, it has a complete, correct lisp expression to hand to the Eval portion of the REPL. Either that or it detects that something is wrong and prints an error message.

This Read operation is very powerful, even more so in the standard Common Lisp version of the language. In Common Lisp, the Read function is table driven. That means that by substituting a different read table, the reader can parse a language with a different syntax. The implication of this is that Lisp is not only a language, it is a framework for building new languages.

This has been a long story and you may be feeling a little lost by now but the point is that Lisp is exactly the kind of substrate upon which EDI can most easily be built. There are many modern computer languages that implement many, if not most, of the features of Lisp. The point is that Lisp implemented them first and best.

The idea that the structure of a Lisp program is similar to its syntax, a property called homoiconicity by the way, is at the heart of its power and responsible for its longevity. It also make it the prime candidate for building the environment in which EDI will emerge.

Update on Digital Super-Intelligence

One of my tech heroes, Ray Kurtzweil, has long been predicting the Singularity, that is, the point at which digital intelligence surpasses human intelligence. In an interview at a conference on Exponential Finance he discussed his views on preventing what he called existential threats. His position seems to be that since our generation has dealt with the nuclear existential threat we at least have an example that it can be done.

While I agree, to an extent, and applaud his optimism, I still think that the digital super-intelligence existential threat is different in magnitude if not in kind. As I said In my prior post, we need to raise awareness of the danger and actively pursue making contingency plans. We should assume that it is liable to happen and work to reduce the probability that it will while also thinking of ways to mitigate the danger when it does. It will do no good to ban AI research and think that we have dealt with the problem.

It Lives!

I watched the Carpool Karaoke episode on The Late Late Show the night before last. James Cordon had Lin-Manuel Miranda, Audra McDonald, Jesse Tyler Ferguson and Jane Krakowski in the car singing songs from Hamilton, Rent and Les Misérables. It was incredible.

I am not a big fan of rap music. In the case of Hamilton though it is absolutely brilliant. Perhaps the things that put me off of rap was the gangsta topics many rap songs focus on. I have no experience of the things they are talking about and I don’t like the glorification of violence that it seems to advocate. Hamilton on the other hand is a literate exploration of the life and times of one of the founding fathers of our country from a perspective rarely seen in main stream history books.

I have long been a fan of Broadway musicals but I felt they were in decline in recent years. Rent and Les Misérables were of course notable exceptions. But I think Hamilton is the tipping point. It has brought relevance back to the musical. Coming from a theatrical family, my parents were both Speech and English teachers that produced high school plays, it warms my heart to see the revival of the live theater experience as an integral part of our American culture.

More on Daily Blogging

I posted a short blog post last night, making public my commitment to daily blogging. I don’t intend to write long essays. I don’t even intend that they should all be on a particular topic. I just think that they should reflect things that I am interested in and that I have thought about. I do think it should be something more than just a link blog though.

The Martian (a micro-review)

I watched The Martian on TV last night. I missed it when it was in the theaters. It was gorgeous on the big screen, I am sure, but finances and other commitments conspired to keep me from seeing it there. It was a rare thing, a film that captured the spirit and the patina of the original book. Sure, there were things left out but it inspired most of the same feelings that the book did. Now that I’ve seen the movie I understand that much of the renewed enthusiasm for Mars missions are traceable to this movie. I can never thank Riddley Scott enough for sharing this marvelous vision of a possible near future with us. I suspect the actual Mars missions will look somewhat different from what we saw in this movie but their very existence may be thanks to it.

Ethical Concerns About Digital Super-Intelligence (AI)

I saw a TED talk by Nick Bostrum the other day that has haunted me. It was about the impending emergence of a digital super-intelligence. This is often called Artificial Intelligence but since we don’t have a rigorous definition of intelligence or an objective criteria for determining what constitutes a natural intelligence I prefer the term digital super-intelligence.

The problem is, we are setting up the conditions for this super-intelligence to emerge but we will have virtually no control over it when it does. There has been talk of developing guidelines for ensuring that it will share our values but I can’t see how that is possible, especially since there are so many different sets of values and we can’t seem to come to any agreement on which of them are fundamental and which are secondary.

I don’t have any answers yet. I don’t know if I ever will. But I am sincerely concerned that we are going to let this genie out of the bottle and things will change extremely fast and not necessarily for the benefit of mankind. I think this is potentially much more dangerous than experimenting with creating human beings from scratch in the lab. And make no mistake, I’m not advocating that either.

What is clear is that we need to focus more intensely on the ethics of the science that we are doing. The catch-22 is that we can’t just arbitrarily ban these activities. Someone is going to pursue them whether they are banned or not. The best thing we can do is entice our sharpest minds to think about these difficult issues and try to come up with some viable plan of action when these digital super-intelligences emerge from the computer science laboratories as they most certainly will.

Turning Over Another New Leaf

I should be working on the book tonight but I’m procrastinating. I will put some time in on it after I write this post. I was inspired today to commit to blogging daily. I’ve even figured out a way that I can make it happen. I will spend some of the time in the morning when I’m writing my 1000 words to write a blog post. That will leave me some of my words for journal type stuff and the rest for a blog post. That means the blog posts will be around 500-750 words. That’s not a bad length for a blog post. See you tomorrow and good night.