some words for intro and overview by andi
[cacao.git] / doc / handbook / overview.tex
1 \chapter{Overview}
2
3 This chapter gives an overview of CACAO. It describes the general structure and
4 the partitioning into modules.
5
6
7 \section{Introduction}
8
9 CACAO is partitioned into modules which are usually a .c file or a complete
10 subdirectory. The modules are bound together by the main module (main.c) which
11 parses the command line options, calls the system class loader (loader.c) and invokes
12 the main method of the java class file. The first time a method is invoked
13 the just-in-time compiler (jit) generates machine code for the selected host architecture.
14 During the execution it is possible that native function are called. All native
15 functions have to be linked with all other modules. Therefore, tables
16 and headers have to be generated by the header file generator (headers.c) before
17 the rest of the CACAO system is build. The Boehm-Weiser garbage collector is
18 used for memory management. Figure \ref{cacao_overview} gives an overview of
19 CACAO.
20
21
22 \section{Class loader}
23
24 The class loader loads the Java class files and creates the data structures which
25 are necessary for the compilation and execution of byte code programs.
26
27 Java class files contain information about all referenced classes. Currently CACAO
28 uses this information to load classes eagerly. All classes which are referenced
29 directly or indirectly by the main class are loaded at program start. 
30
31 \section{Just-in-time compiler}
32
33 \section{Run time system}
34
35 \section{Class library}