The definition of the declarative model of Smalltalk programs consist of two parts. The first part defines the computational model for Smalltalk programs. The second part defines the declarative structure used to specify such computations. Taken together the two parts are intended to define the semantics of a Smalltalk program, but avoid requiring any specific implementation techniques. In addition, the use of reflection is not required in order to define a Smalltalk program.
Reflection is required to define a program.
Although our current implementation contradicts none of these assumptions, the goal of the declarative model is to convert Smalltalk programmers to thinking about a program as a specification of a computation and to lay the groundwork for language standardization and further implementation evolution. Reflection and Interactive Development Environments Smalltalk development environments are known for their high degree of interactivity and functionality. They support fine grained incremental creation of Smalltalk programs with immediate feedback and executability. It was the reflective implementation of the imperative definition model that originally enabled Smalltalk environments to provide this level of functionality. Incremental program creation and immediate execution is possible because the individual program elements are added reflectively to an already executing program.