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

0 Members and 9 Guests are viewing this topic.

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1000 on: January 25, 2023, 03:20:48 pm »
This is how 99% of "I want to make my own compiler" threads end up being. Grammar is like 1% of the work and the easiest part at that.

With your never ending put downs and defeatism, this comes as no surprise. But please support the bizarre unscientific claim that the grammar design is 1% of the effort in designing a programming language? do you have any evidence? any data?

We will soon* have yet another data point. Now that you have finished your perfect grammar within two months of forum shitposting and ignoring all the experts, and had a bit of experimentation with off-the-shelf lexical tools, maybe a few hours of actual work, let's see how long it takes for you to have actual code generation which works for non-trivial pieces of code. Let's say, something you can compile the compiler itself with. Any single actual CPU architecture, maybe x86, or maybe ARMV7-M or RISCV. You should also have some kind of standard library with basic IO functionality, even for a single OS (POSIX or Windows).

*) or maybe not so soon. I'm not holding my breath

Then we can estimate the percentage that went into the design of grammar.

Which "expert" have I ignored?

Can you show that grammar design is 1% of the effort needed to design a new language? that's what I asked about, I'd like to see the facts, the evidence supporting that claim, is there any?

Why do you care how long various phases of such a project are? If the code generation takes a week or a year, what of it? why is that important to you?

Your posts are vacuities, utter wastes of time, conversation between us can serve no purpose, goodbye.

“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 newbrain

  • Super Contributor
  • ***
  • Posts: 1731
  • Country: se
Re: The Imperium programming language - IPL
« Reply #1001 on: January 25, 2023, 03:42:18 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
One thousand times this.
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimisation friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

BTW, my master thesis was, in fact, a compiler for occam, so the grammar was a given - not an issue*.
Being on MS-DOS, the major problem was rather the implementation of concurrency (PAR construct) and channels.
I went for the simplest solution: stack based VM, only minor optimisations, tick based multitasking; I wrote it in Turbo Pascal, but 80% of the runtime library was in assembler.
The generated code was also able to run on a NETBIOS network**, by just adding a configuration file matching channels and procedure with a named machine.
I had the pleasure of it being used in several technical schools to teach some programming concepts.

*And having being exposed to occam, Python's 'indentation is scope' just does not strike me as odd.
**That was the first time I encountered C as the bindings and library for NETBIOS networking available to me were C only. Did not think much of it at the time, but that was before C89 was finalized.
Nandemo wa shiranai wa yo, shitteru koto dake.
 
The following users thanked this post: MK14, Nominal Animal, DiTBho

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1002 on: January 25, 2023, 04:09:07 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimization friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

You speak of "hints", instead of hinting, state your view, be specific, what exactly do you want to suggest to me? I've not intentionally ignored suggestions that are on-topic, if it seems I have, then I apologize.

So either quote yourself so I can see these "hints" again or state your case, I'm truly interested in things that a language can incorporate that further the goals stated at the outset of this thread.

I liken the grammar to a frame, or substrate, perhaps a clay foundation that one might later paint and embellish.

I am keeping the clay wet just now, it is still subject to change, perhaps small perhaps large, who knows, but until the goals are met that clay must remain plastic, if it sets too soon and we discover a shortcoming too late, after hundreds of hours of painting, then what a shame that would be.

Grammar's are designed, created, they are the bedrock of the language's expressiveness, they help embed human thought into our source code, a poor grammar (like C) can have long lasting negative consequences. Most compiler books speak very little of new grammar design, only about existing grammar representation in say Antlr or Lexx or Yacc and so on, they almost always start using an existing grammar for their discourse.

Few books speak of why the grammar is as it is, the different ways of expressing things and so on.

For example does the IPL grammar I have now lend itself to later support of lambda functions? How can we express anonymous functions in the language? might we end up adjusting the current syntax of function and procedure definitions? these and other questions are all part of this process of grammar design, PL/I never supported anonymous functions, so this is a real question, this is the kind of thing I've been doing with this stage of the language, I'm in no hurry.

(Python's indentation scope is a problem, lose the layout, the spacing and you lose critically important syntactic information, this was a bad grammar design decision IMHO and I'm far from alone here).



« Last Edit: January 25, 2023, 04:29:56 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: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1003 on: January 25, 2023, 04:28:27 pm »
I don't think anybody here has ever designed a grammar yet the prattlers here glibly dismiss its significance.

Probably, and probably not. The latter because it is a solved, and more importantly because other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)

So that's not a yes then is it? have you ever designed a programming language? have you ever designed anything? I'm assuming the answer is "No".

Many, many times.

Sometimes my employer has insisted I file patents on what I've invented.

Quote
It isn't solved, a design isn't done until the goals of the design are met, until the objectives defined for the grammar met, until then it is not "done", do you really not understand what design is?

Traditionally difficult part of any greenfield technical project is working out what are worthwhile goals and non-goals. I have decades of experience doing just that.

It is far easier if someone tells you what you have to implement, and leaves you to figure out costs and timescales etc.

Quote
If in order to complete a task you have to do either A or B, then start with the easier.
If in order to complete a task you have to do either A and B, then start with the more difficult.

This is proof positive that you're a troll now. The order of phases in a project is not dictated by their relative complexity, one cannot build a rocket and send men to the moon without doing other stuff first like deciding on a route, deciding the likely fuel consumption, safety of the crew, costs, support staffing, team roles etc etc.

You miss the point, probably in your haste to have a rant.

Analogies are always dangerous, but to follow yours: if you can't build a sufficiently powerful rocket engine, then it is a waste of time/effort to choose a route and recruit astronauts.

Quote
You have to define the concepts/behaviour and grammar, and do the compilation and optimisation and code generation. You are starting with the the easiest. Shame.

Your trolling is nothing to do with language design at all, it really about your naive "understanding" of project planning and scheduling, you think you are an expert yet your own buffoonery above shows us otherwise.

There are a handful of people in this thread who know how to discuss this subject like adults, you are clearly not one of them.

I happen to have decades of experience as a software project manager, I've earned very large bonuses for delivering multi million dollar projects ahead of schedule, managing risk, maintaining progress, you have nothing to teach me about project management or programming language design.

I sampled project management (successfully), but decided it was boring - whereas technical research was interesting.

Otherwise I think your comments reveal more about you and your background than they do about me! I suspect quite a few other participants in this thread do too.

<snipped irrelevant rant>

Quote
Now please, pretty please with a cherry on top, stop trolling and let the adults here talk in peace.

Physician, heal thyself.
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: newbrain, MK14, DiTBho

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 3924
  • Country: gb
Re: The Imperium programming language - IPL
« Reply #1004 on: January 25, 2023, 04:33:47 pm »
Now please, pretty please with a cherry on top, stop trolling and let the adults here talk in peace.

Whatever, again I see nothing but an insanely need of being constantly babysit-ted on the forum  :-//

The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 
The following users thanked this post: MK14

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1005 on: January 25, 2023, 04:35:03 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimization friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

You speak of "hints", instead of hinting, state your view, be specific, what exactly do you want to suggest to me? I've not intentionally ignored suggestions that are on-topic, if it seems I have, then I apologize.

Apology accepted.

Start with memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation, multithread parallelism, multicore operation, real-time guarantees... There are others scattered through the thread by several authors; try reading them.
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: 3924
  • Country: gb
Re: The Imperium programming language - IPL
« Reply #1006 on: January 25, 2023, 04:42:57 pm »
Quote
I've not intentionally ignored suggestions that are on-topic

 :-DD :-DD :-DD :-DD :-DD

which is even more funny considering how TOXIC and AGGRESSIVE that "not intentionally" goes.
The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 
The following users thanked this post: MK14

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1007 on: January 25, 2023, 04:43:37 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
One thousand times this.
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimisation friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

BTW, my master thesis was, in fact, a compiler for occam, so the grammar was a given - not an issue*.
Being on MS-DOS, the major problem was rather the implementation of concurrency (PAR construct) and channels.
I went for the simplest solution: stack based VM, only minor optimisations, tick based multitasking; I wrote it in Turbo Pascal, but 80% of the runtime library was in assembler.
The generated code was also able to run on a NETBIOS network**, by just adding a configuration file matching channels and procedure with a named machine.
I had the pleasure of it being used in several technical schools to teach some programming concepts.

*And having being exposed to occam, Python's 'indentation is scope' just does not strike me as odd.
**That was the first time I encountered C as the bindings and library for NETBIOS networking available to me were C only. Did not think much of it at the time, but that was before C89 was finalized.

Sounds fun.

The Occam folding editor looked neat, but I never used it in anger. Its few benefits became moot on hardcopy and when you could get more than 80*25 chars on your display.

Personally I hate and distrust whitespace being used as semantically important. That started with makefiles, where tab-vs-space is significant. The obvious problem arises when someone cuts-and-pastes code: to what level should/shouldn't leading whitespace be automatically inserted/deleted.

The "whitespace denoting scope" has all the hallmarks of neophytes that complain that they have to type too many characters. As someone who wrote their undergraduate project on an ASR33, I've little sympathy with that! For youngsters that haven't had that pleasure, start by realising that "touch typing" is an invalid concept on a teletype :)
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: The Imperium programming language - IPL
« Reply #1008 on: January 25, 2023, 04:53:34 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimization friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

You speak of "hints", instead of hinting, state your view, be specific, what exactly do you want to suggest to me? I've not intentionally ignored suggestions that are on-topic, if it seems I have, then I apologize.

Apology accepted.

Start with memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation, multithread parallelism, multicore operation, real-time guarantees... There are others scattered through the thread by several authors; try reading them.

Yes, you did only mention these, what of them? are you insinuating that something specific be incorporated? because there's nothing specific in what you wrote.

These are just headings for God's sake, no substance, what do you mean "memory models" so what EXACTLY would you like to see in a language for this? If these kind of vague subject headings is really all you have then there's not a lot I can do in any practical sense is there? Shall I say "OK I'll include a memory model" or "OK I'll make sure there's an optimizer"? I mean really? would that satisfy you?

You're trolling, pretending to contribute because you can't actually contribute, just endless posting of inane vacuities, coupled with an exaggerated sense of self importance, so sorry buddy I will be ignoring you from now on.

« Last Edit: January 25, 2023, 05:28:01 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: The Imperium programming language - IPL
« Reply #1009 on: January 25, 2023, 05:38:30 pm »
I'm leaving this thread due to excessive trolling and spamming, should anyone want to contribute suggestions or questions about this work please do so using Github issues/discussions which I'll respond to regularly.

Regards.

« Last Edit: January 25, 2023, 05:42: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 JPortici

  • Super Contributor
  • ***
  • Posts: 3473
  • Country: it
Re: The Imperium programming language - IPL
« Reply #1010 on: January 25, 2023, 07:15:04 pm »
 :-DD
 
The following users thanked this post: Andy Watson, Siwastaja, newbrain, MK14, DiTBho

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1011 on: January 25, 2023, 07:35:07 pm »
other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
It took many years for C to have a defined sequencing and memory model, and to tackle aliasing in an optimization friendly way (I'm not expert enough to say whether they did it 100% correctly).

Hints to the OP on these topic have been mostly ignored. I'm not interested in grammar that much (though I of course have my personal taste).

You speak of "hints", instead of hinting, state your view, be specific, what exactly do you want to suggest to me? I've not intentionally ignored suggestions that are on-topic, if it seems I have, then I apologize.

Apology accepted.

Start with memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation, multithread parallelism, multicore operation, real-time guarantees... There are others scattered through the thread by several authors; try reading them.

Yes, you did only mention these, what of them? are you insinuating that something specific be incorporated? because there's nothing specific in what you wrote.

It is your choice what to incorporate in your language. But you do need to choose what, why and how.

Quote
These are just headings for God's sake, no substance, what do you mean "memory models" so what EXACTLY would you like to see in a language for this? If these kind of vague subject headings is really all you have then there's not a lot I can do in any practical sense is there? Shall I say "OK I'll include a memory model" or "OK I'll make sure there's an optimizer"? I mean really? would that satisfy you?

Of course they are headings; I'm not designing your language!

I suspect you don't understand why a memory model is necessary, let alone what is involved. Hint: Java had one from the beginning, but had to replace it when the new memory systems became available. Even experts find it difficult. C didn't have one until recently, after Hans Boehm forced people to understand what couldn't be done without one. Even experts didn't understand that!

As for optimisers, are you aware that language features enable/preclude different types of optimisation? Simple example: are you going to allow pointer aliasing (Java, C, C++) or forbid it (xC, Rust)?

It doesn't matter even a tiny bit whether pointer are declared as, say, "int *p" or "REF REF INT p". If you allow pointer aliasing then you preclude many useful optimisations. Grammar is boring; behaviour is interesting.

Quote
You're trolling, pretending to contribute because you can't actually contribute, just endless posting of inane vacuities, coupled with an exaggerated sense of self importance, so sorry buddy I will be ignoring you from now on.

I think the emoji used by JPortici and DiTBho sum up the appropriate response.
« Last Edit: January 25, 2023, 07:51:33 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
 
The following users thanked this post: MK14, DiTBho

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1012 on: January 25, 2023, 08:23:54 pm »
I suspect you don't understand why a memory model is necessary, let alone what is involved. Hint: Java had one from the beginning, but had to replace it when the new memory systems became available. Even experts find it difficult. C didn't have one until recently, after Hans Boehm forced people to understand what couldn't be done without one. Even experts didn't understand that!

I turn my back for five minutes and the barrage of BS just continues unabated, how bored you must be to perpetuate the trolling.

If I'd asked for some ideas for a new electric car perhaps, you'd be the guy who'd "contribute" by posting remarks like "what about wheels then?" or "you've said nothing about headlights" or "nobody cares about easy parts replacement" and other inane vacuous, pointless one liners.

You never bothered to define "memory model", this is why I said your posts here are pretense, pretending to be contributing. You don't define it because you can't, you'll ignore me and wait for someone else to answer for you.

You say "C didn't have one until recently" so when was that then? when did it "get" one? what impact does this have? how did it affect the way you write C code?

What kinds of "memory models" are there? does the C standard use the term "memory model"? have you even looked?

Saying "a memory model is necessary" is utterly meaningless, like saying "drivability is necessary" or "you must have a seats policy", more pretending to know something about this subject when all you really have is emperor's new clothes, fake opinions.

The fact is you can't contribute or else you would have, some here have truly introduced important suggestions and thought provoking ideas but not you because you can't, you want everyone to think you can but you can't, you offer hot air not ideas, fake talk and no walk.

So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.
« Last Edit: January 25, 2023, 08:40:19 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 gf

  • Super Contributor
  • ***
  • Posts: 1270
  • Country: de
Re: The Imperium programming language - IPL
« Reply #1013 on: January 25, 2023, 08:32:29 pm »
So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.

https://en.wikipedia.org/wiki/Memory_model_(programming)
 

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1014 on: January 25, 2023, 08:35:28 pm »
So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.

[url=https://en.wikipedia.org/wiki/Memory_model_(programming)]https://en.wikipedia.org/wiki/Memory_model_(programming)[/url]

No surely you mean:

http://www.cs.cornell.edu/courses/cs2022/2011sp/lectures/lect06.pdf

or perhaps

https://livebook.manning.com/book/modern-c/chapter-12/

or perhaps

https://www.cs.cmu.edu/~15122/handouts/20-cmem.pdf

or even

https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html

But that latter one is C++ not C...

Please show me what the C language standard actually says about a "memory model" after all it now "has" one, it got it "recently".

Oh and do note that last document says "A memory model, a.k.a memory consistency model, is a specification", could someone kindly show me this specification for C so I know what people are referring to?



« Last Edit: January 25, 2023, 08:41:57 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 gf

  • Super Contributor
  • ***
  • Posts: 1270
  • Country: de
Re: The Imperium programming language - IPL
« Reply #1015 on: January 25, 2023, 08:55:29 pm »
So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.

[url=https://en.wikipedia.org/wiki/Memory_model_(programming)]https://en.wikipedia.org/wiki/Memory_model_(programming)[/url]

No surely you mean:

http://www.cs.cornell.edu/courses/cs2022/2011sp/lectures/lect06.pdf

or perhaps

https://livebook.manning.com/book/modern-c/chapter-12/

or perhaps

https://www.cs.cmu.edu/~15122/handouts/20-cmem.pdf

or even

https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html

But that latter one is C++ not C...

Please show me what the C language standard actually says about a "memory model" after all it now "has" one, it got it "recently".

I think everybody here means the ordering of memory fetch and store operations, as described in the Wikipedia article and in your last link. Yes, your last link is for C++, but for C the semantics are similar. For C, it was introduced in C11. See Wikipedia article.

Quote from: Wikipedia article
The Java Memory Model was the first attempt to provide a comprehensive threading memory model for a popular programming language.[2] After it was established that threads could not be implemented safely as a library without placing certain restrictions on the implementation and, in particular, that the C and C++ standards (C99 and C++03) lacked necessary restrictions,[3][4] the C++ threading subcommittee set to work on suitable memory model; in 2005, they submitted C working document n1131[5] to get the C Committee on board with their efforts. The final revision of the proposed memory model, C++ n2429,[6] was accepted into the C++ draft standard at the October 2007 meeting in Kona.[7] The memory model was then included in the next C++ and C standards, C++11 and C11.[8][9]
 
The following users thanked this post: MK14

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1016 on: January 25, 2023, 09:31:11 pm »
So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.

[url=https://en.wikipedia.org/wiki/Memory_model_(programming)]https://en.wikipedia.org/wiki/Memory_model_(programming)[/url]

No surely you mean:

http://www.cs.cornell.edu/courses/cs2022/2011sp/lectures/lect06.pdf

or perhaps

https://livebook.manning.com/book/modern-c/chapter-12/

or perhaps

https://www.cs.cmu.edu/~15122/handouts/20-cmem.pdf

or even

https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html

But that latter one is C++ not C...

Please show me what the C language standard actually says about a "memory model" after all it now "has" one, it got it "recently".

I think everybody here means the ordering of memory fetch and store operations, as described in the Wikipedia article and in your last link. Yes, your last link is for C++, but for C the semantics are similar. For C, it was introduced in C11. See Wikipedia article.

Quote from: Wikipedia article
The Java Memory Model was the first attempt to provide a comprehensive threading memory model for a popular programming language.[2] After it was established that threads could not be implemented safely as a library without placing certain restrictions on the implementation and, in particular, that the C and C++ standards (C99 and C++03) lacked necessary restrictions,[3][4] the C++ threading subcommittee set to work on suitable memory model; in 2005, they submitted C working document n1131[5] to get the C Committee on board with their efforts. The final revision of the proposed memory model, C++ n2429,[6] was accepted into the C++ draft standard at the October 2007 meeting in Kona.[7] The memory model was then included in the next C++ and C standards, C++11 and C11.[8][9]

Right but there are umpteen lectures and articles out there about C and "memory model" that have nothing to do with multithreading semantics.

Furthermore the question of how code generated by the new language, will behave in a multithreaded setting was raised early on and I responded by saying that such a discussion was premature, I acknowledged its relevance but defining that was was for a later phase, it has no bearing on the initial phase which has (for reasons I've explained) concerned with the front end of the language.

This is not ignoring the issue, it is deferring it to some later time, berating me for not discussing defining things now when I already deferred them is just more of the same old incessant attempt to discredit the entire effort.

The code generation and optimization discussions are fine and highly relevant but all in good time, by all means we can cite them and note them for later discussion.

The fact is only a very few want to actively, constructively discuss, the majority here are hell bent on discrediting me at every turn.

I get that some don't want to discuss parsing, grammars, preprocessing and so on. But in that case they can refrain from comment, instead they repeatedly attack because I'm not talking about what they want to talk about.

By talking about front end issues they turn that into accusations that that's all I want to talk about which is a lie, I want to talk about things in the order I outlined.











“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 newbrain

  • Super Contributor
  • ***
  • Posts: 1731
  • Country: se
Re: The Imperium programming language - IPL
« Reply #1017 on: January 25, 2023, 09:31:34 pm »
Quote
specification for C
ISO/IEC 9899:2011  5.1.2.3, 5.1.2.4
Nandemo wa shiranai wa yo, shitteru koto dake.
 
The following users thanked this post: MK14, DiTBho

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1018 on: January 25, 2023, 09:38:46 pm »
So tell me, what is a "memory model" for, what purpose does it serve? what would happen without one? how many types are there? lots of questions there for you, lets see if you can answer any.

[url=https://en.wikipedia.org/wiki/Memory_model_(programming)]https://en.wikipedia.org/wiki/Memory_model_(programming)[/url]

No surely you mean:
... <waste of his life omitted>
Please show me what the C language standard actually says about a "memory model" after all it now "has" one, it got it "recently".

I think everybody here means the ordering of memory fetch and store operations, as described in the Wikipedia article and in your last link. Yes, your last link is for C++, but for C the semantics are similar. For C, it was introduced in C11. See Wikipedia article.

Quote from: Wikipedia article
The Java Memory Model was the first attempt to provide a comprehensive threading memory model for a popular programming language.[2] After it was established that threads could not be implemented safely as a library without placing certain restrictions on the implementation and, in particular, that the C and C++ standards (C99 and C++03) lacked necessary restrictions,[3][4] the C++ threading subcommittee set to work on suitable memory model; in 2005, they submitted C working document n1131[5] to get the C Committee on board with their efforts. The final revision of the proposed memory model, C++ n2429,[6] was accepted into the C++ draft standard at the October 2007 meeting in Kona.[7] The memory model was then included in the next C++ and C standards, C++11 and C11.[8][9]

Precisely; beat me to it :) It isn't what you can do with it, it is what you can't do without it. Very different. Very important.

The OP has a habit of not reading pointers given to him, apparently preferring to spend his time ranting and casting doubt on the competence of those that nudge him in a useful direction.

He seems to have ignored his stated intention of...
I'm leaving this thread due to excessive trolling and spamming, should anyone want to contribute suggestions or questions about this work please do so using Github issues/discussions which I'll respond to regularly.
« Last Edit: January 25, 2023, 09:42:46 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
 
The following users thanked this post: Siwastaja, MK14, DiTBho

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1019 on: January 25, 2023, 10:05:52 pm »
The OP has a habit of not reading pointers given to him, apparently preferring to spend his time ranting and casting doubt on the competence of those that nudge him in a useful direction.

That post itself is a rant and casting doubt on the competence of others. You also never answered any of the questions you were asked, not the first time either, you have habit of not answering questions on topics you don't have a clue about yet pretend to.
« Last Edit: January 25, 2023, 10:10:39 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: The Imperium programming language - IPL
« Reply #1020 on: January 25, 2023, 10:10:10 pm »
Quote
specification for C
ISO/IEC 9899:2011  5.1.2.3, 5.1.2.4

Right thanks. So if I were to say the design decisions pertaining to this must be deferred until code generation is looked into, would that put a stop to some of incessant prattling some in this thread have resorted to?

Memory consistency models are an integral part of the LLVM suite. I fully intend to explore that in due course.

« Last Edit: January 25, 2023, 10:15:54 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 DiTBho

  • Super Contributor
  • ***
  • Posts: 3924
  • Country: gb
Re: The Imperium programming language - IPL
« Reply #1021 on: January 25, 2023, 10:10:33 pm »
The OP has a habit of not reading pointers given to him, apparently preferring to spend his time ranting and casting doubt on the competence of those that nudge him in a useful direction.

Behind write-only mode, well an old saying goes.. after a while arrogance makes the blind  :-//

The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 
The following users thanked this post: MK14

Offline Sherlock HolmesTopic starter

  • Frequent Contributor
  • **
  • !
  • Posts: 570
  • Country: us
Re: The Imperium programming language - IPL
« Reply #1022 on: January 25, 2023, 10:13:47 pm »
The OP has a habit of not reading pointers given to him, apparently preferring to spend his time ranting and casting doubt on the competence of those that nudge him in a useful direction.
Behind write-only mode, well an old saying goes.. after a while arrogance makes the blind  :-//

I'll translate that from British English to American English:

Quote
I have nothing constructive to say or offer with respect to designing a new programming language so I'll say something derogatory about the poster because that's all I'm capable of anyway.

« Last Edit: January 25, 2023, 10:16:41 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: 19723
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: The Imperium programming language - IPL
« Reply #1023 on: January 25, 2023, 10:32:32 pm »
Quote
specification for C
ISO/IEC 9899:2011  5.1.2.3, 5.1.2.4

Right thanks. So if I were to say the design decisions pertaining to this must be deferred until code generation is looked into, would that put a stop to some of incessant prattling some in this thread have resorted to?


There's no point in debating syntax and grammar without a shared understanding of what the syntax and grammar constructs mean.

Humpty Dumpty, via Lewis Carroll, had something to say about that back in the mid 19th century.
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: The Imperium programming language - IPL
« Reply #1024 on: January 25, 2023, 10:47:34 pm »
Quote
specification for C
ISO/IEC 9899:2011  5.1.2.3, 5.1.2.4

Right thanks. So if I were to say the design decisions pertaining to this must be deferred until code generation is looked into, would that put a stop to some of incessant prattling some in this thread have resorted to?


There's no point in debating syntax and grammar without a shared understanding of what the syntax and grammar constructs mean.

Humpty Dumpty, via Lewis Carroll, had something to say about that back in the mid 19th century.

That's a sweeping statement, rather typical of many posted in this thread. Also note the rather obvious oxymoron too.

How can one discuss anything in that case? we use language to discuss things so how can we discuss meaning of language using language unless we know the meaning of the language? These are old philosophical questions, not new.

Here's one of many open questions I'm dealing with now:

1. Should string literals be enclosed in " or ' characters? (PL/I used ' and C as we know, uses ")
2. Should we support two kinds of string types a basic single byte "text" type and a Unicode capable two-byte "string" type?
3. Should we copy what C# does where ' is used for enclosing a character and " is used for strings?

There are a lot of open questions like this, decisions must be made so that this entire front end phase can begin to wind down.

Are you truly of the opinion that these questions cannot be discussed here and now?

« Last Edit: January 25, 2023, 10:52:16 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
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf