CSC 241 Lecture, Fall 2012
Lebanese American University · Introduction to Computing · 41 pages · Dr. Ramzi Haraty
Showing the first 10 of 41 pages. Download the PDF to see all of it.
More CSC 241 files
Show the text of this lab
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Computer Science: An Overview
Tenth Edition
by
J. Glenn Brookshear
Chapter 6:
Programming Languages
6-2
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
• 6.7 Declarative Programming
6-3
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.1 Generations of
programming languages
6-4
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Second-generation:
Assembly language
• A mnemonic system for representing
machine instructions
– Mnemonic names for op-codes
– Identifiers: Descriptive names for memory
locations, chosen by the programmer
6-5
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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-6
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Program Example
Machine language
156C
166D
5056
30CE
C000
Assembly language
LD R5, Price
LD R6,
ShippingCharge
ADDI R0, R5 R6
ST R0, TotalCost
HLT
6-7
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
6-8
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.2 The evolution of
programming paradigms
6-9
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.3 A function for checkbook
balancing constructed from simpler
functions
6-10
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.4 The composition of a
typical imperative program or
program unit
6-11
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Data Types
• Integer: Whole numbers
• Real (float): Numbers with fractions
• Character: Symbols
• Boolean: True/false
6-12
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Variable Declarations
float Length, Width;
int Price, Total, Tax;
char Symbol;
6-13
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.5 A two-dimensional array
with two rows and nine columns
6-14
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.6 The conceptual structure of
the heterogeneous array Employee
6-15
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.7 The for loop structure and
its representation in C++, C#, and
Java
6-16
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Procedural Units
• Local versus Global Variables
• Formal versus Actual Parameters
• Passing parameters by value versus
reference
• Procedures versus Functions
6-17
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.8 The flow of control
involving a procedure
6-18
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.9 The procedure
ProjectPopulation written in the
programming language C
Figure 6.10
Executing the
procedure
Demo and
passing
parameters by
value
Figure 6.11
Executing the
procedure
Demo and
passing
parameters by
reference
6-21
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.12 The function
CylinderVolume written in the
programming language C
6-22
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.13 The translation process
6-23
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.14 A syntax diagram
of our if-then-else pseudocode
statement
6-24
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.15 Syntax diagrams describing
the structure of a simple algebraic
expression
6-25
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.16 The parse tree for the
string x + y x z based on the syntax
diagrams in Figure 6.17
Figure 6.17
Two distinct
parse trees for
the statement
if B1 then if B2
then S1 else S2
6-27
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.18 An object-oriented
approach to the translation process
6-28
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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.
6-29
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.19 The structure of a class
describing a laser weapon in a
computer game
6-30
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
6-31
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.21 A class with a
constructor
6-32
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Object Integrity
• Encapsulation: A way of restricting
access to the internal components of an
object
– Private versus public
6-33
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.22 Our LaserClass definition
using encapsulation as it would appear in
a Java or C# program
6-34
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
6-35
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
6-36
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.23 Spawning threads
6-37
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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
6-38
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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 resolution
– Clause 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.”
6-39
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.24 Resolving the statements (P
OR Q) and (R OR ¬Q) to produce (P OR R)
6-40
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Figure 6.25 Resolving the statements
(P OR Q), (R OR ¬Q), ¬R, and ¬P
6-41
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
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).
– Example: faster(X,Z) :- faster(X,Y), faster(Y,Z).