Alexander Morou
Sponsor
Greetings,
In the past few days I've been researching the next wave of language developments on the .NET framework. Into this, there's some interesting conceptual work being done with concurrency (starting as a library extension, as opposed to a language extension).
My question today is, what do people here know of concurrency, how's it work, what are the different methodologies involved. Such as transactions vs. locks, and so on. What kind of considerations would a language developer need to consider when developing a concurrent construct, and what are the most important things that they would need to know, and so on.
In the test case of allowing concurrent blocks, disregarding syntax for now, if you had three concurrent sections of code, what kind of considerations would you need to make with respect to stack of each of the concurrent processes and how would each lead into the locks/transactions that are placed upon the member variables associated to the code. How would concurrency be handled in recursive cases, and so on.
The reason I'm asking is I need to learn concurrency for when I develop the language I'm interested in making. Experimenting with the various concepts involved with it would be helpful, especially if I can pinpoint a valid means to handle concurrency. There's no magic involved though, there's still the requirement for coders who want concurrency to explicitly state where concurrency would be plausible, since code flow analysis systems aren't advanced enough to make the decisions for you (especially since there's no consensus on a proper method to handle concurrency, if they don't know the best way, how can they streamline it in an automated form when they can't agree on how to do it manually).
In the past few days I've been researching the next wave of language developments on the .NET framework. Into this, there's some interesting conceptual work being done with concurrency (starting as a library extension, as opposed to a language extension).
My question today is, what do people here know of concurrency, how's it work, what are the different methodologies involved. Such as transactions vs. locks, and so on. What kind of considerations would a language developer need to consider when developing a concurrent construct, and what are the most important things that they would need to know, and so on.
In the test case of allowing concurrent blocks, disregarding syntax for now, if you had three concurrent sections of code, what kind of considerations would you need to make with respect to stack of each of the concurrent processes and how would each lead into the locks/transactions that are placed upon the member variables associated to the code. How would concurrency be handled in recursive cases, and so on.
The reason I'm asking is I need to learn concurrency for when I develop the language I'm interested in making. Experimenting with the various concepts involved with it would be helpful, especially if I can pinpoint a valid means to handle concurrency. There's no magic involved though, there's still the requirement for coders who want concurrency to explicitly state where concurrency would be plausible, since code flow analysis systems aren't advanced enough to make the decisions for you (especially since there's no consensus on a proper method to handle concurrency, if they don't know the best way, how can they streamline it in an automated form when they can't agree on how to do it manually).