This paper presents TARO, an interactive tool to assist linguists in designing, building, testing, and extending Natural Language Processing (NLP) systems. TARO (Text Analysis and Representation with Objects) is implemented in KSL, a reflective, object-oriented programming language. The architecture of TARO takes advantage of encapsulation, polymorphism, and inheritance of object-oriented programming to provide an environment in which testing and refinement of complex NLP components can be achieved without major program modifications. It also benefits from the reflectivity of KSL to allow building and extending NLP prototypes dynamically. These qualities, coupled with the ability of TARO to integrate syntactic with semantic analysis, provide the opportunity to achieve greater modularity, extensibility, and integration in the design of natural language systems.