Re: Computers are systems not languages

2011-02-23 Thread Richard O'Keefe

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

2011-02-22 Thread Richard O'Keefe
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

2011-02-18 Thread alex
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

2011-02-17 Thread Richard O'Keefe
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).