UNIT 4 - chapter 9 Flashcards
Assembly language
- The programmer must manually manage the movement of data items between and among memory locations and registers ( although such data items can be assigned mnemonic names).
- The programmer must take a microscopic view of a task, breaking it down into tiny subtasks at the level of what is going on in individual memory locations.
- An assembly language program is machine specific.
- Statements are not natural-language-like(although operations are given mnemonic code words as an improvement over a string of bits).
High-level language ( expectations)
The programmer need not to manage the details of the movement of data items within memory or pay any attention to exactly where those items are stored.
The programmer can take a macroscopic view of tasks, thining at a higher level of problem solving ( add B and C, and call the result. A) The “primitive operations” used as building blocks in algorithm construction can be larger.
Programs are portable rather than machine specific.
Programming statements are closer to natural language and use standard mathematical notation.
High-level programming languages are often called
third-generation languages.
Compiler
A translator that converts high-level language instructions into machine language instructions.
high-level language instructions are
usually the source code
linker
a system software that inserts requested object code from code libraries into the object code for the requesting program.
procedural languages ( also called imperative languages)
A program written in a procedural language consists of sequences of statements that manipulate data items. The programmer’s task is to devise the appropriate step-by-step sequence of “ imperative commands” - instructions in the programming language - that, when carried out by the computer, accomplish the desired task.
the syntax and semantics of high-level languages
rules ( syntax) for exactly how statements must be written and the meaning ( semantics) of correctly written statements.
software development life-cycle
the overall sequence of steps needed to complete a large-scale software project.
Steps in the software development life-cycle
1) Before implementation
- Feasibility study
- Problem specification
- Algorithm selection or development, and analysis
2) implementation
- coding
debugging
3) Aftern implementation
- testing, verification, and benchmarking
- documenting
- maintenance
Feasibility study
evaluates a proposed project and compares the costs and benefits of various solutions.
Problem specification
involves developing a clear, concise, and unambiguous statement of the exact problem the software is to solve.
Problem specification document
expresses the final and complete problem specification and guides the software developers in all subsequent decisions.
Program design phase
the time to plan how it is to be done
divide-and-conquer ( also called top-down decomposition)
tasks are broken down into subtasks which are broken down into sub-subtasks and so on until each piece is small enough to code comfortably. These pieces work together to accomplish the total job.