Intro to CS 9-10-14-17 Flashcards
Steuctured Query Language (SQL)
- Logic programming language
- By IBM
- Used to frame database queries
Problem specification
p.456
Involves developing a clear, concise and unambiguous statement of the exact problem the software isnto solve
- purpose: describes how a program behaves in ALL circumstances and includes limitations (time, memory)
- becomes a contract between developer and customer
Algorithm selection
p.458
Creates/develops and evaluates the most efficient algorithm to solve the problem, complet the task
-Invludes a description of the algorithms chosen or developped and analyses their efficiency
Expectations of a high-level language
p.427
- No need to manage details of the movement of data items within memory or where those items are stored
- Can take a macroscopic view of the task
- Portable rather than machine specific (compiler takes care of translation for a specific machine)
- Statements are closer to natural language and use standard mathematic notation
Code library
Code for useful and often performed tasks, stored
Maintenance
p.461
The process of adapting an existing software product
-Reflects that software development is indeed a cycle
Compiler tougher job than Assembler
p.429
- Assembly language instruction = at most one machine language instruction
- High-level programming language instruction = can explode into many assembly language instructions
ANSI (American National Standard Institute) & ISO (International Organization for Standardization)
Develop standards for programming languages
Using nonstandard features = risk sacrificing portability
Coding
p.459
The process of translating the detailed designs into computer code
-Lists the program code itself
High-level language transitions for translation
p.428
-High-level language program
- Compiler (low-level code)
- *Interpretor**
- Assembler (object code)
- Linker (complete object code)
- Loader (complete object code loaded in memory)
- Hardware (results)
Program design (divide-and-conquer strategy) **p.458**
How it is to be done
- Divide the task into subtasks and into sub-subtasks
- Complete details about each module: what it is to do, what information it needs to do it, what the rest of the program need from it when it is done
Debugging errors
- Syntax error: when program fails to follow the correct syntax rules
- Runtime errors: Occurs when program is running (ex: parsing a double to integer)
- Logical errors: Wrong answer, produced result is wrong
Javascript
- Can be embedded in Web pages to make thise pages active/dynamic rather than static
- In that case, contained within the
and
of HTML documents
Translator that converts high-level language
p.428
Compilers/interpretors
-Converts to source code into low-level code
(source code -> object code)
-Turns over the rest of the job to an assembler of that low-level language
(object code -> binary)
High-level language syntax
Rules for exactly how statements must be written
Assembly language disadvantages
p.427
- Must manually manage the movement of data between memory locations and registers
- Must take a microscopic view of a task
- Is machine specific
- Statements are not natural-language-like
Testing, verification and benchmarking
p.460
Empirical testing, design a special set of test cases (test suite) that exercises all different logical paths and runs the program using the test data
-All testing, verification and benchmarking results are put to paper as evidence
Feasibility study
p.455
What are the relative costs and benefits of the following choices ?
-Purpose: to make all project stakeholders aware of the costs, risks and benefits of various develoment paths as a guide to deciding the approach to use
Procedural languages examples
- Plankalkül: never implemented, Konrad Zuse
- FORTRAN: FORmula TRANslation, IBM, used by engineers, GO TO controversy
- COBOL: COmmon Business-Oriented Language, Group Admiral Grace Murray Hopper, (Master and transaction files), Y2K crisis, used in legacy code
- C: Dennis Ritchie, Originally for systems programming
- C++: Bjarne Stroustrup, C with Object Oriented Programming
- Ada: After Ada Byron Lovelace, (Straw,Wooden,Tin,Iron,Steelmans), for building systems that really matter, defence
- Java: originally called Oak, Sun Microsystems Inc., applications and applets, portability
- Python: Guido van Rossum, open source, originally for system administration and Web interface, relaxed syntax
- C#: garbage collection
Debugging
p.459
The process of locating and correcting program errors
- Frustrating, agonizing and time-consuming
- Careful attention in design phase can reduce debugging phase
- Includes notes on the problems found and on how the code was changed to solve them
Software engineering
Large-scale software development projects
HyperText Markup Language (HTML)
- Not programming but rather giving the Web browser instructions in how to display text
- Used to create HTML documenta that , when viewed with Web browser software, become Web pages
Many different programming languages
Many different tasks
High-level language semantics
The meaning if correctly written statements
Testing methods
- Unit testing: On each individual module
- Integration testing: To see that each module works together
- Regression testing: To insure that any change done to the program hasn’t introduced a new error
Integrated Development Environment (IDE)
Software that probides:
- Text editor
- File manager
- Compiler
- Linker
- Loader
- Debugger