Most IT professionals worry their jobs will be replaced by AI tools, while more companies attribute reductions to "technology updates" rather than AI.
Software Engineering and Programming Languages
Deterministic Record-and-Replay
Recent research advances related to deterministic record-and-replay show its broad and enduring applicability.
Designing an Efficient Tree Index on Disaggregated Memory
Sherman demonstrates that combining RDMA hardware features and RDMA-friendly software designs can enable a high-performance index on disaggregated memory.
Technical Perspective: A Write-Optimized Distributed B+Tree Index on Disaggregated Memory
The high-performance tree index uses a lock-free search with versions to resolve read-write conflicts and exclusive locks to resolve write-write conflicts.
Hit the Goalie / With the Puck / In the Neck
Unrealistic assumptions in any application of a formal proof to the real world are the gaps which leave the neck of the application exposed to attack.
Each new step that helps automate code creation moves programmers further away from understanding the core principles of a language and conceptualizing the solution and its programming. AI code assistants accelerate this separation.
Shining a Light on AI Hallucinations
Researchers and data scientists are actively exploring ways to rein in AI hallucinations through improved training and model refinements.
Co-pilots sit behind you and your code whispering semantic nothings in your ear.
New Spectral Algorithms for Refuting Smoothed k-SAT
Our methods yield new algorithms for smoothed k-SAT instances with guarantees that match those for the significantly simpler and well-studied model of random formulas.
Technical Perspective: The Surprising Power of Spectral Refutation
Could an algorithm that seems unrelated to SAT serve as a reliable refutation heuristic? Perhaps surprisingly, the answer is yes.
Program Merge: What’s Deep Learning Got to Do with It?
Leading figures of Microsoft Research's DeepMerge project discuss their efforts to apply machine learning to complicated program merges.
The creator of C++ presents key concepts for performant, type-safe, and flexible C++ software.
Meta’s Hyperscale Infrastructure: Overview and Insights
A concise, high-level overview of Meta’s hyperscale infrastructure, with key insights from its development.
Investigating Research Software Engineering: Toward RSE Research
It is necessary to build better domain-specific tooling to address the domain-specific challenges of research software and to establish RSE Research as a research field over RSE.
Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions
Our work attempts to characterize the tendency of Copilot to produce insecure code.
Technical Perspective: Unsafe Code Still a Hurdle Copilot Must Clear
Examining the conditions under which LLMs may generate insecure code.
Strong community support and ongoing innovation keep the Go programming language at the forefront of cloud development.
Questioning the Criteria for Evaluating Non-Cryptographic Hash Functions
There seems to be a gap in how cryptographic and non-cryptographic hash functions are designed.
Program Correctness through Self-Certification
Self-certification is simpler to apply than formal verification, and fully validates only the program runs that actually occur.
How Software Bugs led to ‘One of the Greatest Miscarriages of Justice’ in British History
Bad coding and bad testing characterize the software that led to wrongful convictions, financial ruin, and four suicides.
A mobile application can generate situation-specific communication boards automatically from photographs.
Technical Perspective: Can AI Keep Accessible Communication in the Picture?
Recent research explores how AI can use photos to support communication, especially for people with communication impairments.
The realization of a self-designing software system is faced with key challenges.
Shape the Future of Computing
ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.
Get InvolvedCommunications of the ACM (CACM) is now a fully Open Access publication.
By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.
Learn More