Assignment versus binding

Rustom Mody rustompmody at gmail.com
Tue Oct 4 07:11:40 EDT 2016


On Tuesday, October 4, 2016 at 2:05:31 PM UTC+5:30, Marko Rauhamaa wrote:
> dieter :
> > The concept "assignment" comes from an operational semantics based on
> > some form of "RAM" machine. Such a machine has storage cells where you
> > can assign values to which remain there until overridden with a new
> > value.
> >
> > The concept "binding" comes from a denotational semantics based on
> > some form of functions where parameter names are bound to values on
> > function "application" and do not change inside the function.
> 
> I wonder if such pure-bred functional programming languages exist. Lisp,
> Scheme and Python don't belong to them, at least. Object-oriented
> programming is not really possible without assignment. Even Scheme's
> "letrec" appeals to assignment semantics.
> 
> Ultimately, "binding" comes from outside the computer world. You talk
> about "bound variables" and "free variables". The concepts are needed to
> define the semantics of predicate logic and lambda calculus, for
> example. The C Preprocessor (cpp) comes close to the classic
> binding/transformation semantics of lambda calculus.
> 
> > Thus, at an appropriate level of abstraction, you can say that
> > "binding" and "assignment" are mostly equivalent.
> 
> Yes, but you sound more erudite if you talk about binding.

You are scorning something basic: Dont like 'binding'?
Ok what about stack-frames? Activation-records?

Just had a conversation with a colleague yesterday in which he was
complaining about how hard students find to learn this stuff because of
confusions like hardware-stack and language-stack getting mixed up.

If you dont like abstractions you will have too many details
And likely confused terminology



More information about the Python-list mailing list