Next: Software Objects, Previous: Introduction, Up: Top [Contents][Index]
The Software Evolution library is implemented in Common Lisp and is intended for use in Common Lisp programs. Figure 2.1 provides an overview of the Software Evolution system, the specifics of which are given in remainder of this section.
• Software Objects: | Representation of software | |
• Software Methods: | Manipulation of software | |
• Global Variables: | Interface to search processes | |
• Search Functions: | High level functions to perform search |
population functions global variables -------------------- ---------------- +------------------+ incorporate *population* | *population* | evict *max-population-size* |------------------| tournament *tournament-size* | list of | mutate *fitness-predicate* | software objects | new-individual *cross-chance* +------------------+ evolve *fitness-evals* | mcmc *running* +-+-+ | | | software functions +------------------+ -------------- evolve arguments | software object | genome ---------------- |------------------| phenome max-evals | edits, | copy max-time | fitness | pick-good target | ... | pick-bad period +------------------+ mutate period-func | crossover filter | +---------------+---+------------+----------------+ | | | | +---------------+ +-------------+ +-------------+ +------------+ | AST | | ELF | | lisp | | asm | |---------------| |-------------| |-------------| |------------| | Abstract | | Executable | | lisp source | | assembly | | Syntax Tree | | Linkable | +-------------+ | code | +---------------+ | Format | +------------+ | +-------------+ | +--------------+-------------------+ +------------------+ | | | | asm-range | +-------+ +----------------+ +----------+ |------------------| | Clang | | CIL | | LLVM | | memory efficient | |-------| |----------------| |----------| +------------------+ | C AST | | C Intermediate | | LLVM IR | +-------+ | Language | +----------+ +----------------+