4.3.3 Linking <i>XLISP</i> with Framework Components



next up previous contents index
Next: 4.3.4 LISP Code Up: 4.3 Implementation Previous: Reusing the Callback

4.3.3 Linking XLISP with Framework Components

     

To provide a homogeneous procedural interface and programming environment, the X Windows interface of XLISP (VISTA UI Bindings in Figure 3.1) for XLISP has been put on a set of procedures. Writing interface code in order to make a C function accessible from within LISP is a tedious and error-prone task. As there are many other C-coded parts of the framework which need to be accessible on the extension language level, a general automatic method for linking given functions with the XLISP interpreter and for making them available on the LISP level has been implemented. This automatism is part of the general Tool Abstraction Concept (TAC). This automatic support greatly facilitates the extension of the XLISP interpreter, as the programmer is no longer required to understand the XLISP interpreter in order to extend it with C-coded primitives.

  
Table 4.1: Number of functions (), number of constants (), size of code for the XLISP interface, and module size of every module that is linked with the XLISP interpreter. Numbers in parentheses indicate manual binding, all other code is generated automatically.

The source code size of the original XLISP interpreter (Version 2.1) is roughly 270 kB. Some specific extensions have been made to the interpreter, mainly for event handling and for introducing miscellaneous operating system interface code, like for process control (for running simulators), and other features which are needed for TCAD purposes. These manually coded extensions increase the source code size of the interpreter to 470 kB.

The source code required for LISP bindings of framework modules which are required on the task level is currentlygif 335kb (see 4.1), but is steadily increasing. Modules indicated by parentheses in Table 4.1 are manually bound to the interpreter. The majority of the interface code (63 %) is generated automatically during the build phase of VISTA, using the Tool Abstraction Concept.



next up previous contents index
Next: 4.3.4 LISP Code Up: 4.3 Implementation Previous: Reusing the Callback



Martin Stiftinger
Thu Oct 13 13:51:43 MET 1994