Presentation Transcript
Computers Are Your Future: Computers Are Your Future Chapter 11
Programming Languages and Program Development
Programming Languages: Machine Language Ada Pascal Fortran COBOL Assembly Language Smalltalk Visual Basic BASIC Java C and C++ Programming Languages Programming languages are artificial languages created to tell the computer what to do.
They consist of vocabulary and a set of rules with which to write programs.
The program development life cycle (PDLC) is an organized method of software development.
Development of Programming Languages: Development of Programming Languages Programming languages are classified by levels or generations.
Lower-level languages are the oldest.
The five generations of programming languages are:
Machine languages
Assembly languages
Procedural languages
Problem-oriented languages
Natural languages
First-Generation Languages: First-Generation Languages Machine language:
Consists of Binary Numbers
(0s and 1s)
Is the earliest programming language
Is the only language the computer understands without translation
Is machine dependent
- Each family of processors has its own machine language.
Second-Generation Languages: Second-Generation Languages Assembly language:
Resembles machine language
Is a low-level language
Uses brief abbreviations for program instructions
Abbreviations are called mnemonics
A program is written in source code (text file) and translated into machine language by an assembler.
Third-Generation Languages: Third-Generation Languages Procedural languages:
Are high-level languages that tell the computer what to do and how to do it
Create programs at a high level of abstraction
Are easier to read, write, and maintain than machine and assembly languages
Use a compiler or interpreter to translate code
Fortran and COBOL are third-generation languages.
Compilers and Interpreters: Compilers and Interpreters A compiler is a program that changes source code to object code.
An interpreter translates source code one line at a time and executes the instructions.
Third-Generation Languages (continued): Third-Generation Languages (continued) Spaghetti Code and the Great Software Crisis
GOTO statements resulted in programs that were difficult to follow.
This problem led to the software crisis of the 1960s.
Programs were not ready on time.
Programs exceeded their budgets.
Programs contained too many errors.
Customers were not satisfied.
Third-Generation Languages (continued): Third-Generation Languages (continued) Structured programming languages:
Were developed to improve software development
Include Algol and Pascal
Forbid the use of GOTO statements
Use control structures
IF-THEN-ELSE
Third-Generation Languages (continued): Third-Generation Languages (continued) Modular programming languages:
Were developed because of problems in structured programming languages
Are used to create programs that are divided into separate modules
Each module carries out a special function.
Require specified input to produce specified output
Fourth-Generation Languages: Fourth-Generation Languages Types of fourth-generation languages include:
Report generators
Languages for printing database reports
Query languages
Languages for getting information out of databases
Fourth-generation languages are nonprocedural.
They do not force programmers to follow procedures to produce results.
Fifth-Generation Languages: Fifth-Generation Languages Natural language would be the ultimate nonprocedural language.
Despite years of effort, computers are still not good at understanding and acting upon natural language.
Advances in speech recognition may provide a break-through for the development of natural language interfaces.
Object-Oriented Programming (OOP): Object-Oriented Programming (OOP) Relies on component reusability
The ability to produce program modules that perform a specific task
Eliminates the distinction between programs and data
Uses objects that contain data and procedures
Ex: Visual Basic and C++
Objects: Objects Objects are units of information that contain data as well as methods that process and manipulate data.
Classes of objects:
Hierarchy or category of objects
Objects at the top of the category are broader in scope than the subclass objects.
Inheritance refers to an object’s capacity to “pass on” its characteristics to its subclasses.
Visual Basic (VB): Visual Basic (VB) Is widely used in program development packages
Uses event-driven programming
Enables the programmer to develop an application by using on-screen graphical user interfaces Sample Visual Basic
C++: C++ Incorporates object-oriented features
Is widely used for professional program development
Sample C++ program
Java: Java
Developed by Sun Microsystems
An object-oriented, high-level programming language with a twist
First true cross-platform programming language
Gained acceptance faster than any other programming language
A simplified version of C++
Web-Based Languages: Web-Based Languages Markup languages:
Hypertext markup language (HTML) sets the attributes of text and objects within a Web page.
Extensible markup language (XML) is used for sharing data and objects in a Web environment.
Web-Based Languages: Web-Based Languages Scripting languages:
VBScript is used to write short programs (scripts) that are embedded in Web pages.
JavaScript is used to write scripts on Web pages.
Visual Studio .NET:
Visual Studio .NET is used for the development of scripts and programs that are accessible from the Web.
The Program Development Life Cycle (PDLC): The Program Development Life Cycle (PDLC) The PDLC was introduced in the 1970s to address problems in creating programs.
It provides an organized plan for breaking down the task of program development into manageable parts.
Six Phases of PDLC: Six Phases of PDLC Defining the problem
Designing the program
Coding the program
Testing and debugging the program
Formalizing the solution
Implementing and maintaining the program
Phase 1: Defining the Problem: Phase 1: Defining the Problem The first step in program development
Systems analysts provide program specifications (specs) to programmers.
Specs define:
Input data
Processing
Output
Appearance of user interface
Phase 2: Designing the Program: Phase 2: Designing the Program Programmers create the program’s design.
Top-down design focuses on the program’s main goal (main routine), then breaks the program into manageable components (subroutines/modules).
Control structures are used to see how each subroutine will do its job.
Developing an algorithm is a step-by-step description of how to arrive at a solution.
Phase 2: Designing the Program: Phase 2: Designing the Program
Program design tools:
Structure charts – show the top-down design
Flow charts – show the logic of program
Pseudo code – alternative to flow charts
Structured Design: Structured Design Control structures are logical constructs that specify how the instructions in a program are to be executed.
Sequence– Instructions are executed in the order in which they appear.
Selection– The program branches to different instructions depending on whether a condition is met; IF…THEN…ELSE.
Repetition– The program repeats the same instructions over and over; DO-WHILE and DO-UNTIL.
Structure Chart and Flowchart: Structure Chart Flowchart Structure Chart and Flowchart
Phase 3: Coding the Program: Phase 3: Coding the Program Coding requires the translation of the algorithm into specific program instructions.
An appropriate programming language is chosen, and the code is typed according to its syntax rules.
Phase 4: Testing and Debugging the Program: Phase 4: Testing and Debugging the Program Testing and debugging finds and eliminates all errors.
Syntax and logic errors are corrected.
Debugging is the process of eliminating errors.
Phase 5: Formalizing the Solution: Phase 5: Formalizing the Solution Documentation is created for future use.
The variable names and definitions, a description of the files needed, and the layout of the output are produced.
A user manual is developed to explain how the program works.
Phase 6: Implementing and Maintaining the Program: Phase 6: Implementing and Maintaining the Program The program is:
Tested by users
Thoroughly documented
Maintained and evaluated regularly