next up previous contents
Next: Data Model Up: Byte-codes Previous: Byte-codes   Contents

Compilation

In computer science compilation means transforming one language into another. The first reason to introduce compilers in computer science was expressiveness: people implement the solution to a problem in a computer language in which they are able to express themselves without difficulty. Then this solution was compiled into a language that is understandable for a computer: a machine language.

The same reasoning can be applied to (neuronal) modeling: you express the model with something you feel comfortable with (e.g. the modeling elements of Genesis). Then to simulate the model, it must be compiled into a language that is understandable for a machine and efficient to solve numerical calculations. This language is the byte-code that hsolve deals with. To put it in other words, the byte-codes are tailored to encode the numerical calculations required to solve the equations that occur in a neuronal model. The compilation step consists of two phases: in the first phase an intermediary representation is built and optimized for structure. In the second phase the optimized intermediary representation is used to generate the actual byte-codes. The generated byte-codes are again optimized such that e.g. redundant computations are removed (see figure 6.1).

After a successful SETUP and RESET, hsolve has examined the full model and has stored all the byte-codes necessary to compute the behavior of the model. But besides the byte-codes that encode the model, hsolve also stores the results of the calculations and descriptive values necessary to do the calculations. For technical reasons hsolve stores the operators (the byte-codes) separately from the operands (the results of the calculations and descriptive values).



Subsections
next up previous contents
Next: Data Model Up: Byte-codes Previous: Byte-codes   Contents
2002-11-15