The intermediate code is usually represented in a platform-independent and human-readable format. It can take the form of an abstract syntax tree (AST), a three-address code, or a bytecode, depending on the design choices of the compiler.