2

What was the first turing-complete language? Know about the first machines and computers, but not the programming language.

fade2black
  • 9,827
  • 2
  • 24
  • 36
MSnts
  • 23
  • 2
  • 2
    Would you consider the (untyped) lambda calculus as a programming language? It is Turing complete, and was defined in 1936 -- the Turing machine is also from 1936. – chi Aug 25 '17 at 18:54

1 Answers1

1

Why not read this Wikipedia article.

The first programming languages designed to communicate instructions to a computer were written in the 1950s. An early high-level programming language to be designed for a computer was Plankalkül, developed by the Germans for Z1 by Konrad Zuse between 1943 and 1945. However, it was not implemented until 1998 and 2000.

Also, I think that it is wrong to consider a programming language as such to be Turing Complete since the concept of Turing completeness applies to a computational model, not to a programming language itself. For example, it is Turing machine, RAM machine, or Post systems that is Turing complete and not a set instructions or programming languages used to program them.

If our real life computers had infinite memory we could consider them a Turing machine equivalent to our abstract model we use in CS and Math, meaning that it is not programming languages or instructions sets used to program CPU that makes real life computers not equivalent to the abstract model.

fade2black
  • 9,827
  • 2
  • 24
  • 36
  • Are these languages Turing-complete? Quote does not give info about that. – rus9384 Aug 25 '17 at 18:53
  • @rus9384 A programming language may be considered Turing Complete if it has a conditional jump and can read from/write to memory. All high-level programming languages are Turing Complete. These instructions are enough to simulate a Turing machine. – fade2black Aug 25 '17 at 19:05
  • I've read in this thread: https://cs.stackexchange.com/questions/60965/is-c-actually-turing-complete That C is not Turing-Complete, but from what I've read, Turig-Completeness is defined similarly as you also say. C can do this operations but doesn't have the infinite tape property, and I doubt any programming language lacks of this also. I believe/Think C is Turing-Complete, what do you say? . Thanks for the answer, I'm researching more on it. – MSnts Aug 25 '17 at 20:09
  • @MSnts In some sense, C isn't Turing-complete in our (physical) universe, simply because Turing-completeness demand arbitrarily much space, which we cannot provide. However, for every other practical purposes, we consider C a Turing-complete language, just as we do Python, Lisp, Fortran, etc. – Pål GD Aug 25 '17 at 20:19
  • 1
    @fade2black The very first sentence of the Wikipedia link you give contradicts you. A programming language equipped with its operational semantics seems to be enough of a computational model for this purpose to me. Do you view Turing completeness as not applying to the lambda calculus? – Derek Elkins left SE Aug 25 '17 at 21:04
  • 2
    @PålGD There's a distinction between an implementation of a programming language on a particular computer architecture (which almost always operates in finite state, and hence is not Turing-complete), and the programming language as a mathematical construct. A programming language can be Turing-complete. A concrete implementation (a particular compiler or interpreter running on a particular system) is a finite approximation of the language. See my answer on the thread MSnts cited for a discussion of C. – Gilles 'SO- stop being evil' Aug 25 '17 at 21:16
  • @fade2black It is not enough to have conditional jump to be Turing-complete. You also need some way of increasing memory usage dynamically (if you only have finite memory, you have a finite-state machine), and that way needs to be powerful enough (if memory usage is too predictable from the input then you may be limited to computing primitive recursive functions). – Gilles 'SO- stop being evil' Aug 25 '17 at 21:19
  • @Gilles I agree with you regarding increasing memory usage dynamically in case, say, RAM, but do you we need it for a single tape infinite TM? – fade2black Aug 26 '17 at 13:53
  • @fade2black Yes. In the case of a Turing machine, the unbounded memory comes from the tape. – Gilles 'SO- stop being evil' Aug 26 '17 at 20:18