Compilers in Action
gcc Compiler for C
Example program in C programming language
#include <stdio.h>
int main(void) {
int i = 0;
int j = 0;
while (i < 10) {
printf("%d\n", j);
i = i + 1;
j = j + 2*i+1;
}
}
We will pay attention to line:
j = j + 2*i + 1
Example command line invoking GNU C Compiler:
gcc test.c -S
x86 Assembly view of the resulting output:
from this the compiler can generate executable machine code (e.g. Linux Executable and Linkable Format (ELF) or EXE format for MS platforms)
javac Compiler from Java to JVM
class Test {
public static void main(String[] args) {
int i = 0;
int j = 0;
while (i < 10) {
System.out.println(j);
i = i + 1;
j = j + 2*i+1;
}
}
}
To compile above Test.java into Test.class :
javac Test.java
To view Test.class in human-readable way:
javap -c Test
In this class, you will be building a compiler