A Brute-Force Approac to Automatic Induction of Machine Code on CISC Architectures

  • Felix Kühling
  • Krister Wolff
  • Peter Nordin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2278)


The usual approach to address the brittleness of machine code in evolution is to constrain mutation and crossover to ensure syntactic closure. In the novel approach presented here we use no constraints on the operators. They all work blindly on the binaries in memory but we instead encapsulate the code and trap all resultingexceptions using the built-in error reportingmechanisms which modern CPUs provide to the operatingsystem. Thus it is possible to return to very simple genetic operators with the objective of increased performance. Furthermore the instruction set used by evolved programmes is no longer limited by the genetic programming system but only by the CPU it runs on. The mapping between the evolution platform and the execution platform becomes almost complete, ensuringcorrect low-level behaviour of all CPU functions.


Shared Memory System Call Address Space Machine Code Genetic Programming System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 3.
    Aivazian, T., Hellwig, C., Weight, R. and Cao, M.: Linux Kernel 2.4 Internals (2001).
  2. 4.
    Banzhaf, W., Nordin, P., Keller, R.E. and Francone, F.D.: Genetic Programming-An Introduction. On The Automatic Evolution Of Computer Programs and its Applications (1998). Morgan Kaufmann, San Francisco, USA and dpunkt, Heidelberg, Germany.Google Scholar
  3. 5.
    Brumm, P., Brumm, D., Scanlon and J.: 80486 Programming (1991).Windcrest, Blue Ridge Summit, Pa., USAGoogle Scholar
  4. 6.
    Crawford, J.H. and Gelsinger, P.P.: Programming the 80386 (1987). SYBEX, San Francisco, USAGoogle Scholar
  5. 7.
    Dunlap, R.: Linux 2.4.x Initialization for IA-32 HOWTO (2001).
  6. 8.
    Goldt, S.,van der Meer, S., Burkett, S. and Welsh, M.: The Linux Programmer’ s Guide (1995).
  7. 9.
    Intel Corporation: IA-32 Intel Architecture Software Developer’s Manual (2001).
  8. 10.
    Johnson, M.K., Rubini, A. and Scalsky, S.: Linux Kernel Hacker’s Guide (1997).
  9. 11.
    Loosemore S., Stallman, R.M., McGrath, R., Oram, A. and Drepper U.: The GNUC Library Reference Manual (1999), Free Software Foundation, Boston, USAGoogle Scholar
  10. 12.
    Nordin, P.: Evolutionary Program Induction of Binary Machine Code and its Application (1997). Krehl Verlag, Münster, Germany.Google Scholar
  11. 13.
    Nordin, P., Banzhaf, W., Francone, F.D.: Efficient Evolution of Machine Code for CISC Architectures UsingInstruction Blocks and Homologous Crossover (1999). In Advances in Genetic Programming, Volume 3, L. Spector, W.B. Langdon, U.-M. O’Reilly, P.J. Angeline (ed.), pp. 275–299.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Felix Kühling
    • 1
  • Krister Wolff
    • 1
  • Peter Nordin
    • 1
  1. 1.Physical Resource TheoryChalmers Technical UniversityGöteborgSweden

Personalised recommendations