[ Question ]

Do we need a high-level programming language for AI and what it could be?

by avturchin1 min read6th Mar 20197 comments


Personal Blog

While reading S.Armstrong post with some pseudocode, I asked myself: Do we plan to have some high-level programming language for AI? Not LISP or Python, but something close to natural language, but still based on formal set of instruction, like:

Go to shop.

Buy healthy food.

Bring it home in one hour.


If we will have such language, will it help in AI safety, as it could be less ambiguous than natural language?

UPDATED: I mean not the language needed to write first AI, but the language to give commands to the already existing AGI (when it appears).

New Answer
Ask Related Question
New Comment

3 Answers

My thoughts are similar to Paul's comment.

You might be interested in the difference between high-level languages and Domain Specific Languages (DSL). High-level languages are intended to be general purpose languages that abstract away some of the nitty gritty details of lower levels (C doesn't have to think about registers while assembly does, python doesn't have to think about memory management while C does). DSLs are languages specially designed for certain problem domains. Stan and nile are examples of DSLs for probabilistic programming and displaying graphics, respectively. You seem to be suggesting a DSL for AI as opposed to a generic higher-level language.

To generalize, it seems like DSLs and higher-level languages are useful to make doing something you already know how to do more intuitive/simple/straight-forward. Making AGI and AFI are things we don't know how to do. We could likely make a DSL that would allow you to think more fluently about existing AI concepts, and it's possible that might allow you to reach various insights quicker. But you still have to do the work.

4avturchin2yOk, it looks like there are two interpretations of my question. One is about which programming language is needed to create first AI. But this is not what I was asking. I assume that python will be enough. My question was about how to give commands to already existing AGI in the most efficient way (assuming that it is not so superintelligent that it can read my thoughts and extrapolate my wishes). E.g: 1. Go to Mars. 2. Explore if there is life there. 3. Send me back data in 1 years.


(Not actually serious, but if someone wants to try it...)

Any AI genie that can safely interpret wishes written in Arcanic should also be able to interpret English.

3 comments, sorted by Highlighting new comments since Today at 4:05 AM

I think it could be beneficial to have a simple and unambiguous pseudo-English for communicating with AI. Identify the most important use cases for the language and define sentence templates to cover those use cases. If something can be expressed using one of those templates, that should be the only correct way to express it. Have a compiler that verifies correctness, warns of common problems, suggests improvements, maybe even translates to/from English. Build an AI around the same use cases. It won't be truly general but maybe close enough to be useful until we get real AGI.

Whether it's worth the effort to do it or just an interesting idea is not something I'm qualified to answer.

Yes, I have intuition about something like this.

I am doing AI work (not neural nets) and I'm also a programming language aficionado. I've invented several special purpose languages and have implemented them. The role programming language might play in AI is something I have though about.

That all said, the place to start is the AI model. It only make sense to invent a programming language as an aid to humans to express designs using a chosen model. In short, you don't start with the language but the designs you would like to express. The purpose of a language is solely to make designs easier to read and write by humans.