As the SWR prototype presented in the previous section shows, object-oriented designs of data levels gain more and more importance. But object-orientedness is becoming an issue also in the design of simulators and TCAD frameworks.
A recent example of an object-oriented approach on the TCAD task level is
the FLOOPS/FLOODS (Florida Object-Oriented Process/Device
Simulator) [Lian94] system developed at the University of Florida. This
system uses the TCL/TK extension language and user interface toolkit
too, but extends it with flexible and modular libraries providing the user
with an object-oriented view of the problem under consideration. However, this
object-orientedness is not present at the data level, where conventional files
are used. Since the system is based on the process simulator SUPREM and
its file formats, integration of other simulators may be a difficulty, and
limited to two-dimensional tools.
Object-orientedness on internal data structures and functions is emphasized by
the SIMUL combined device-circuit simulator [Müll94]. The
implementation language is C++, and all data structures are modelled as
C++ classes with corresponding methods defined on them. Although this
approach seems to be promising for future developments, the choice of C++
from a data level point of view is not ovious at present, since there is currently no
C++ language standard available, and C++ programs therefore have to rely
on a specific C++ compiler (probably only available on certain computer
architectures), which may not be fully compatible to an upcoming C++
standard. Once a standard is available, all those programs would have to be
revised in order to comply to the language specification.
In general, programming in object-oriented concepts is possible in any high-level programming languages. Object-oriented languages just relieve the programmer from having to explicitely code object-oriented features like class definition and inheritance mechanisms. Thus programming an object-oriented application or library does not necessarily imply the usage of an object-oriented programming language.