Next: Software Methods, Previous: Implementation, Up: Implementation [Contents][Index]
The Software Evolution Library represents software as software
objects which all inherit from the base sel:software
class.
Currently many subclasses of software are defined. These classes may
inherit from other software sub-classes, e.g. most tree-structured
source code software objects inherit from the sel/sw/ts:tree-sitter
class.
The inheritance tree of software objects is shown graphically in
Figure 2.1.
Table Table 2.1 lists the existing software object classes with an indicate of their relative maturity.
Software type | SEL Class | Maturity |
---|---|---|
Source Code using Tree-Sitter | sel/sw/ts:tree-sitter | mature |
C and C++ source using Clang | sel/sw/clang:clang | mature |
Common Lisp | sel/sw/lisp:lisp | mature |
compiled assembler (ASM) | sel/sw/asm:asm | mature |
linked ELF binaries | sel/sw/elf-cisc:elf-cisc | mature (not recommended) |
LLVM IR | sel/sw/llvm:llvm | experimental |
CIL | sel/sw/cil:cil | experimental |
Forth | sel/sw/forth:forth | experimental |
Coq source | sel/sw/coq:coq | experimental |
These classes may also inherit from mixin classes which provide additional functionality which may be re-used across multiple software object classes. Detailed descriptions of important software object classes and mixins (which may be added to a software objects inheritance tree to provide additional functionality) are described in the following subsections.
Software Object Classes | ||
---|---|---|
• Source Code with tree-sitter | Source code ASTs for many languages | |
• C/C++ with clang | C language source code ASTs | |
• Assembler with asm | Assembler represented as a vector | |
• Coq with coq | Coq language source code ASTs | |
Software Object Mixins | ||
• Ancestor tracking with ancestral | Collect history of applied mutations and crossover events. | |
• Lighter asm alternatives light /range /diff |
Lighter weight alternatives to
simple software.
| |
• Inherited Indentation indentation | Maintain correct indentation across mutations. | |
• Software Methods | Methods on software objects |
Next: Software Methods, Previous: Implementation, Up: Implementation [Contents][Index]