Sign In

Communications of the ACM

Table of Contents

Editorial Pointers

News Track


The Business of Software: Zeppelins and Jet Planes: A Metaphor For Modern Software Projects

Comparing modern-day project characteristics with yesteryear's.

From Washington: Considering the Broadband Debate

While the phone companies and their rivals, the CLECs, fight for broadband dominance, the cable companies are poised to strike.

Viewpoint: The Real Reason Why Software Engineers Need Math

The effect of repetitive learning is nowhere more dramatic than in mathematics.

Viewpoint: The ACM Declaration in Felten v. RIAA

Because of concerns that ACM members and ACM itself could be subjected to civil or criminal prosecutions, the ACM Council voted in June to submit a legal document in support of Felten.

Aspect-Oriented Programming: Introduction

Discussing Aspects of AOP

How would you define AOP?

Aspect-Oriented Programming with Adaptive Methods

Java programmers can easily experiment with AOP ideas by using the DJ library.

Using Multidimensional Separation of Concerns to (Re)shape Evolving Software

Simplifying development, evolution, and integration of Java software using Hyper/J.

Composing Crosscutting Concerns Using Composition Filters

Supporting both intraclass and interclass crosscutting through model extension.

Getting Started With AspectJ

An aspect-oriented extension to Java enables plug-and-play implementations of crosscutting.

Analyzing the Role of Aspects in Software Design

How AOP technologies can promote better design practices is an essential issue concerning the potential benefits of the technology.

Does Aspect-Oriented Programming Work?

Determining the best method for evaluating the effectiveness of a new technology.

Structuring Operating System Aspects: Using AOP to Improve OS Structure Modularity

Using AOP to improve OS structure modularity.

A Layered Approach to Building Open Aspect-Oriented Systems: A Framework For the Design of On-Demand System Demodularization

A framework for the design of on-demand system remodularization.

Handling Crosscutting Constraints in Domain-Specific Modeling

Uniting AOP with model-integrated computing.

Aspect-Oriented Programming Using Reflection and Metaobject Protocols

Providing programmers with the capability to modify the default behavior of a programming language.

High-Performance Java

Despite the popular view that Java implementations are inefficient (compared to their Fortran, C, and C++ counterparts), high-performance applications, which demand execution efficiency, are finding ways to exploit Java that …

The Ninja Project

The authors' Numerically INtensive JAva programming environment shows that Java can be made to produce Fortran- and C-like performance for applications involving high-performance numerical computing.

Enabling Java For High-Performance Computing

Exploiting distributed shared memory and remote method invocation adapts pure Java for large-scale, distributed-memory parallel machines and their applications.

Multiparadigm Communications in Java For Grid Computing

The result is a promising programming approach for enabling, controlling, and coordinating resource sharing in computational Grids.

Technical Opinion: The Emperor with No Clothes

Examining the software problem from a scientific standpoint.

Technical Opinion: Hello, World Considered Harmful

It all starts at the beginning: OO programming learned naturally, not procedurally.

Inside Risks: The Perils of Port 80