Computers Are Your FutureTwelfth Edition
Chapter 11: Program Development andProgramming Languages
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1
Objectives• List the six phases of the program
development life cycle (PDLC) and explain why the PDLC is needed.
• Explain why defining the problem in a top-down design manner leads to programs that are easier to debug and maintain.
• Differentiate between problems that can arise in the testing and debugging phase as syntax and logic errors.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 2
Objectives• Explain what a programming
language is and how it works.• Explain the development of
programming languages over the years and the benefits and drawbacks of high-level programming languages.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 3
Objectives• Explain how object-oriented
languages attempt to remedy the shortcomings of earlier languages.
• List several popular object-oriented languages and explain their advantage over older languages.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 4
The Program Development Life Cycle
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 5
Programming Languages
and Program Development
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 6
Programming/Software Development
• Programmingo Process used to create software programs
• Programmerso People who use programming languages to
create software applications
• Programming languageso Consist of a vocabulary and a set of rules
called syntax
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 7
The Program Development Life Cycle
• Program development life cycle (PDLC)o Organized plan for managing the
development of softwareo Consists of six phases, from problem
definition through program implementation and maintenance
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 8
The Program Development Life Cycle
• Phase 1: Defining the problemo Define the problem the program will solveo Define the program specifications, including
decisions regarding data input, required processing, output, and the user interface
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 9
The Program Development Life Cycle
• Phase 2: Designing the program solution.o Program design—identifies components of the
program• Top-down program design—breaks
program into small, manageable, highly focused routineso Procedures, functions, or subroutines
• Structured design uses control structures—logical elements assembled in blocks of code that determine how subroutines will be programmed
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 10
The Program Development Life Cycle• Phase 2: Designing the program
(con’t.)o Basic control structures categories
• Sequence control structure—code performed in line-by-line order
• Selection control structure—also called a conditional or branch structure, this is a portion of code that leads to a block of code based on conditions being metoCase control structure—portion of code that
branches to extensive conditional coding• Repetition control structure—also known as looping
or iteration, this is a portion of code that repeats
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 11
The Program Development Life Cycle• Phase 2: Designing the
program (con’t.)o Algorithm
• Combination of control structures • Step-by-step description of how to arrive at a
solutiono Nesting
• Process of embedding control structures within one another
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 12
The Program Development Life Cycle• Phase 2: Designing the program
(con’t.)o Program design tools
• Structured charts—also called hierarchy charts, show top-down design of programs
• Flowcharts—use diagrams to show the logic of a program
• Pseudocode—uses a stylized form of writing to describe logic
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 13
The Program Development Life Cycle
• Phase 3: Coding the programo Programmers convert algorithms into
programming codeo Syntax errors
• Mistakes in the construction of the programming commands
• Must be corrected for the program to run appropriately
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 14
The Program Development Life Cycle• Phase 4: Testing and
debugging the programo All errors, not just syntax errors, must be
removedo Logic errors
• Relate to problems in the solution’s design• Cause incorrect output• Program still runs despite logic errors
o Syntax errors and logic errors—bugso Debugging—process of eliminating errors
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 15
The Program Development Life Cycle• Phase 5: Documenting the
programo Documentation includes:
• Overview of program functionality• Tutorials• Thorough explanation of main features • Reference documentation of program commands• Description of error messages• Program design work, including structure charts,
pseudocode, and flowcharts
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 16
The Program Development Life Cycle• Phase 6: Implementing and maintaining the programo Test the program
• Have users work with the software• Correct errors
o Program maintenance• Fix program errors discovered by users• Conduct periodic evaluations on a regular basis• Make modifications as needed to update the
program or add featuresCopyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 17
Development of Programming Languages
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 18
Development of Programming Languages
• Five generations of programming languageso Low Level
• 1st. Machine• 2nd. Assembly
o High Level• 3rd. Procedural• 4th. Nonprocedural• 5th. Natural
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 19
Development of Programming Languages
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 20
• Compilers and interpreterso Source code—programming instructions
created by the programmers needed to be translated into a form that the computer can understand…. Binary!!!... Machine Language!!!
o High-level language—language that mimics English; does not require a programmer to understand the intimate details of how hardware, especially the processor, handles data
Development of Programming Languages
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 21
Development of Programming Languages
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 22
• Compilers and interpreterso Compiler—utility program translates source
code into object code(machine language)o Executable program—code transformed
from object code ready to run programs that do not need to be altered
o Interpreter—translation program that does not produce object code—translates one line of source code at a time; executes the translated instruction
Development of Programming Languages
• First-generation languageso Machine language
• Based on binary numbers• Only programming language that a
computer understands directly• Machine dependent
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 23
Development of Programming Languages
• Second-generation languageo Assembly language
• Low-level language• Programs use:
o Mnemonics—brief abbreviations for program instructions make assembly language easier to use
o Base-10 (decimal) numbers
• Must be translated into machine language by an assembler
• Occasionally used to create device driverso Programs to control devices attached to a computer and
game console programs
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 24
Development of Programming Languages
• Third-generation languageso High-level languages—do not require
programmers to know details relating to the processing of data
o Easier to read, write, and maintain than assembly and machine languages
o Source code must be translated by a language translator
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 25
Development of Programming Languages
• Third-generation languages (con’t.)o Spaghetti code—difficult to follow, messy in
design, prone to errors due to numerous GOTO statements
o Structured programming—set of quality standards; programs more verbose but more readable, reliable, and maintainableo GOTO statements forbiddeno Examples:
• Ada• Algol• Pascal
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 26
Development of Programming Languages
• Third-generation languages (con’t.)o Modular programming—dividing larger programs
into separate modules, each takes care of a specific function
o Programming languages include:• Fortran• C
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 27
Development of Programming Languages• Procedural
languageso Provide detailed
instructions that are designed to carry out a specific action such as printing a formatted report
• Nonprocedural languageso Do not require
programmers to use step-by-step instructions
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 28
Development of Programming Languages
• Fourth-generation languageso Nonprocedural languageso Do not require step-by-step procedureso Examples
• Report generators (database reports)• Query languages
oSQL (Structured query language)—enables users to phrase simple or complex requests for data
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 29
Development of Programming Languages
• Fifth-generation languages o Natural languageo Still being perfectedo Nonproceduralo Use everyday language to program
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 30
Development of Programming Languages
• Object-oriented programming (OOP) o Programming technique based on data being
conceptualized as objects• Object—unit of computer information that
defines a data element that is used to model real-world objects
• Attributes define the data• Procedures or operations are called methods
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 31
Development of Programming Languages
• Program development methodso Rapid application development (RAD)
• Reuses prebuilt objects• Possible because of OOP
o Joint application development (JAD)• Uses a team approach• Involves end users throughout development
o Agile software development techniques—use collaboration between teams to develop solutions to meet customer needs and company goalsCopyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 32
A Guide to Programming Languages:
One Size Doesn’t Fit All• Early high-level languages
o COBOL (Common Business-Oriented Language) • Used for business applications• Current focus is on editing aged code on mainframe
computerso Fortran (formula translator)
• Used for scientific/math/engineering applications• Being replaced by object-oriented and formula-
solving programs o Mathematica
• Used to handle all aspects of technical computing in a coherent and unified way
• Can manipulate a wide range of objects, using only a small number of basic elements
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 33
A Guide to Programming Languages:
One Size Doesn’t Fit All• Structured and modular
languageso Required for large-scale program developmento Languages in widespread use:
• Ada• BASIC• Visual Basic
o Event-driven programming language that executes only in response to user actions
• C
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 34
A Guide to Programming Languages:
One Size Doesn’t Fit All• Object-oriented languages
o Visual Studio.NET—Microsoft’s answer to Java and JavaScript
• Visual Basic.Net• Visual C++• Visual C#• F#—language that combines object-oriented
features with the assets of a functional languageo Functional language reflects the way people think
mathematically—useful in programs that express findings in mathematical form
• Integrated development environment (IDE)
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 35
A Guide to Programming Languages:
One Size Doesn’t Fit All
• Web-based languageso Not considered programming languageso Tell the browser how to display text and
objectso Language types
• Markup• Scripting
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 36
A Guide to Programming Languages: One Size Doesn’t Fit
All
• Markup languages o Composed of a set of codes, or elements,
that uses tags to define how text and objects display
• Tags—markers that usually come in pairso Content—text that displays, lies between
the opening and closing tags
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 37
A Guide to Programming Languages: One Size Doesn’t Fit All
• Markup languages o HTML (Hypertext Markup Language)
• Used by Web programmers • Supports links to other documents, graphics, and
audio and video files.o XML (Extensible Markup Language)
• Enables programmers to capture specific types of data by creating their own elements
• Not a replacement for HTMLo XHTML (Extensible Hypertext Markup Language
• Newer version of HTML that uses XML to produce Web pages that are easily accessible by newer portable devices.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 38
A Guide to Programming Languages: One Size Doesn’t Fit
All• Markup languages (con’t.)
o WML (Wireless Markup Language)enables developers to create pages for wireless devices
o CSS (Cascading Style Sheets)defines the look and formatting of a Web page
• World Wide Web Consortium (W3C)o International group—develops Web standardso Develops protocols and guidelines that ensure
long-term growth for the Web
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 39
A Guide to Programming Languages:
One Size Doesn’t Fit All• Scripting languages
o Create scripts—programs that control Web page actions or responses
• VBScript• ActiveX controls• JavaScript• ECMAScript• AJAX• JSON
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 40
Summary• Explain what a programming
language is and how it works.• Explain the development of
programming languages over the years and the benefits and drawbacks of high-level programming languages.
• Explain how object-oriented languages attempt to remedy the shortcomings of earlier languages.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 41
Summary• List several popular object-oriented
languages and explain their advantage over older languages.
• List the six phases of the program development life cycle (PDLC) and explain why the PDLC is needed.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 42
Summary• Explain why defining the problem in
a top-down design manner leads to programs that are easier to debug and maintain.
• Differentiate between problems that can arise in the testing and debugging phase as syntax and logic errors.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 43
44
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic,
mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall