Author Topic: The Imperium programming language - IPL  (Read 67724 times)

0 Members and 1 Guest are viewing this topic.

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14447
  • Country: fr
Re: A microcontroller programming language
« Reply #350 on: December 04, 2022, 08:42:44 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yeah this is fine and a no-brainer. I don't really see a point of trying to invent something else. It just works.
I think that was discussed in older threads too. I don't really like the "let" keyword and it's not for parsing or typing reasons. I personally think "let" is ill-used for normal assignment, as to me it should not be used to change values of objects but only to define them as an invariant - that's how it's usually used in maths.

So if I see something like:
Code: [Select]
let x = 1;
(...)
let x = x + 1;

It doesn't look right to me.
IMHO, if we want to find a use for a "let" keyword, it should preferably be used as a invariant definition. For instance (types are omitted):
Code: [Select]
x := 1;
let y = 2*x + 1;  // Could be ':=' here, open to discussion. Now 'y' holds '3'.
(...)
x := x + 1;  // When this assignment is completed, 'y = 2*x+1' still holds, so 'y' now holds '5'.

This feature looks pretty cool to me. The "let" keyword may not be the best either and could be replaced by something else more explicit, such as just "invariant".
« Last Edit: December 04, 2022, 08:57:15 pm by SiliconWizard »
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11622
  • Country: my
  • reassessing directives...
Re: A microcontroller programming language
« Reply #351 on: December 04, 2022, 09:39:27 pm »
how much time you "assign" vs time you "compare"? i think "assign" is much more used/typed... so assign using "=" and compare using "==" is much more sensible, that is C, and i dont have to keep pressing shift key so many times. https://www.jonathanshultsmd.com/blog/can-typing-cause-carpal-tunnel-syndrome
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9889
  • Country: us
Re: A microcontroller programming language
« Reply #352 on: December 05, 2022, 12:35:45 am »
I always thought that 'let' came from BASIC and was used to allow the interpreter to understand the type of the next statement.  It soon became optional if, in fact, it was ever actually required.

Not a fan...
 

Offline cfbsoftware

  • Regular Contributor
  • *
  • Posts: 116
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: A microcontroller programming language
« Reply #353 on: December 05, 2022, 01:21:42 am »
how much time you "assign" vs time you "compare"? i think "assign" is much more used/typed... so assign using "=" and compare using "==" is much more sensible
Indeed. My Oberon code base shows ':=' (assign) is used 5 times more than '=' (compare). However, another factor to consider is the number of times a program is read rather than written. In my case this is often many thousands of times more.

Beginner Pascal / Oberon programmers are taught to pronounce := as "becomes equals".  Then

Code: [Select]
IF a = b

is read as "If a equals b ..."

and

Code: [Select]
a := b
is read as "a becomes equal to b"

I still haven't got the hang of how to read "=" and "==" in my head without it being awkward.
Chris Burrows
CFB Software
https://www.astrobe.com
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4028
  • Country: nz
Re: A microcontroller programming language
« Reply #354 on: December 05, 2022, 05:24:05 am »
how much time you "assign" vs time you "compare"? i think "assign" is much more used/typed... so assign using "=" and compare using "==" is much more sensible, that is C, and i dont have to keep pressing shift key so many times. https://www.jonathanshultsmd.com/blog/can-typing-cause-carpal-tunnel-syndrome

On my keyboard I need to press shift for all of { } ( )  * + ~ ! % ^ & " < > ? all of which are used heavily in programs. I don't think a few more : is going to make any difference.

And probably less than 5% of a programmer's time is spent typing code. We are thinkers, not data entry operators.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11622
  • Country: my
  • reassessing directives...
Re: A microcontroller programming language
« Reply #355 on: December 05, 2022, 05:52:58 am »
However, another factor to consider is the number of times a program is read rather than written. In my case this is often many thousands of times more.
Irrelevant! As what we typed will not get translated/manifested into machine's language/code.. 'a = b' in c, and 'a := b' in pascal will end up as the same code in machine, interpreted/translated by c and pascal compiler respectively, compiler job is to bridge human friendly syntax into machine codes, the only difference is we have to type one more character in pascal..

I still haven't got the hang of how to read "=" and "==" in my head without it being awkward.
because your mother language (pascal) clouded your mind, make you harder to get around another language, esp a language as good a c :P... if we just follow a language's notion and grammar, rather than our heart desire.. there should be no problem.. but then just as you pick your fav language.. i also did and abandon pascal grammar for the above logical reason, and some other technical reasons.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #356 on: December 05, 2022, 12:47:01 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yeah this is fine and a no-brainer. I don't really see a point of trying to invent something else. It just works.
I think that was discussed in older threads too. I don't really like the "let" keyword and it's not for parsing or typing reasons. I personally think "let" is ill-used for normal assignment, as to me it should not be used to change values of objects but only to define them as an invariant - that's how it's usually used in maths.

So if I see something like:
Code: [Select]
let x = 1;
(...)
let x = x + 1;

It doesn't look right to me.
IMHO, if we want to find a use for a "let" keyword, it should preferably be used as a invariant definition. For instance (types are omitted):
Code: [Select]
x := 1;
let y = 2*x + 1;  // Could be ':=' here, open to discussion. Now 'y' holds '3'.
(...)
x := x + 1;  // When this assignment is completed, 'y = 2*x+1' still holds, so 'y' now holds '5'.

This feature looks pretty cool to me. The "let" keyword may not be the best either and could be replaced by something else more explicit, such as just "invariant".

I think that's true, its used that way in F# and some other functional languages, denoting a value and not a variable (well real functional languages don't have variables anyway).
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #357 on: December 05, 2022, 01:13:55 pm »
how much time you "assign" vs time you "compare"? i think "assign" is much more used/typed... so assign using "=" and compare using "==" is much more sensible
Indeed. My Oberon code base shows ':=' (assign) is used 5 times more than '=' (compare). However, another factor to consider is the number of times a program is read rather than written. In my case this is often many thousands of times more.

Beginner Pascal / Oberon programmers are taught to pronounce := as "becomes equals".  Then

Code: [Select]
IF a = b

is read as "If a equals b ..."

and

Code: [Select]
a := b
is read as "a becomes equal to b"

I still haven't got the hang of how to read "=" and "==" in my head without it being awkward.

Spare a thought for the Javascript developer who deals with = and == and === such is nature of modern grammars, frankly absurd in the cold light of day.
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 
The following users thanked this post: cfbsoftware

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #358 on: December 05, 2022, 01:22:52 pm »
A new language should also support UTF-8 source files too. Then the prospect of richer identifiers emerges and a huge range of interesting operators symbols too. Many modern languages are like this, C# and F# and many others allow Greek letters, the traditional division symbol and many others.
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19470
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: A microcontroller programming language
« Reply #359 on: December 05, 2022, 02:33:47 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.
« Last Edit: December 05, 2022, 02:47:21 pm by tggzzz »
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #360 on: December 05, 2022, 03:00:32 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.

Ahh APL, of which I have fond memories from my early 1980s mainframe days!

Here's a great sight for playing with APL, such an expressive language, here's the definition of a function to calculate the average of any number of integers:

Code: [Select]

avg ← { (+ / ⍵) ÷ ⍴ ⍵ }
 





« Last Edit: December 05, 2022, 03:08:34 pm by Sherlock Holmes »
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19470
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: A microcontroller programming language
« Reply #361 on: December 05, 2022, 03:57:38 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.

Ahh APL, of which I have fond memories from my early 1980s mainframe days!

Here's a great sight for playing with APL, such an expressive language, here's the definition of a function to calculate the average of any number of integers:

Code: [Select]

avg ← { (+ / ⍵) ÷ ⍴ ⍵ }
 

I wasn't thinking of APL, since I'm not a fan and it hasn't been very influential. By and large APL seems to be a mistake carried through to perfection. There is one thing that APL did get right, the difference between "-3" and "¯3". But that is "correcting" a standard quirk with maths notation that requires every generation to learn about that mistake.

No, I was thinking of a language that has been extremely influential and is better than quite a few of its successors. That language's syntax can be easily described with examples on a single sheet of A4 paper. Very few languages manage anything close.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 
The following users thanked this post: SiliconWizard

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #362 on: December 05, 2022, 04:13:23 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.

Ahh APL, of which I have fond memories from my early 1980s mainframe days!

Here's a great sight for playing with APL, such an expressive language, here's the definition of a function to calculate the average of any number of integers:

Code: [Select]

avg ← { (+ / ⍵) ÷ ⍴ ⍵ }
 

I wasn't thinking of APL, since I'm not a fan and it hasn't been very influential. By and large APL seems to be a mistake carried through to perfection. There is one thing that APL did get right, the difference between "-3" and "¯3". But that is "correcting" a standard quirk with maths notation that requires every generation to learn about that mistake.

Well given how unreceptive, even hostile, many can be, to new languages and language ideas, radical departures from convention, it's no surprise that APL isn't appreciated as much as it could be. Most people are very conservative even in this day and age, they don't like change generally, not if it means they have to change and programming languages are particularly prone to this.

The degree to which a language is "influential" isn't wholly attributable to the languages innate qualities, it is often more of a reflection of other factors. APL was not initially anything to even do with computers, it was an exercise in developing a notation for teaching certain aspects of mathematics, only later did it dawn on them that it could be used for a language.

Iverson received a Turning Award for his work on notation, he showed how thought itself is often directed/restrained, even sometimes blinkered by, notation.

Consider too:

Quote
APL has formed the basis of, or influenced, the following languages:[citation needed]

A and A+, an alternative APL, the latter with graphical extensions.
FP, a functional programming language.
Ivy, an interpreter for an APL-like language developed by Rob Pike, and which uses ASCII as input.[46]
J, which was also designed by Iverson, and which uses ASCII with digraphs instead of special symbols.[7]
K, a proprietary variant of APL developed by Arthur Whitney.[8]
MATLAB, a numerical computation tool.[6]
Nial, a high-level array programming language with a functional programming notation.
Polymorphic Programming Language, an interactive, extensible language with a similar base language.
S, a statistical programming language (usually now seen in the open-source version known as R).
Speakeasy, a numerical computing interactive environment.
Wolfram Language, the programming language of Mathematica.[47]


So, MATLAB and Mathematica...

No, I was thinking of a language that has been extremely influential and is better than quite a few of its successors. That language's syntax can be easily described with examples on a single sheet of A4 paper. Very few languages manage anything close.

No idea, you'll have to tell me!



« Last Edit: December 05, 2022, 04:23:38 pm by Sherlock Holmes »
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19470
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: A microcontroller programming language
« Reply #363 on: December 05, 2022, 08:59:22 pm »
Just to tease you, here is a bowdlerised assessment of language X...

X is also one of the most influential programming languages. Virtually all of the object-oriented languages that came after—Flavors,CLOS, Objective-C, Java, Python, Ruby, and many others—were influenced by X. X was also one of the most popular languages for agile software development methods, rapid application development (RAD) or prototyping, and software design patterns. The highly productive environment provided by X platforms made them ideal for rapid, iterative development....

Many of the language and implementation concepts in X have become standard elsewhere. Some are so counterintuitive that it is necessary to inform the unenlightened that their simple undergraduate experience is grossly misleading.

X has 6 keywords.

By comparison APL was a deadend. 7-7-7 being 7 confuses most people :)
« Last Edit: December 05, 2022, 09:04:43 pm by tggzzz »
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 3911
  • Country: gb
Re: A microcontroller programming language
« Reply #364 on: December 05, 2022, 09:07:00 pm »
15 pages of ... sugar ...   :-BROKE
The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14447
  • Country: fr
Re: A microcontroller programming language
« Reply #365 on: December 05, 2022, 09:10:37 pm »
Here's a great sight for playing with APL, such an expressive language, here's the definition of a function to calculate the average of any number of integers:

Code: [Select]

avg ← { (+ / ⍵) ÷ ⍴ ⍵ }
 

You call that expressive, I call that a fantastic exercise in obfuscation.
Apart from the assignment symbol that almost anyone with a programming experience will get, the right hand part is undecipherable.

I'm under the impression again that you are conflating expressiveness with the least number of keystrokes possible.
 
The following users thanked this post: MK14, DC1MC

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #366 on: December 05, 2022, 10:18:55 pm »
Here's a great sight for playing with APL, such an expressive language, here's the definition of a function to calculate the average of any number of integers:

Code: [Select]

avg ← { (+ / ⍵) ÷ ⍴ ⍵ }
 

You call that expressive, I call that a fantastic exercise in obfuscation.

Erm, well, Not to someone who understands APL, but perhaps you're right, I mean look at this, how obfuscated did Maxwell need to get, I mean, come on James!



Apart from the assignment symbol that almost anyone with a programming experience will get, the right hand part is undecipherable.

I'm under the impression again that you are conflating expressiveness with the least number of keystrokes possible.

Just as Maxwell's equations are undecipherable until one learns their meaning, lack of familiarity with a language is really not a very good argument that the language is obfuscatory.

The APL is incredibly simple once you become familiar with the notation. The + / ⍵ means "take every element of the vector ⍵ and insert the "+" operator in-between them all, then evaluate that expression. Then it says "divide that result by" ⍴ ⍵ (the "shape" of the array ⍵ ) which is just the number of elements in the array.







« Last Edit: December 05, 2022, 10:24:11 pm by Sherlock Holmes »
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #367 on: December 05, 2022, 10:30:42 pm »
The lack of reserved words in the grammar I'm developing, lends itself well to multiple languages.

These two source fragments generate identical parse trees:

Code: [Select]

function test binary(31)

   declare a string

   while true

      a = a + 1
   
   end

end



Code: [Select]

fonction test binaire(31)

   déclarer a chaîne

   pendant que true

      a = a + 1

   fin

fin


Note another very powerful feature, keywords can contain multiple terms, like the PL/I language allowed "goto" or "go to" the parser was fine with that idea. Same here, English "while" in French is "pendant que" presents no problems.

The only difference is that the first is compiled with an English JSON keyword dictionary and the French with a different JSON dictionary, the Lexical Analyzer and Parser are totally unaware that the sources are in different languages!

The technology I have here now, would easily support a language where we can specify the keyword language for different regions in a source file, not just have that fixed for the whole source file or for an entire compilation. One could mix or copy/paste a example algorithm from a Spanish engineer into code being written by a German and share that with a developer who works in English!

The real power here is that we can freely add a new keyword too all - any number of - languages and never ever lose backward compatibility for any source written in any language, if we had thirty dictionaries defined and we wanted to add a keyword "await" then we'd that to the English dictionary and add whatever it translates too to each of the other twenty nine dictionaries and we're done, even if some or all had used the term "await" for a variable or function name!

Time for some Latin motor control software!

Try doing that in C or C++ !



« Last Edit: December 05, 2022, 10:44:37 pm by Sherlock Holmes »
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19470
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: A microcontroller programming language
« Reply #368 on: December 05, 2022, 11:06:32 pm »
Why stop there (at keywords)?

Why not have the ability to add new control structures?

Why not be able to add them while the program is executing?

Why stop there? Define a new domain specific language? (Answer: you could, but a domain specific library is probably better)

Start from the right foundation, and all that is trivial.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11622
  • Country: my
  • reassessing directives...
Re: A microcontroller programming language
« Reply #369 on: December 05, 2022, 11:16:50 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.
the fact is.. pascal is dead (technically), and you dont have anything to back it up, whether mechatrommers exist or not... whats grew on everybody today is Python, which uses the same assign and compare syntax as C... https://www.pythontutorial.net/python-basics/python-comparison-operators/
« Last Edit: December 06, 2022, 12:33:31 am by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #370 on: December 05, 2022, 11:22:25 pm »
Pascal uses := for assignment and = for comparison.  It took about 5 minutes to get used to this notation.  I rather like it...

Yup. Faster than to get used to than = and ==, and less prone to unnoticed errors.

The clearest assignment operator is, of course ← as in "x ← x + 1". Bonus points for recognising which language got that right many decades ago :)

As long as you don't have to give it a three-fingered salute, who cares whether one or two characters has to be typed. We're not using ASR33s anymore, are we mechatrommer?.
the fact is.. pascal is dead (technically), and you dont have anything to back it up, whether mechatrommer exists or not... whats grew on everybody today is Python, which uses the same assign and compare syntax as C... https://www.pythontutorial.net/python-basics/python-comparison-operators/

Python relies on indentation to express containment/nesting, it is a horrible accident waiting to happen.

You can copy a large Python source file (say from some web site) and - inadvertently or intentionally - do nothing more than add/remove spaces and the logic can change hugely yet you'd not know it, it would run and likely appear fine, but could execute differently from what you thought you copied...

F# and some other functional languages also rely on indentation, but due to the fundamental differences between functional and imperative languages, corrupting spaces in F# will almost always (if not always) either have zero impact or cause compile errors.

« Last Edit: December 05, 2022, 11:26:10 pm by Sherlock Holmes »
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11622
  • Country: my
  • reassessing directives...
Re: A microcontroller programming language
« Reply #371 on: December 05, 2022, 11:43:20 pm »
Python relies on indentation to express containment/nesting, it is a horrible accident waiting to happen.
learn from the lesson or else....

do you really want to reinvent ASR33's age ":="? ;D
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: A microcontroller programming language
« Reply #372 on: December 05, 2022, 11:50:48 pm »
Python relies on indentation to express containment/nesting, it is a horrible accident waiting to happen.
learn from the lesson or else....

do you really want to reinvent ASR33's age ":="? ;D

What standard did you use for counting how many standards there are...
“When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.” ~ Arthur Conan Doyle, The Case-Book of Sherlock Holmes
 

Offline cfbsoftware

  • Regular Contributor
  • *
  • Posts: 116
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: A microcontroller programming language
« Reply #373 on: December 05, 2022, 11:59:12 pm »
I still haven't got the hang of how to read "=" and "==" in my head without it being awkward.
because your mother language (pascal) clouded your mind, make you harder to get around another language, esp a language as good a c :P... if we just follow a language's notion and grammar, rather than our heart desire.. there should be no problem.. but then just as you pick your fav language.. i also did and abandon pascal grammar for the above logical reason, and some other technical reasons.
I'm not sure what you mean by 'mother language' but Pascal certainly was not my 'first' language. I was taught FORTRAN IV at school in the 60's and ALGOL 60 at Uni in the early 70's and my programmer career started with Varian's TASC language.

I didn't start using Pascal until 1976. My C programming career started later in 1985 and was followed by 10 years of comparative misery and pain after which I promised myself I would never, ever, program in C again. I have kept that promise.

Although I liked Pascal it had its fair share of logical quirks, which I found a constant source of irritation. Fortunately these were elegantly eliminated in the early 80's when Wirth designed its successor: Modula-2. Any logical reasons for not using a language evaporated for me. Modula-2 became my language of choice when I was programming for 'fun'and not for a job.

Nowadays I am in the fortunate position of being able to use Modula-2's successor, Oberon, when programming for both business and pleasure. Being able to use it to program microcontrollers also allows me also to indulge in my lifelong passion of electronics. These are certainly the most satisfying days of my computing life. ;)
Chris Burrows
CFB Software
https://www.astrobe.com
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14447
  • Country: fr
Re: A microcontroller programming language
« Reply #374 on: December 06, 2022, 05:32:26 am »
The fun part is that the thread is starting to look like a popularity contest (which is what ends up happening in many programming language threads anyway) rather than stick to purely technical points. Which usually means game over, but I don't wanna ruin the thread. Good luck!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf