[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Low-level vs. High-level programming (was My First Computer)



"Randy McLaughlin" <randy@nospam.com> wrote in message
news:tSRLa.1088$wG.325@fe04.atl2.webusenet.com...
> "computer programming languages (like C) must be able to express
> computation"  I have never heard anything so silly, there is no definition
> that shows that.

I gave you that definition several days ago.  You may have forgotten it.
Allow me to restate it.

A "computer programming language" is as follows:
 - defined (formal) syntax
 - defined (formal) semantics
 - Turing-complete

After some reflection, I'm probably willing to loosen the Turing equivalence
to that of a finite state machine or push-down automata.  But just because
those have weaker definitions of computation than Turing machines doesn't
mean that I'm willing to forego *all* computation and admit HTML and other
markup languages into what I think of as 'computer programming languages'.
I've used a few hardware description languages that aren't Turing-complete
but are pretty darned handy.

You can disagree if you like, but in my opinion if a language doesn't allow
one to express *some* kind of computation, then it's hardly a computer
programming language.  That's why we call them computers, right?  Because
they compute.

In a nutshell:
  - if it can't compute, then it isn't a computer
  - if it can't express computation, then is isn't a computer programming
language

Kelly