Add concurrency construct(s)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
Start by comparing the proposed futures, OpenMP-style annotations, and Cilk-style spawn/sync approaches described in the issue with the Less-Java language and compiler structure. Before implementation, define the concurrency model, safety rules, affected syntax and semantics, and acceptance tests, since the issue currently names no files, entry points, or completed behavior.
Written by the indexing model from the issue text.
Description
It is becoming increasingly common in high-performance computing to hear assertions that CS education programs need to integrate concurrency and parallelism patterns throughout the curriculum, including even the intro courses.
There is perhaps some merit to these assertions; imagine how much easier parallel computing would be if students learned from the very beginning how to identify and express dependency-free computation. Some argue that this mode of programming is actually more intuitive ("perform action X on every element in this collection" is often inherently dependency-free) and that we lose something by forcing everyone to learn a procedural paradigm first, linearizing the computation unnecessarily.
However, it's unclear how best to integrate concurrency into a language like Less-Java without overly complicating the language or introducing major safety issues. Perhaps it could mean adding something similar to futures, which are already implemented in Java and thus could be relatively easy to add to Less-Java. Perhaps it could involve adding annotations that the compiler converts to threaded code, like OpenMP. Or maybe it's adding new language keywords like spawn / sync in Cilk. This is open future work.
- Dominant language
- Java
- Stars
- 6
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from JMU-CS/less-java
-
cleanup help wanted
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
cleanup
Difficulty 1/5 Under an hour Newbie friendliness 45/100
-
cleanup enhancement
Difficulty 5/5 Over a week Newbie friendliness 10/100
-
cleanup
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Add REPL Openenhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
All issues in JMU-CS/less-java
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100