The creator of C++ presents key concepts for performant, type-safe, and flexible C++ software.
Software Engineering and Programming Languages
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.
‘Cheat Engines’ and Copyright in Video Games in the EU
The Court of Justice of the EU finds it permissible to observe, study, and test a program to reveal the ideas and principles underlying its operation and reproduce the results of its execution.
Pitfalls in Machine Learning for Computer Security
Generic pitfalls related to machine learning affect all security domains and can affect the entire machine learning workflow, weakening assumptions, conclusions, and lessons learned.
Reevaluating Google’s Reinforcement Learning for IC Macro Placement
Crosschecked data indicates that the integrity of a 2021 paper in Nature by Mirhoseini, Goldie, et al. is substantially undermined, owing to errors in conduct, analysis, and reporting.
Subjectivity and judgment surrounds what a bug is, and how and whether it should be fixed.
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