A sequence of phases in which the output of each phase becomes the input for the next.
The compilation process contains the sequence of various phases. Each phase takes source program in one representation and produces output in another representation. Each phase takes input from its previous stage. Show
There are the various phases of compiler: Fig: phases of compiler Lexical Analysis:Lexical analyzer phase is the first phase of compilation process. It takes source code as input. It reads the source program one character at a time and converts it into meaningful lexemes. Lexical analyzer represents these lexemes in the form of tokens. Syntax AnalysisSyntax analysis is the second phase of compilation process. It takes tokens as input and generates a parse tree as output. In syntax analysis phase, the parser checks that the expression made by the tokens is syntactically correct or not. Semantic AnalysisSemantic analysis is the third phase of compilation process. It checks whether the parse tree follows the rules of language. Semantic analyzer keeps track of identifiers, their types and expressions. The output of semantic analysis phase is the annotated tree syntax. Intermediate Code GenerationIn the intermediate code generation, compiler generates the source code into the intermediate code. Intermediate code is generated between the high-level language and the machine language. The intermediate code should be generated in such a way that you can easily translate it into the target machine code. Code OptimizationCode optimization is an optional phase. It is used to improve the intermediate code so that the output of the program could run faster and take less space. It removes the unnecessary lines of the code and arranges the sequence of statements in order to speed up the program execution. Code GenerationCode generation is the final stage of the compilation process. It takes the optimized intermediate code as input and maps it to the target machine language. Code generator translates the intermediate code into the machine code of the specified computer. Example:
i) Definition of requirements
As each of the above phases is complete, the output from a prior phase becomes the input for the follow-on phase. Looking at each of the phases. Finally the “on-going maintenance of the product”will have the input of the delivered product, which may need to be revised and updated due to changing customer demands and expectations.Assumptions behind the Waterfall Model.There are some assumptions behind the waterfall approach to software development, one being that each phase occurs in sequence after the previous phase and that each activity neatly commences upon completion of the previous phase.However, in reality, phases tend to overlap, and it may not always be possible to have the output of each phase fully documented, verified and validated, prior to commencing the next phase. A major contributor to phase overlap, tends to be project timelines, where work may need to commence on a follow-on phase, prior to completion of a prior phase, due to a need to rapidly progress the project to completion. When should an organization consider applying the Waterfall Model ?When the customer requirements are clearly defined and understood, when the technology is well established, when the definition of the expected output product is stable. Examples of when the waterfall could be used, are when developing a newer version of an existing product or when transferring an existing product onto a new technology platform.Software Validation.
Reference Sources: |