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 -- https://mail.python.org/mailman/listinfo/python-list