• 沒有找到結果。

Chapter 6:

N/A
N/A
Protected

Academic year: 2022

Share "Chapter 6:"

Copied!
48
0
0

加載中.... (立即查看全文)

全文

(1)

Computer Science: An Overview Eleventh Edition

by

J. Glenn Brookshear

Dennis Brylow

Chapter 6:

Programming Languages

(2)

Chapter 6: Programming Languages

• 6.1 Historical Perspective

• 6.2 Traditional Programming Concepts

• 6.3 Procedural Units

• 6.4 Language Implementation

• 6.5 Object Oriented Programming

• 6.6 Programming Concurrent Activities

(3)

Figure 6.1 Generations of

programming languages

(4)

Second-generation:

Assembly language

• A mnemonic system for representing machine instructions

– Mnemonic names for op-codes

Program variables or identifiers: Descriptive

names for memory locations, chosen by the

programmer

(5)

Assembly Language Characteristics

• One-to-one correspondence between machine instructions and assembly instructions

– Programmer must think like the machine

• Inherently machine-dependent

• Converted to machine language by a

program called an assembler

(6)

Program Example

Machine language 156C

166D 5056 30CE C000

Assembly language LD R5, Price

LD R6, ShipCharge ADDI R0, R5 R6

ST R0, TotalCost

HLT

(7)

Third Generation Language

• Uses high-level primitives

– Similar to our pseudocode in Chapter 5

• Machine independent (mostly)

• Examples: FORTRAN, COBOL

• Each primitive corresponds to a sequence of machine language instructions

• Converted to machine language by a

program called a compiler

(8)

Figure 6.2 The evolution of

programming paradigms

(9)

Figure 6.3 A function for checkbook

balancing constructed from simpler

functions

(10)

Figure 6.4 The composition of a typical imperative program or

program unit

(11)

Data Types

• Integer: Whole numbers

• Real (float): Numbers with fractions

• Character: Symbols

• Boolean: True/false

(12)

Variables and Data types

float Length, Width;

int Price, Total, Tax;

char Symbol;

int WeightLimit = 100;

(13)

Data Structure

• Conceptual shape or arrangement of data

A common data structure is the array

– In C

int Scores[2][9];

– In FORTRAN

INTEGER Scores(2,9)

(14)

Figure 6.5 A two-dimensional array

with two rows and nine columns

(15)

Figure 6.6 The conceptual structure of the aggregate type Employee

struct { char Name[25];

int Age;

float SkillRating;

} Employee;

(16)

Assignment Statements

• In C, C++, C#, Java Z = X + y;

• In Ada

Z := X + y;

• In APL (A Programming Language)

Z ← X + y

(17)

Control Statements

• Go to statement

goto 40 20 Evade() goto 70

40 if (KryptoniteLevel < LethalDose) then goto 60 goto 20

60 RescueDamsel() 70 ...

• As a single statement

if (KryptoniteLevel < LethalDose):

RescueDamsel() else:

Evade()

(18)

Control Statements (continued)

• If in Python

if (condition):

statementA else:

statementB

• In C, C++, C#, and Java

if (condition) statementA; else statementB;

• In Ada

IF condition THEN statementA;

ELSE

(19)

Control Statements (continued)

• While in Python

while (condition):

body

• In C, C++, C#, and Java

while (condition) { body }

• In Ada

WHILE condition LOOP body

END LOOP;

(20)

Control Statements (continued)

• Switch statement in C, C++, C#, and Java

switch (variable) {

case 'A': statementA; break;

case 'B': statementB; break;

case 'C': statementC; break;

default: statementD; }

• In Ada

CASE variable IS

WHEN 'A'=> statementA;

WHEN 'B'=> statementB;

WHEN 'C'=> statementC;

(21)

Figure 6.7 The for loop structure and its representation in C++, C#, and

Java

(22)

Comments

• Explanatory statements within a program

• Helpful when a human reads a program

• Ignored by the compiler

/* This is a comment. */

// This is a comment

(23)

Procedural Units

• Many terms for this concept:

– Subprogram, subroutine, procedure, method, function

Unit begins with the function’s header

• Local versus Global Variables

• Formal versus Actual Parameters

• Passing parameters by value versus

reference

(24)

Figure 6.8 The flow of control

involving a function

(25)

Figure 6.9 The function

ProjectPopulation written in the

programming language C

(26)

Figure 6.10

Executing the function Demo and passing

parameters by

value

(27)

Figure 6.11

Executing the function Demo and passing

parameters by

reference

(28)

Figure 6.12 The fruitful function CylinderVolume written in the

programming language C

(29)

Figure 6.13 The translation process

(30)

Figure 6.14 A syntax diagram

of Python’s if-then-else statement

(31)

Figure 6.15 Syntax diagrams describing the structure of a simple algebraic

expression

(32)

Figure 6.16 The parse tree for the

string x + y * z based on the syntax

diagrams in Figure 6.17

(33)

Figure 6.17

Two distinct

parse trees for

the statement

if B1 then if B2

then S1 else S2

(34)

Figure 6.18 An object-oriented

approach to the translation process

(35)

Objects and Classes

Object: Active program unit containing both data and procedures

Class: A template from which objects are constructed

An object is called an instance of the class.

(36)

Figure 6.19 The structure of a class describing a laser weapon in a

computer game

(37)

Components of an Object

Instance Variable: Variable within an object

– Holds information within the object

Method: Procedure within an object

– Describes the actions that the object can perform

Constructor: Special method used to

initialize a new object when it is first

constructed

(38)

Figure 6.21 A class with a

constructor

(39)

Object Integrity

Encapsulation: A way of restricting

access to the internal components of an object

– Private

– Public

(40)

Figure 6.22 Our LaserClass definition

using encapsulation as it would appear in

a Java or C# program

(41)

Additional Object-oriented Concepts

Inheritance: Allows new classes to be defined in terms of previously defined classes

Polymorphism: Allows method calls to be

interpreted by the object that receives the

call

(42)

Programming Concurrent Activities

Parallel (or concurrent) processing:

simultaneous execution of multiple processes

– True concurrent processing requires multiple CPUs

– Can be simulated using time-sharing with a

single CPU

(43)

Figure 6.23 Spawning threads

(44)

Controlling Access to Data

Mutual Exclusion: A method for ensuring that data can be accessed by only one

process at a time

Monitor: A data item augmented with the

ability to control access to itself

(45)

Declarative Programming

Resolution: Combining two or more statements to produce a new statement (that is a logical

consequence of the originals).

– Example: (P OR Q) AND (R OR Q) resolves to (P OR R)

Resolvent: A new statement deduced by resolutionClause form: A statement whose elementary

components are connected by the Boolean operation

OR

Unification: Assigning a value to a variable so

that two statements become “compatible.”

(46)

Figure 6.24 Resolving the statements (P

OR Q) and (R OR ¬Q) to produce (P OR R)

(47)

Figure 6.25 Resolving the statements

(P OR Q), (R OR ¬Q), ¬R, and ¬P

(48)

Prolog

Fact: A Prolog statement establishing a fact

– Consists of a single predicate

Form: predicateName(arguments).

• Example:

parent(bill, mary).

Rule: A Prolog statement establishing a general rule

Form: conclusion :- premise.

• :- means “if”

– Example: wise(X) :- old(X).

參考文獻

相關文件

bgez Branch on greater than or equal to zero bltzal Branch on less than zero and link. bgezal Branch on greter than or equal to zero

Starting from a discussion on this chapter, Jay a nanda proceeds to explain 22 kinds of mental initiation for the pursuit of enlightenment... The first chapter of Madhyamak a vat a

For example, Liu, Zhang and Wang [5] extended a class of merit functions proposed in [6] to the SCCP, Kong, Tuncel and Xiu [7] studied the extension of the implicit Lagrangian

We explicitly saw the dimensional reason for the occurrence of the magnetic catalysis on the basis of the scaling argument. However, the precise form of gap depends

Miroslav Fiedler, Praha, Algebraic connectivity of graphs, Czechoslovak Mathematical Journal 23 (98) 1973,

● In computer science, a data structure is a data organization, management, and storage format that enables efficient access and

z gases made of light molecules diffuse through pores in membranes faster than heavy molecules. Differences

files Controller Controller Parser Parser.