Co-pilots sit behind you and your code whispering semantic nothings in your ear.
Software Engineering and Programming Languages
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.
Zero-Trust Security in Software Development
The zero-trust security model is a proactive approach to overcoming potential threats and enhancing application security.
AI-Driven Code Review: Enhancing Developer Productivity and Code Quality
AI-driven code review tools use deep learning and natural language processing to understand coding patterns and offer suggestions.
Compliance Requirements in Research
An urgent issue to address is the proliferation of requirements from all federal and state agencies and private companies, which share an awareness for security but add different security requirements.
Datagram Forwarding Considered Harmful
Perhaps we need to look to forms of structured networking as a means of restricting and controlling the use of unstructured routing.
Computing with Time: Microarchitectural Weird Machines
Demonstrating the practicallity of μWMs by creating a microarchitecture-sensitive logic bomb.
Technical Perspective: How Exploits Impact Computer Science Theory
The term “weird machines” reflects the shift in the understanding of exploitability’s root cause.
The Importance of Robust Documentation in Software Development
Without well-maintained documentation, even the most elegant codebases can become opaque, inefficient, and impossible to scale.
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