An Introduction to Programming Languages 
Author Message
 An Introduction to Programming Languages

Hi,

I have written an introductory survey of programming languages:
http://www.*-*-*.com/

I hope it will be useful - I would appreciate corrections and
comments.  I have tried to write something I would have found
useful a while ago, and I hope it will help others who are
starting to explore new languages.

(There's also a more conservatively formatted version at
http://www.*-*-*.com/
if people prefer/want to make copies).

Andrew
http://www.*-*-*.com/

Sent via Deja.com http://www.*-*-*.com/
Share what you know. Learn what you don't.



Fri, 08 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:
> I have written an introductory survey of programming languages:      
> http://www.*-*-*.com/

You have written a really fascinating paper and I have saved it
to disk for future reading and study.  Your document is a kind
of topology of the whole field of programming languages, chock
full of valuable tidbits which we neophytes might otherwise have
had to spend years accumulating from widely disparate sources.

Quote:
> I hope it will be useful - I would appreciate corrections and

Midway through, you mention the opposing US east coast and west
coast mentalities, and you misinform that MIT is on the West Coast,
but you were probably thinking of a programming bastion like
my alma mater Berkeley, or Stanford, or UCLA, etc., -- not MIT.

Quote:
> comments.  I have tried to write something I would have found
> useful a while ago, and I hope it will help others who are            
> starting to explore new languages.

In the same vein -- although I have long resisted making this
plea -- the time has come when as Mentifex/Mindmaker I/Arthur
must ask some outrageous favors from all to whom these present
tidings come.

The first noncommercially available AI, Mind.Forth, needs to
be taken apart, analyzed, enhanced, and ported to new languages.

Accordingly, if you are just beginning to learn to program,
and I know it sounds chauvinistic, but it is a once-in-two
millenniums coelestial convergence of Shakespearean nature:

            There is a tide in the affairs of men,
            Which, taken at the flood, leads on to fortune;
            Omitted, all the voyage of their life
            Is bound in shallows and in miseries.

Mind.Forth is looking for a few good minds.  Please inspect
http://www.*-*-*.com/ .{*filter*}ia.edu/classes/551/primer.txt --
A Beginner's Guide to Forth, by Julian V. Noble -- and learn
simultaneously both the newly {*filter*} AI language Forth and the
http://www.*-*-*.com/ #proglangs
target language of your choice for re-creating the Forthmind.

Quote:
> (There's also a more conservatively formatted version at
> http://www.*-*-*.com/
> if people prefer/want to make copies).
> Andrew
> http://www.*-*-*.com/



Fri, 08 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:

> Hi,
> I have written an introductory survey of programming languages:
> http://www.andrewcooke.free-online.co.uk/andrew/lang.html
> I hope it will be useful - I would appreciate corrections and
> comments.  I have tried to write something I would have found
> useful a while ago, and I hope it will help others who are
> starting to explore new languages.

It's a rather naive chat about languages you happen to know something
about. If you are serious about this, you do need to study the theory
and history of programming languages in a lot more depth.

A couple of points -

You use "declarative" where others would use "logic". The accepted meaning
of "declarative" in programming languages is as opposed to "imperative",
and includes both functional and logic languages.

When you wrote "commercial languages", I thought you were going to talk about
things like Cobol, but you actually talk about C. For a long time, C was
*not* a commercial language - its original user community was in academia.

Matthew Huntbach



Fri, 08 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

  Isaiah, ch. 28 v. 29

   This also cometh FORTH from the LORD of hosts, which is
   wonderful in counsel, and excellent in working.

GL
--
Paul W2SYF/4 Ft Lauderdale
"Heisenberg may have slept here... "
Leslie Paul Davies



Fri, 08 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages


Quote:

> It's a rather naive chat about languages you happen to know something
> about. If you are serious about this, you do need to study the theory
> and history of programming languages in a lot more depth.

I think I make it pretty clear that I am no expert, and that it's
not intended to be a great scholarly work.

Quote:
> You use "declarative" where others would use "logic". The accepted
meaning
> of "declarative" in programming languages is as opposed to
"imperative",
> and includes both functional and logic languages.

OK, I'll change that.  Also, the comemnt about MIT being on the west
coast is a bit embarassing if it's not (I'm English, but that's no
excuse...)

Quote:
> When you wrote "commercial languages", I thought you were going to
talk about
> things like Cobol, but you actually talk about C. For a long time, C
was
> *not* a commercial language - its original user community was in

academia.

I use that group to talk about languages that people like me use
to write commercial software.  Whatever the historical origins, I'm
sure people in that position don't feel they are using an academic
language.  But I'll add some qualifications.

Any other suggestions would be appreciated.  I didn't have a formal
education in computing and it's not likely I'll get one now, so the
only way I can "study in more depth" is if you give pointers and/or
point out errors.

Thanks,
Andrew

Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.



Fri, 08 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages


Quote:
>It's a rather naive chat about languages you happen to know something
>about. If you are serious about this, you do need to study the theory
>and history of programming languages in a lot more depth.

   On a sort of related note, are there any texts about how to design a
new language?  It's a pretty esoteric art, so I'm not surprised to not
find anything at Barnes and Noble, but I would also find it a little
surprising if those who practice the art haven't felt like writing down
their ruminations on what techniques/rules of thumb/whatever have been
successful.  

Lynn



Sat, 09 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:
>   On a sort of related note, are there any texts about how to design a
>new language?  It's a pretty esoteric art, so I'm not surprised to not
>find anything at Barnes and Noble, but I would also find it a little
>surprising if those who practice the art haven't felt like writing down
>their ruminations on what techniques/rules of thumb/whatever have been
>successful.

My favorite text in this area is "Programming Languages: A Grand Tour",
Computer Science Press, edited by Ellis Horowitz.

It contains articles by various authors, about various languages.

For instance, "On the Design of Programming Languages", by N. Wirth, and
"Hints on Programming Language Design", by C.A.R. Hoare.

Algol, Pascal, Lisp, CLU, Modula, Ada, fortran, and C are some of the
languages covered.

Note that many compiler texts also mention various issues and alternatives
in programming language design.  My favorite is P.D. Terry's "Programming
Language Translation" and "Compilers and Compiler Generators". Both have
some interesting tidbits about language design scattered throughout the
text. Though out of print, the second title is available directly from the
author (loose-leaf format) for a small fee.  See
http://cs.ru.ac.za/homes/cspt/compbook.htm if you are interested.

The famous "Dragon Book" as well as "Crafting a Compiler", and "The Theory
and Practice of Compiler Writing" all contain various notes about design
issues.

Two interesting web references I have found are:

Reviews of existing programming languages at:
http://www.tunes.org/Review/Languages.html

and "Designing a better scripting language" at
http://www.geocities.com/SiliconValley/Lab/6888/langopts.htm



Sat, 09 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:

>    On a sort of related note, are there any texts about how to design a
> new language?  It's a pretty esoteric art, so I'm not surprised to not
> find anything at Barnes and Noble, but I would also find it a little
> surprising if those who practice the art haven't felt like writing down
> their ruminations on what techniques/rules of thumb/whatever have been
> successful.  

For a clue about why nobody's written a book about it, you might read the
introduction to the chapter titled "How the Language Got its Spots" in
_Systems Programming with Modula-3_.  It boils down to this:  There is no
known good way to design a programming language.  There are lots of
principles to follow, but it's not clear how turn those principles into a
language specification.

Want proof?  How about some supporting evidence, instead.  Consider that
languages as different as Ada, Common LISP, Erlang, and Oberon that ALL
have, as a basic premise, that a language design should help programmers
not produce defective programs.  You'd think that, having a unifying goal
(and it's not the only one) would mean that the languages are more-or-less
similar, but it's not true.  Instead, designers tend to design languages
that are more-or-less like other languages where the more-or-less comes in
because something is considered deficient in the base language.
--

Brokersys  +281-895-8101   http://www.brokersys.com/
12703 Veterans Memorial #106, Houston, TX  77014, USA



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages


Quote:

>>    On a sort of related note, are there any texts about how to design a
>> new language?  It's a pretty esoteric art, so I'm not surprised to not

>For a clue about why nobody's written a book about it, you might read the
>introduction to the chapter titled "How the Language Got its Spots" in
>_Systems Programming with Modula-3_.  It boils down to this:  There is no
>known good way to design a programming language.  There are lots of
>principles to follow, but it's not clear how turn those principles into a
>language specification.

    This was pretty much my guess, which is why I called it an art and
not a science.  Still, it seems like designers might have some useful
tidbits from their own experience about what has worked and what hasn't.
   Maybe those Human-Computer Interaction people could do something
useful for a change ;-) and research the area.

Lynn



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:



> >It's a rather naive chat about languages you happen to know something
> >about. If you are serious about this, you do need to study the theory
> >and history of programming languages in a lot more depth.
>    On a sort of related note, are there any texts about how to design a
> new language?  It's a pretty esoteric art, so I'm not surprised to not
> find anything at Barnes and Noble, but I would also find it a little
> surprising if those who practice the art haven't felt like writing down
> their ruminations on what techniques/rules of thumb/whatever have been
> successful.  

If you need someone else to tell you how to design a new language, then you
don't have a new language worth designing.

Sorry, to put it so harshly, but there really are so many programming
languages around that there's absolutely no point in designing a new one
which while maybe no worse than others is no better. A new language would
only be worthwhile if it really does contribute something no other language
provides - a completely different programming paradigm. If you've got that
far, and have enough knowledge of existing programming languages to be sure
what you have is new and worthwhile, you're not going to need a little book
to tell you about it. You will have already read hundreds of books and papers
on programming languages.

Matthew Huntbach



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:

> >   On a sort of related note, are there any texts about how to design a
> >new language?  
> My favorite text in this area is "Programming Languages: A Grand Tour",
> Computer Science Press, edited by Ellis Horowitz.

[...]

Quote:
> Algol, Pascal, Lisp, CLU, Modula, Ada, Fortran, and C are some of the
> languages covered.

In Computer Science terms, that's ancient history. It represents the state
of the art before the object-oriented revolution, and anyone who designs a
new language in ignorance of the insights that have been gained through the
development of object-oriented programming is really engaging in a pointless
exercise.

Apart from that, there have been huge developments, for example, in the
world of functional programming since Lisp was first developed. There are
whole books and journals on functional programming. To read about Lisp
but to ignore all these would be stupid.

Matthew Huntbach



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages


Quote:
>If you need someone else to tell you how to design a new language, then you
>don't have a new language worth designing.

>Sorry, to put it so harshly, but there really are so many programming
>languages around that there's absolutely no point in designing a new one
>which while maybe no worse than others is no better. A new language would
>only be worthwhile if it really does contribute something no other language
>provides - a completely different programming paradigm. If you've got that
>far, and have enough knowledge of existing programming languages to be sure
>what you have is new and worthwhile, you're not going to need a little book
>to tell you about it. You will have already read hundreds of books and papers
>on programming languages.

   You seem to be thinking of computational features rather than what
I'm interested in - usability.  That's what the question is about.  And
whether there is a good source on where to find reflections of language
designers.  Your personal preferences are really irrelevant to this
point.

Lynn



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:



> >If you need someone else to tell you how to design a new language, then you
> >don't have a new language worth designing.

> >Sorry, to put it so harshly, but there really are so many programming
> >languages around that there's absolutely no point in designing a new one
> >which while maybe no worse than others is no better. A new language would
> >only be worthwhile if it really does contribute something no other language
> >provides - a completely different programming paradigm. If you've got that
> >far, and have enough knowledge of existing programming languages to be sure
> >what you have is new and worthwhile, you're not going to need a little book
> >to tell you about it. You will have already read hundreds of books and papers
> >on programming languages.
>    You seem to be thinking of computational features rather than what
> I'm interested in - usability.  That's what the question is about.  And
> whether there is a good source on where to find reflections of language
> designers.  Your personal preferences are really irrelevant to this
> point.

I can't see anything in what I wrote above where I mention my personal
preferences in languages. Neither can I see anything where I mention
computational features as opposed to usability. All I'm suggesting is that
anyone who wants to design a serious new language should have a lot of
knowledge about existing languages, and some definite ideas on what would
be in the new language. The knowledge may well be on the usability of
existing languages, and the ideas may be based in ideas about what makes
programming languages usable.

I'm just urging caution - a *lot* of work has been done on program language
design, and before attempting to design a new one I think someone should
be familiar with that work. Simple reading one introductory book on the
subject would not be enough - there are whole conferences on the subject
of programming languages. If you're not familiar with all that, you're very
likely just to be reinventing the wheel.

Matthew Huntbach



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:

> Hi,

> I have written an introductory survey of programming languages:
> http://www.andrewcooke.free-online.co.uk/andrew/lang.html

> I hope it will be useful - I would appreciate corrections and
> comments.  I have tried to write something I would have found
> useful a while ago, and I hope it will help others who are
> starting to explore new languages.

One male in seven is RG color blind and can't read much of this
document. If you are RG blind red is grey generaly close to black
while green is grey generally close to white. The people who
started the computer revolution are now have aging eyes and need
larger type.

I'm sorry that I must end my comments there but when you fix those
problems I'll read on.



Sun, 10 Feb 2002 03:00:00 GMT  
 An Introduction to Programming Languages

Quote:

>   You seem to be thinking of computational features rather than what
>I'm interested in - usability.  That's what the question is about.  And
>whether there is a good source on where to find reflections of language
>designers.  Your personal preferences are really irrelevant to this
>point.

You may be interested in looking at our survey of usability issues in the
design of programming languages for beginners. Most of the items are not
firsthand relections by the language designers, and issues that are unique to
expert programmers are largely ignored. Nonetheless, I think that this survey
is a useful tool for anyone who is interested in language design:
        http://www.cs.cmu.edu/~pane/cmu-cs-96-132.html

This survey, and related studies about the usability of programming languages,
are products of our Natural Programming project, and part of my thesis
research. Our website has an overview of the project and pointers to some
additional papers:
        http://www.cs.cmu.edu/~NatProg/

Comments would be greatly appreciated.

John Pane
--



Sun, 10 Feb 2002 03:00:00 GMT  
 
 [ 90 post ]  Go to page: [1] [2] [3] [4] [5] [6] [7]

 Relevant Pages 

1. Language Introduction

2. languages which allow the introduction of new operators

3. Northern Virginia - Introduction To Smalltalk With Extreme Programming (XP) Training

4. Introduction to object-oriented programming?

5. Introduction object-oriented programming

6. nr of divisions in Cobol-program and year of introduction (quiz)

7. Short Steps Toward Generic Programming: Introduction

8. Good introduction to functional programming with Python?

9. S: Introduction to FORTRAN Programming

10. Introduction to logic programming

11. Introduction to Programming in Fortran 95

 

 
Powered by phpBB® Forum Software