Re: Computers are systems not languages
On 24/02/2011, at 5:18 AM, alex wrote: Hi Andrew, Thanks for the illuminating response, On 22 February 2011 03:39, Andrew Walenstein walen...@ieee.org wrote: Even if you don't like these two arguments, surely most would admit that *one* of the primary purposes of good programming languages is human-human communication. In fact, this was an essential point of the title of Peter Naur's collection Computing: A Human Activity. In this narrow sense programming languages and natural languages are not incomparable. I hadn't read Peter Naur's work before, and am now very much enjoying what I can find. I've just got my hands on a copy of the collection you cite, and it includes the following: PROGRAMMING LANGUAGES ARE NOT LANGUAGES--WHY 'PROGRAMMING LANGUAGE' IS A MISLEADING DESIGNATION http://www.naur.com/comp/c8-4.html This seems very relevant to this discussion! Although Naur thinks computing is a human activity, Naur doesn't appear to think that programming languages are languages. This is the same Naur who wrote I cannot help expressing a feeling of awkwardness at the use of the word language in the context programming language. I definitely feel that if taken literally this habit of expression is misleading. As a first step to subdue our feeling of guilt at this misuse of the term, perhaps we can remind ourselves that logicians and mathematicians used the word for specialized notations long before we did, already in the 1930's, and perhaps even before. ... Several of the social aspects of mathematics and natural languages show a meaningful analogy with similar aspects of programming languages. It therefore makes sense to extrapolate the analogy to further such aspects. in a paper devoted to pursuing some of those analogies: Programming Languages, Natural Languages, and Mathematics, Peter Naur, CACM 18(12) December 1975. After a quick read his argument seems to be that grammar rules are not important to language, but that speech is the primary form of language, and that speech is ungrammatical. Language then is not a thing that can be specified, but rather something you do, by speaking. He asserts that dictionaries and the like are unimportant, and people demonstrably don't understand each other's utterances anyway, at least not very far. That is, that meaning is a personal matter. Someone who uses language to tell us something is by his actions *denying* that meaning is a personal matter, for if it were so, he might as well expect the same outcome from grunting and scratching his chest. -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England Wales and a charity registered in Scotland (SC 038302).
Re: Computers are systems not languages
On 22/02/2011, at 4:39 PM, Andrew Walenstein wrote: http://www-2.cs.cmu.edu/~dst/DeCSS/Gallery/decss-haiku.txt This page provides Haiku versions of the DeCSS DVD decryption algorithm. The DeCSS code was put on t-shirts and into dramatic reading and into Haiku. Many people did this because the algorithm was being suppressed, and the link above can be seen as expression of political discourse through the use of programming languages. It includes these verses: Programmers' art as that of natural scientists is to be precise, complete in every detail of description, not leaving things to chance. Reader, see how yet technical communicants deserve free speech rights; see how numbers, rules, patterns, languages you don't yourself speak yet, still should in law be protected from suppression, called valuable speech! This reminds us that there may be questions of law and public policy tied up in the question of whether programming notations are 'languages' and programs are 'speech'. The topic is neither philosophically uninteresting, nor linguistically uninteresting, nor practically unimportant. Oh, one other similarity between natural languages and programming notations which belongs under 'quasi-linguistic communication systems': - it is possible to use one of these systems to describe a denumerable set of 'utterances' in another such system, possibly even the same system. -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England Wales and a charity registered in Scotland (SC 038302).
Re: Computers are systems not languages
Hi Richard, This adds a lot of clarity, thanks. On 18 February 2011 00:27, Richard O'Keefe o...@cs.otago.ac.nz wrote: On 18/02/2011, at 3:55 AM, alex wrote: Ian Bogost starts off by arguing that learning a programming language shouldn't meet a curricular requirement for learning a natural language. That's fair enough. It's fair enough not because of what a programming language *is* (or isn't) but what it can (or can't) *do*, and that is to exchange ordinary human thoughts with other people. I think it's a fair argument, I'm not sure if I agree or not though. Learning either a natural or a programming language is a huge commitment, and I don't think it would normally be feasible to do both while also doing a graduate course that isn't directly related. Doing either could have a dramatic impact on someone's career/life, so I think I'd support letting a student choose to do one or the other on that basis. the ability to translate natural languages doesn't really translate (as it were) to computer languages It clearly does. I meant it was clear that you could translate between two programming languages. Translating from natural to programming languages is less clear, but I'd still argue for it. I would have said that it clearly doesn't. You *can* translate Yesterday Sue hoped that Bill's surviving the crash would not mean her exposure as the criminal who had repeatedly taken the school apples, but I fear that she will be disappointed at tomorrow's meeting. into other human languages, even Esperanto or Klingon (if Klingon has a word for 'apple' or 'fear' (:-)). But you can't translate it into Haskell or Ada. I disagree. You could literally model Sue, Bill, their attributes and events over time quite straightforwardly. The code would not contain a detailed definition of what an apple, or crime is, but then neither does the syntax of English. A human reader of the code would get the gist, however. This would be use English words for symbolic reference, but that is because there is no point in defining a whole new lexicon mapped to human experience, not because it is not theoretically possible, in fact your example of invented language proves it is possible. Alternatively you could take a different approach and focus on the modelling of expectation and dread, perhaps in the musical domain. For that you would in effect be modelling some aspect of human perception within the computer language. You *can* translate a sentence like that into a mathematically defined logical form which can be represented inside a computer and to some extent manipulated by a computer. But I do not see how the result can be usefully called a 'program'. I suppose it would be a declarative program which doesn't describe an procedure, but a situation. It could be useful, for example in generating works of art. I think it may be more useful to ask in what ways are programming notations like, and in what ways unlike, natural languages. Or perhaps where are they along a set of continuums. Has anyone applied the CDN to English? alex -- http://yaxu.org/ -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England Wales and a charity registered in Scotland (SC 038302).
Re: Computers are systems not languages
It does sound as though there's a category confusion there. There's clearly a range of things that have a strong family resemblance. We have Spoken human languages. Signed human languages. Written human languages. Invented human languages like Esperanto and lojban. Written notations like knitting patterns. Symbolic drawn notations like music. Topologically faithful drawn notations like wiring and plumbing diagrams, Algorithms can be expressed in most of these: you can recite Euclid's algorithm by voice, you can write it down in Greek, you can use Dijkstra's notation, or you can use a visual programming language. If your programming language is a stylised subset of English like Cobol or AppleScript or some data base query languages -- wasn't there one called Natural? -- does that make it language? And if you translate it to a flowchart, does that make it not language? Back before the Loglan/lojban split, Loglan was designed to be easy to parse by computer. Does that make it NOT a human language? But people do write it and speak it to do pretty much everything people do with English. Programming languages are extremely limited compared with natural languages. But then, using a Bliss board provides you with a very limited communication channel, even though Blissymbolics was originally invented to be a universal written language. Does that mean that someone conveying their needs by pointing to symbols on a Bliss board is using language, or not? On 18/02/2011, at 3:55 AM, alex wrote: Ian Bogost starts off by arguing that learning a programming language shouldn't meet a curricular requirement for learning a natural language. That's fair enough. It's fair enough not because of what a programming language *is* (or isn't) but what it can (or can't) *do*, and that is to exchange ordinary human thoughts with other people. the ability to translate natural languages doesn't really translate (as it were) to computer languages It clearly does. I would have said that it clearly doesn't. You *can* translate Yesterday Sue hoped that Bill's surviving the crash would not mean her exposure as the criminal who had repeatedly taken the school apples, but I fear that she will be disappointed at tomorrow's meeting. into other human languages, even Esperanto or Klingon (if Klingon has a word for 'apple' or 'fear' (:-)). But you can't translate it into Haskell or Ada. Note that it's not just references to the body and its environment, there's tense/mood/aspect as well. You *can* translate a sentence like that into a mathematically defined logical form which can be represented inside a computer and to some extent manipulated by a computer. But I do not see how the result can be usefully called a 'program'. I think it may be more useful to ask in what ways are programming notations like, and in what ways unlike, natural languages. Are identifiers in programs more like nouns or pronouns, for example? -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England Wales and a charity registered in Scotland (SC 038302).