$Id: review3.txt,v 1.1 2005/09/13 16:05:12 locasto Exp $ Fall 2005 COMS 1003 ---------------------------------------------------------------------- 0. List the steps of the Software Life Cycle and briefly explain each. - Problem Statement: Identify the core problem, abstract away detail - Requirements Specification: Enumerate the requirements for solving the problem - Design Specification: details of how you will satisfy the requirements and what precise steps will be taken - Construction: the actual writing of code - Testing: verifying that your solution (code) satisfies the design parameters and the requirements specification. Usually performed informally throughout development, as well as formally. - Documentation: providing supporting explanation of your coding solutions and instructions on how to use, run, and maintain the software. 1. What is an opcode? A series of binary digits that corrosponds to an instruction in machine language. 2. What is assembly language? What are some generic assembly language commands? Assembly language is a low-level, processor specific language. Most assembly languages have commands that corrospond to: - MOVE, ADD, SUB, AND, OR, LOAD, STORE, etc. 3. Explain the term memory hierarchy and diagram it. Memory hierarchy describes the relationship between storage capacity, cost, and speed. High speed memory is usually more costly, but faster. [registers] high speed, high cost, low capacity [cache] | [primary memory (RAM)] | [secondary memory (hard disk)] \/ [tape, DVD, CD] low speed, low cost, high capacity 4. What role does the bus play in a computer? The bus connects the CPU, memory, and periphrials and allows them to communicate and transfer data. 5. What is top down design? Top-down design is the practice of outlining a design solution in high-level terms and successively filling in the implementation details. 6. What is the GNU C Compiler (GCC) ? The GCC is a piece of software (like a word-processor or database) that converts C code into machine code. 7. Is C case-sensitive? What does case-sensitive mean in the context of a computer language? Yes. A case-sensitive programming language is one in which identifiers, keywords, and other characters must have consistent case; otherwise, a syntax error occurs. 8. What is the purpose of: int main(int argc, char* argv[]){} This sequence of characters is what is known as a function signature, and it is special because it denotes the start of execution (control flow) for C programs. 9. What is your favorite color? Wrong.