sentence: var x : integer ; procedure inc ; begin x : = x +1 ; end ; x : = 0 ; inc ; this in the single pass compiler when x is referenced , the semantic analysis and code generation can be done since the compiler already knows from the declaration of x : languages like java require a multi-pass compiler since the definition of x would not be required to come before the use .