 These work on multiple representations, mostly the architecture-independent GIMPLE representation and the architecture-dependent RTL representation.Finally, machine code is produced using architecture-specific pattern matching originally based on an algorithm of Jack Davidson and Chris Fraser.GCC was written primarily in C except for parts of the Ada front end.