# We Built a Programming Language… right?

Recently, Mego, quartata, CᴏɴᴏʀO'Bʀɪᴇɴ and I (VoteToClose) (building upon the work of ProgramFOX et al.) built a chat bot named Data that can run code for several different esoteric languages (and maybe, in the future, other languages). Now, after a conversation with overactor, one of the devs for SE-Chatbot, this was asked:

Could this bot with all its commands be considered a programming language?

And my immediate reaction was "Of course!" However, I wanted to ask on Meta to be sure.

Do you think that we can use this as a programming languages?

• I'm not familiar with the chatbot isn't the chatbot as much a language as a command line? – Downgoat Feb 4 '16 at 15:38
• Pretty much. We also consider Bash a programming language though. – Dennis Feb 4 '16 at 15:39
• Is the source code freely available and easily runnable (i.e. locally, without having to use a chatroom)? – Doorknob Feb 4 '16 at 17:29
• @Doorknob It does need a chatroom. The source code can be found here. – Addison Crump Feb 4 '16 at 20:31
• @Doorknob Actually it can be run locally with some minor modifications. It has an interface for running commands from the command line where it is hosted, so by simply disabling the code that connects to a chat room, it becomes a command-line tool. – Mego Feb 4 '16 at 21:13
• @Mego But it pulls from TIO, which means you might as well run it from a chatroom. – Addison Crump Feb 4 '16 at 21:19
• @VoteToClose It could also be just as easily modified to run all code locally. – Mego Feb 4 '16 at 21:21
• @Mego I shouldn't have to dig into the source code of your "language" just to test answers "written" in it. – Doorknob Feb 4 '16 at 21:40
• @Doorknob Which is why, if it's decided that Data is a valid programming language, we will create a standalone version for testing. – Mego Feb 4 '16 at 21:41
• I would say "the ability to run completely locally (without the end user needing to modify the source code himself)" should be a requirement. Otherwise, behavior of Data is subject to the online implementations of the other languages, which will not be consistent over time. – PhiNotPi Feb 5 '16 at 3:54
• How to use Data? – Akangka Feb 5 '16 at 7:25
• @ChristianIrwan Go to this chatroom and type in !eval. – Addison Crump Feb 5 '16 at 7:40
• @PhiNotPi As far as I know there is no requirement in PPCG's definition of language that requires it to be consistent over time. Indeed, many languages commonly used here are constantly changing. I think if you believe this should be a requirement, you ought to make a meta thread about it (using an argument other than the consistency one so that I don't automatically downvote it). – quintopia Feb 9 '16 at 19:10

# Yes.

According to the consensus on programming languages:

1. Support a representation of natural numbers and of tuples. (We're talking about languages rather than implementations, so we will leave to one side the issue of type widths).

Check.

1. Be able either to transform inputs into outputs (transformational model) or to distinguish an "accepted" input from a "rejected" input (decision model).

Still check.

1. Be able to take two natural numbers and add them. In the transformational model, this means transforming an input tuple of two numbers into an output which correctly represents their sum. In the decision model this means deciding whether an input contains the representation of a tuple of three natural numbers such that the third is the sum of the first two.

Big check.

1. Be able to take a natural number and say whether or not it is a prime. In the transformational model this means transforming a natural number into the representation of 0 or 1 according to whether it is a composite or a prime number. In the decision model it means accepting precisely those inputs which represent a prime.

Check.

Of course, questions still need to be asked: "What defines input for this language", "Is it a full functioning program", "Is chat a command line (and then how do we count bytes/flags)", etc, but we can define those later if a consensus on this is reached.

• Next, if bots can be considered programming languages, can humans? I can meet all those criteria. :D – mbomb007 Feb 11 '16 at 19:04
• @mbomb007 Eh, not really. You're not exactly "easily distributed", neither can you "run in any user's home computer". – Addison Crump Feb 11 '16 at 19:32
• @VoteToClose Neither of those objections are raised in the four points you make in the post ;) – Geobits Feb 11 '16 at 19:34
• @Geobits Yeah, it was addressed in comments on the question; we're working on that, actually. – Addison Crump Feb 11 '16 at 19:37
• @VoteToClose I am, too, easily distributed. But please don't. And I certain could run ON any user's computer. :D But anyway, I'm also my own IDE and interpreter, and I perform more operations per second than any user's computer. I'll beat every computer at image and speech recognition. – mbomb007 Feb 11 '16 at 20:26