Programming Languages – Math Theory Behind Language Design

language-designprogramming-languages

I'm trying to understand if a programming languages design is built on some a theoretical model.
I came across few links that was describing Programming Language Theory, Lambda Calculus, Formal Languages and Turing machine.

I got lost in all that theory, what I understood from all that is that (any ..?) programming language is built on lambda calculus, that boils down to few language constructs.

  1. is my understanding correct?
  2. are there any models other than lambda calculus?
  3. if the languages shares the same model, can we use that to convert a source code from one language to the other?

Best Answer

You're partially right.

Lambda calculus is base for understanding how functional programming WORK.

Turing machine is base for understanding how imperative programming WORK.

Formal languages are ways of WRITING programms.

Lambda calculus and Turing machine are totally different, but both in some way do the same as sentence "if you add two and three, you get five" for math.

Formal languages are ways of saying "2+2 means 'add two and two'".

PS. @SK-logic: yes, you are right. This above is simplification, realy close to being false. Still, answer was written for complete newbie in topic, it was intended to give him SLIGHTEST idea, so he can choose what is more interesting for him, and where he want to start learning.

Related Topic