On Wed, 22 Dec 2004, pix wrote:
On Tue, Dec 21, 2004 at 04:02:20PM -0800, pun chik wrote:
yesterday i was in the middle of a discussion about if pd is or not a programming language. Is pd a programming language?
you have data (floats, ints, symbols, tables, the data stuff), and control flow (select, route, until, spigot). i'm pretty sure you can implement a turing machine simulator with it (at least if you use the data stuff, and possibly even without).
A Turing machine can be quite trivially implemented using one array for containing the tape data, and two numboxes, one to indicate the machine state and one for the current tape position. Since the tape can be used in arbitrary bidirectional patterns, I guess I would make the machine start at the middle of an empty array, and then whenever the machine reaches the end of the tape, I extend that side of the array.
the discussion only gets tricky if the person you are arguing with is holding on to some computationally irrelevant conception of what a programming language infact is, in which case the point of the disagreement lies elsewhere.
The definitions I tend to use in practice are that: a language is the set of all (finite) sequences of characters, and rules to decide which ones are valid, and rules that define some meaning for each valid sequence; alternatively, a language is anything that is equivalent to this first definition of language; and then a programming language is any language that is Turing-complete.
For example, HTML is clearly a language but it's not Turing-complete until you add JavaScript or Flash or XSLT.
Whether a "visual language" fits the (second) definition of a language depends on how much is actually being communicated visually, not counting whatever is just an impression of communication. E.g. you can't call abstract painting a language if there is no common ground of interpretation. The PureData language communicates something because someone can make (him|her)self understood by the PureData program through those visual signs.
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju