37
Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Embed Size (px)

Citation preview

Page 1: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Programming Languages and Program Development

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall

1

Page 2: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Explain what a programming language is. Explain the development of programming

languages over the years and the benefits and drawbacks of high-level programming languages.

List several popular object-oriented languages and explain their advantage over older languages.

List the six phases of the program development life cycle (PDLC).

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 2

Page 3: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Programming Process used to create software programs

Programmers People who use programming languages to create software

applications

Programming languages Consist of a vocabulary and a set of rules called syntax

Interface Point of interaction between components, such as the

interaction between a user’s screen and the computer code, which results when running a program

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 3

Page 4: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Middleware Makes connections between applications on

multiple networks Integral to modern information technology

based on XML, Web services, and service-oriented architecture

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 4

Page 5: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall5

• Compilers and interpreterso Source code—programming instructions in the

original form that can be translated into a form that the computer can understand

o Code—programming instructions created by the programmers

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

Page 6: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall6

Page 7: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall7

• Compilers and interpreterso Compiler—utility program translates source

code into object codeo 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

Page 8: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Machine Assembly Procedural Nonprocedural Natural

8

Page 9: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

First-generation languages

Machine languageBased on binary numbersOnly programming language that a computer

understands directlyMachine dependent

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall9

Page 10: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Second-generation language

Assembly language Low-level language Programs use:

Mnemonics—brief abbreviations for program instructions make assembly language easier to use

Base-10 (decimal) numbers

Must be translated into machine language by an assembler

Occasionally used to create device drivers Programs to control devices attached to a computer and

game console programs

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 10

Page 11: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Third-generation languages

High-level languages—do not require programmers to know details relating to the processing of data

Easier to read, write, and maintain than assembly and machine languages

Source code must be translated by a language translator

Examples: Fortran, Pascal, Algol, Pascal, C, Ada

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall11

Page 12: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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 maintainable GOTO statements forbidden Examples:

Ada Algol Pascal

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall12

Page 13: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Third-generation languages (con’t.)

o Modular programming—dividing larger programs into separate modules, each takes care of a specific function

o Information hiding—also known as encapsulation, modular programming makes it possible to hide details in sensitive applications

o Programming languages include:• Fortran• C

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall13

Page 14: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Structured and modular languages Required for large-scale program development Languages in widespread use:

Ada BASIC Visual Basic

Event-driven programming language that executes only in response to user actions

C

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 14

Third-generation languages (con’t.)

Page 15: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

• 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 Hall15

Third-generation languages (con’t.)

Page 16: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Fourth-generation languages

Nonprocedural languages Do not require step-by-step procedures Examples

Report generators (database reports) Query languages

SQL (Structured query language)—enables users to phrase simple or complex requests for data

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 16

Page 17: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Fifth-generation languages

Natural language Still being perfected Nonprocedural Use everyday language to program

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 17

Page 18: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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

Class—blueprint or prototype from which objects are made

Inheritance—ability to pass on characteristics from a class to subclasses

Examples: C++, Java

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 18

Page 19: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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 language

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 19

Page 20: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Not considered programming languages Tell the browser how to display text and

objects Language types

Markup Scripting

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall20

Page 21: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Composed of a set of codes, or elements, that uses tags to define how text and objects display

Tags—markers that usually come in pairs Content—text that displays, lies between the

opening and closing tags WML (Wireless Markup Language)enables

developers to create pages for wireless devices CSS (Cascading Style Sheets)defines the

look and formatting of a Web page

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 21

Page 22: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

HTML (Hypertext Markup Language) Used by Web programmers Supports links to other documents, graphics,

and audio and video files. XML (Extensible Markup Language)

Enables programmers to capture specific types of data by creating their own elements

Not a replacement for HTML 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 22

Page 23: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Create scripts—programs that control Web page actions or responses

VBScript ActiveX controls JavaScript AJAX JSON

Used for serialization and transmitting structured data over a network

PHP

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 23

Page 24: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Rapid application development (RAD) Reuses prebuilt objects Possible because of OOP

Joint application development (JAD) Uses a team approach Involves end users throughout development

Agile software development techniques—use collaboration between teams to develop solutions to meet customer needs and company goals

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 24

Page 25: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Program development life cycle (PDLC) Organized plan for managing the development

of software Consists of six phases, from problem definition

through program implementation and maintenance

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 25

Page 26: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 26

Page 27: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Define the problem the program will solve 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 27

Page 28: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Program design—identifies components of the program

Top-down program design—breaks program into small, manageable, highly focused routines

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 28

Page 29: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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 met

Case 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 29

Page 30: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Algorithm Combination of control structures Step-by-step description of how to arrive at a

solution Nesting

Process of embedding control structures within one another

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 30

Page 31: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 31

Page 32: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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 Unified Modeling Language (UML)—

variation of flowcharting used to illustrate and document object-oriented systems during development

Pseudocode—uses a stylized form of writing to describe logic

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 32

Page 33: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 33

Page 34: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Programmers convert algorithms into programming code

Syntax errors (i.e. language 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 34

Page 35: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

All errors, not just syntax errors, must be removed

Logic errors Relate to problems in the solution’s design Cause incorrect output Program still runs despite logic errors

Syntax errors and logic errors—bugs Debugging—process of eliminating errors

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 35

Page 36: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

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 36

Page 37: Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1

Test the program Have users work with the software Correct errors

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 features

37