The Aspect Oriented Programming is a new programming paradigm that provides a means of encapsulation of crosscuting concerns in software. This paper describes a formal semantics of advice weaving in AspectJ, an aspectoriented programming language that extends Java. The advice weaving is performed on the bytecode in regions of the code that correspond to join points declared by pointcuts. AspectJ provides two kinds of pointcuts: Static pointcuts and dynamic poinctuts. The static pointcuts quantify over static properties of join points, and thus correspond directly to locations in the bytecode whereas dynamic pointcuts quantify over dynamic properties of join points and can not be definitely mapped to places in bytecode. In this paper, we focus only on static pointcuts.