Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the...
Transcript of Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the...
![Page 1: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/1.jpg)
1
Computer Science: An Overview
Chapter 6:Programming Languages
Computer Science: An OverviewEleventh Edition
by J. Glenn Brookshear
Copyright © 2012 Pearson Education, Inc.
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
Copyright © 2012 Pearson Education, Inc. 0-2
• 6.6 Programming Concurrent Activities
• 6.7 Declarative Programming
![Page 2: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/2.jpg)
2
Figure 6.1 Generations of programming languages
Copyright © 2012 Pearson Education, Inc. 0-3
Second-generation:Assembly language
• A mnemonic system for representing hi i t timachine instructions
– Mnemonic names for op-codes
– Identifiers: Descriptive names for memory locations, chosen by the programmer
Copyright © 2012 Pearson Education, Inc. 0-4
![Page 3: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/3.jpg)
3
Assembly Language Characteristics
• One-to-one correspondence between hi i t ti d blmachine instructions and assembly
instructions– Programmer must think like the machine
• Inherently machine-dependent
• Converted to machine language by a
Copyright © 2012 Pearson Education, Inc. 0-5
• Converted to machine language by a program called an assembler
Program Example
Machine language Assembly language
156C166D505630CEC000
LD R5, PriceLD R6, ShipChargeADDI R0, R5 R6ST R0, TotalCostHLT
Copyright © 2012 Pearson Education, Inc. 0-6
![Page 4: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/4.jpg)
4
Third Generation Language
• Uses high-level primitivesSimilar to o r pse docode in Chapter 5– Similar to our pseudocode in Chapter 5
• Machine independent (mostly)• Examples: FORTRAN, COBOL• Each primitive corresponds to a sequence
of machine language instructions
Copyright © 2012 Pearson Education, Inc. 0-7
g g• Converted to machine language by a
program called a compiler
Figure 6.2 The evolution of programming paradigms
Copyright © 2012 Pearson Education, Inc. 0-8
![Page 5: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/5.jpg)
5
Figure 6.3 A function for checkbook balancing constructed from simpler functions
Copyright © 2012 Pearson Education, Inc. 0-9
Figure 6.4 The composition of a typical imperative program or program unit
Copyright © 2012 Pearson Education, Inc. 0-10
![Page 6: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/6.jpg)
6
Data Types
• Integer: Whole numbers
• Real (float): Numbers with fractions
• Character: Symbols
• Boolean: True/false
Copyright © 2012 Pearson Education, Inc. 0-11
Variable Declarations
float Length, Width;
int Price, Total, Tax;
char Symbol;
Copyright © 2012 Pearson Education, Inc. 0-12
![Page 7: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/7.jpg)
7
Figure 6.5 A two-dimensional array with two rows and nine columns
Copyright © 2012 Pearson Education, Inc. 0-13
Figure 6.6 The conceptual structure of the aggregate type Employee
Copyright © 2012 Pearson Education, Inc. 0-14
![Page 8: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/8.jpg)
8
Figure 6.7 The for loop structure and its representation in C++, C#, and Java
Copyright © 2012 Pearson Education, Inc. 0-15
Procedural Units
• Local versus Global Variables
• Formal versus Actual Parameters
• Passing parameters by value versus reference
• Procedures versus Functions
Copyright © 2012 Pearson Education, Inc. 0-16
![Page 9: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/9.jpg)
9
Figure 6.8 The flow of control involving a procedure
Copyright © 2012 Pearson Education, Inc. 0-17
Figure 6.9 The procedure ProjectPopulation written in the programming language C
Copyright © 2012 Pearson Education, Inc. 0-18
![Page 10: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/10.jpg)
10
Figure 6.10Executing the procedure Demo and passing parameters by value
Figure 6.11Executing the procedure Demo and passing parameters by reference
![Page 11: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/11.jpg)
11
Figure 6.12 The function CylinderVolume written in the programming language C
Copyright © 2012 Pearson Education, Inc. 0-21
Figure 6.13 The translation process
Copyright © 2012 Pearson Education, Inc. 0-22
![Page 12: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/12.jpg)
12
Figure 6.14 A syntax diagram of our if-then-else pseudocode statement
Copyright © 2012 Pearson Education, Inc. 0-23
Figure 6.15 Syntax diagrams describing the structure of a simple algebraic expression
Copyright © 2012 Pearson Education, Inc. 0-24
![Page 13: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/13.jpg)
13
Figure 6.16 The parse tree for the string x + y x z based on the syntax diagrams in Figure 6.17
Copyright © 2012 Pearson Education, Inc. 0-25
Figure 6.17Two distinct parse trees for the statement if B1 then if B2 then S1 else S2
![Page 14: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/14.jpg)
14
Figure 6.18 An object-oriented approach to the translation process
Copyright © 2012 Pearson Education, Inc. 0-27
Objects and Classes
• Object: Active program unit containing b th d t d dboth data and procedures
• Class: A template from which objects are constructed
An object is called an instance of the class
Copyright © 2012 Pearson Education, Inc. 0-28
An object is called an instance of the class.
![Page 15: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/15.jpg)
15
Figure 6.19 The structure of a class describing a laser weapon in a computer game
Copyright © 2012 Pearson Education, Inc. 0-29
Components of an Object
• Instance Variable: Variable within an bj tobject
– Holds information within the object
• Method: Procedure within an object– Describes the actions that the object can
perform
Copyright © 2012 Pearson Education, Inc. 0-30
perform
• Constructor: Special method used to initialize a new object when it is first constructed
![Page 16: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/16.jpg)
16
Figure 6.21 A class with a constructor
Copyright © 2012 Pearson Education, Inc. 0-31
Object Integrity
• Encapsulation: A way of restricting t th i t l t faccess to the internal components of an
object– Private
– Public
Copyright © 2012 Pearson Education, Inc. 0-32
![Page 17: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/17.jpg)
17
Figure 6.22 Our LaserClass definition using encapsulation as it would appear in a Java or C# program
Copyright © 2012 Pearson Education, Inc. 0-33
Additional Object-oriented Concepts
• Inheritance: Allows new classes to be defined in terms of previously defineddefined in terms of previously defined classes
• Polymorphism: Allows method calls to be interpreted by the object that receives the call
Copyright © 2012 Pearson Education, Inc. 0-34
![Page 18: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/18.jpg)
18
Programming Concurrent Activities
• Parallel (or concurrent) processing:i lt ti f lti lsimultaneous execution of multiple
processes– True concurrent processing requires multiple
CPUs
– Can be simulated using time-sharing with a
Copyright © 2012 Pearson Education, Inc. 0-35
single CPU
Figure 6.23 Spawning threads
Copyright © 2012 Pearson Education, Inc. 0-36
![Page 19: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/19.jpg)
19
Controlling Access to Data
• Mutual Exclusion: A method for ensuring th t d t b d b lthat data can be accessed by only one process at a time
• Monitor: A data item augmented with the ability to control access to itself
Copyright © 2012 Pearson Education, Inc. 0-37
Declarative Programming
• Resolution: Combining two or more statements to produce a new statement (that is a logicalto 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
Copyright © 2012 Pearson Education, Inc. 0-38
components are connected by the Boolean operation OR
• Unification: Assigning a value to a variable so that two statements become “compatible.”
![Page 20: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/20.jpg)
20
Figure 6.24 Resolving the statements (POR Q) and (R OR ¬Q) to produce (P OR R)
Copyright © 2012 Pearson Education, Inc. 0-39
Figure 6.25 Resolving the statements (P OR Q), (R OR ¬Q), ¬R, and ¬P
Copyright © 2012 Pearson Education, Inc. 0-40
![Page 21: Chapter 6: Programming Languageslanubile/fisica/PPT Chap 1106.pdf · 10 Figure 6.10 Executing the procedure Demo and passing parameters by value Figure 6.11 Executing the procedure](https://reader031.fdocuments.in/reader031/viewer/2022031004/5b86aa4a7f8b9a162d8d6d57/html5/thumbnails/21.jpg)
21
Prolog
• Fact: A Prolog statement establishing a fact– Consists of a single predicate– 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”
Copyright © 2012 Pearson Education, Inc. 0-41
• :- means “if”
– Example: wise(X) :- old(X).
– Example: faster(X,Z) :- faster(X,Y), faster(Y,Z).