Building a new proper left-to-right executing programming language
-
You can already read this right to left. "=" is read as "is assigned to" not "equals". duh!
x = a + 12
Could be read as
12 added to a is assigned to x
Or left to right:
x is assigned a added to 12
Is your language going to support order of operations that follow neither direction?
englebart wrote:
x is assigned a added to 12
You wrote in English. It is like passive voice. Instead of "I have done this" you are writing "It has been done by me". If we write
x = a + 12
, it can be understood like this: (1) create a variable "x" (allocate memory), (2) add value of the variable "a" to 12 (store the sum somewhere in memory), (3) store the sum in variable "x". If we writea + 12 = x
(ORa + 12 -> x
), it can be understood like this: (1) add the value of variable "a" to 12 (store the sum somewhere in memory), (3) Create a variable "x" (allocate memory), (4) store the sum in variable "x". In the first approach, it is like - the system is allocating memory first without knowing the result. In the second approach, it is like - the system is first determining the result and then allocating memory according to the result. This second approach looks more logical way of executing and writing code. I think, the 1st approach is suitable to programming languages of .NET, C based, Java, etc. where variables needed to be defined before assigning values; while the 2nd approach is suitable for languages like JavaScript, PHP, etc. where variables can be defined/initialized anywhere in the code. -
Or use a good one, already invented. POP-2 - Wikipedia[^] With lambdas, managed mem, closures (full and partial), user-defined operators, user-defined setter functions, functions with multiple results, incremental compiler ... And with alternative ltr syntaxes: `f(a,b) ->x ->y` or `a; b.f() ->x ->y`
Wow! That's what I am talking about. It seems very much similar to my idea of a proper logical programming language. Thank you. :thumbsup:
-
Most of spoken languages are written LtR (Left-to-Right) but Maths, the number language, is actually written RtL because the decimal numbers are Arabic numerals. (I know, most will get surprised, but it's true about Maths RtL direction.) But somehow the RtL and LtR languages got mixed up. Instead of writing
x = a + 12
how about changing it to
a + 12 = x
So, what are your views on creating a new programming language which follows proper LtR execution? Is there already such language? (Please, just don't remind me that there are already lots of programming languages (I know already) and I must not (try to) create one more. :) )
In mathematical language, right-to-left or left-to-right is inconsequential pertaining to an equal sign due to complete commutativity law of equivalence.