This chapter presents the main features of Clay by means of examples that will be used throughout the thesis. Sections 2.2-2.8 introduce the basic constructs of the language. In Section 2.9 we will deal with some nontrivial aspects of our notation that may differ from other objectoriented specification and programming languages. Subsequent chapters will provide a more formal presentation of the language. Chapter 3 is devoted to the type system of Clay, and Chapter 4 provides a logical semantics. For a full language reference, including the concrete syntax, the reader is referred to Appendix A.