Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to...
Transcript of Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to...
![Page 1: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/1.jpg)
1
Polly Huang, NTU EE Programming Language 1
Introduction to Computer Science
Polly HuangNTU EEhttp://homepage.ntu.edu.tw/[email protected]
Polly Huang, NTU EE Programming Language 2
Chapter 6
Programming Languages
![Page 2: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/2.jpg)
2
Polly Huang, NTU EE Programming Language 3
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
Polly Huang, NTU EE Programming Language 4
Generations of Programming Languages
![Page 3: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/3.jpg)
3
Polly Huang, NTU EE Programming Language 5
1st Generation: Machine Language
156C166D505630CEC000
®Machine language®Operations in op-codes®Operands
® Numerical values® Register number® Memory location address
Polly Huang, NTU EE Programming Language 6
2nd Generation:Assembly Language® A mnemonic system for representing
programs® Mnemonic: easy to remember
® More descriptive® Enabling programming without tables such as the
one in Appendix C ® Things are mnemonic
® Op-codes in mnemonic names® Registers in mnemonic names® Memory locations in mnemonic names of the
programmer’s choice (Identifiers/variables)
![Page 4: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/4.jpg)
4
Polly Huang, NTU EE Programming Language 7
Assembly Language ExampleMachine language
156C166D505630CEC000
Assembly language
LD R5, PriceLD R6, ShippingChargeADDI R0, R5 R6ST R0, TotalCostHLT
Polly Huang, NTU EE Programming Language 8
Just a Little Step Further® One-to-one correspondence between
machine instructions and assembly instructions
® Inherently machine-dependent® Converted to machine language by a
program called an assembler
® Thing are easier to remember, yes.® But programmer still needs to think like the
machine!
![Page 5: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/5.jpg)
5
Polly Huang, NTU EE Programming Language 9
Third Generation Language® Uses high-level primitives
® Similar to our pseudocode in Chapter 5
® Machine independent (mostly)® Each primitive corresponds to a short
sequence of machine language instructions® Converted to machine language by a
program called compiler® Examples: FORTRAN, COBOL, BASIC
Polly Huang, NTU EE Programming Language 10
Compilers vs. Interpreters®Compilers
®Compile several machine instructions into short sequences to simulate the activity requested by a single high-level primitive
®Produce a machine-language copy of a program that would be executed later
® Interpreters®Execute the instructions as they were
translated
![Page 6: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/6.jpg)
6
Polly Huang, NTU EE Programming Language 11
The Evolution
Polly Huang, NTU EE Programming Language 12
Imperative Paradigm®Procedural paradigm®Develops a sequence of commands that
when followed, manipulate data to produce the desired result
®Approaches a problem by trying to find an algorithm for solving it
![Page 7: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/7.jpg)
7
Polly Huang, NTU EE Programming Language 13
Object-Oriented Paradigm® Grouping/classifying entities in the program
® Entities are the objects® Groups are the classes® Objects of a class share certain properties® Properties are the variables or methods
® Encapsulation of data and procedures® e.g., Lists come with sorting functions
® Natural modular structure and program reuse® Inheriting from mother class definitions
® Many large-scale software systems are developed in the object oriented fashion
Polly Huang, NTU EE Programming Language 14
Declarative Paradigm® Emphasizes
® “What is the problem?”® Rather than “What algorithm is required to solve
the problem?”
® Implemented a general problem-solving algorithm in the language
® Develops a statement of the problemcompatible with the algorithm and then applies the algorithm to solve it
![Page 8: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/8.jpg)
8
Polly Huang, NTU EE Programming Language 15
Functional Paradigm®Views the process of program
development as connecting predefined “black boxes,” each of which accepts inputs and produces outputs
®Mathematicians refer to such “boxes”as functions
®Constructs functions as nested complexes of simpler functions
Polly Huang, NTU EE Programming Language 16
Functional Paradigm Example
![Page 9: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/9.jpg)
9
Polly Huang, NTU EE Programming Language 17
LISP Expressions(Divide (Sum Numbers)
(Count Numbers))
(First (Sort List))
Polly Huang, NTU EE Programming Language 18
Advantages of FP®Constructing complex software from
predefined primitive functions leads to well-organized systems
®Provides an environment in which hierarchies of abstraction are easily implemented, enabling new software to be constructed from large predefined components rather than from scratch
![Page 10: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/10.jpg)
10
Polly Huang, NTU EE Programming Language 19
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
Polly Huang, NTU EE Programming Language 20
Types of Statements®Declarative statements
®Define customized terminology that is used later in the program
® Imperative statements®Describe steps in the underlying algorithms
®Comments®Enhance the readability of a program
![Page 11: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/11.jpg)
11
Polly Huang, NTU EE Programming Language 21
A Typical Imperative Program
Polly Huang, NTU EE Programming Language 22
Declaration Statements®Data terms
®Variables®Literals®Constants
®Data types®Declaring data terms with proper types®Data structure
![Page 12: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/12.jpg)
12
Polly Huang, NTU EE Programming Language 23
Variables, LiteralsEffectiveAlt ß Altimeter + 645
®Variables® EffectiveAlt, Altimeter
®Literals® 645
Polly Huang, NTU EE Programming Language 24
Constantsconst int AirportAlt = 645;
®Constants
![Page 13: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/13.jpg)
13
Polly Huang, NTU EE Programming Language 25
Data Type®Common types
® Integer, real, character, Boolean
®Decides® Interpretation of data®Operations that can be performed on the
data
Polly Huang, NTU EE Programming Language 26
Variable Declarations® Pascal
Length, width: real;Price, Tax, Total: integer;
® C, C++, Javafloat Length, width;int Price, Tax, Total;
® FORTRANREAL Length, WidthINTEGER Price, Tax, Total
![Page 14: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/14.jpg)
14
Polly Huang, NTU EE Programming Language 27
Data Structure®Conceptual shape of data®Common data structure
®Homogeneous array®Heterogeneous array
Polly Huang, NTU EE Programming Language 28
Declaration of a 2D Array®C
int Scores[2][9];
® Javaint Scores[][]=new int [2][9];
®PascalScores: array[3..4, 12..20] of
integer;
![Page 15: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/15.jpg)
15
Polly Huang, NTU EE Programming Language 29
2D Array
Polly Huang, NTU EE Programming Language 30
Declaration of Heterogeneous Array
![Page 16: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/16.jpg)
16
Polly Huang, NTU EE Programming Language 31
Assignment Statements ®C, C++, Java
Total = Price + Tax;
®Ada, PascalTotal := Price + Tax;
®APLTotal <- Price + Tax;
Polly Huang, NTU EE Programming Language 32
Operators® Operator precedence
® Operator priority® Plus and minus® Multiply and divide ® Add and subtract
® Operator overloading® Exact function depends on the operand data types® 12 + 43® ‘abc’ + ’def’
![Page 17: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/17.jpg)
17
Polly Huang, NTU EE Programming Language 33
Control Statements® Alter the execution sequence of the program® goto is the simplest control statement
® Examplegoto 40
20 Total = price + 10goto 70
40 if Price < 50 goto 60goto 20
60 Total = Price + 570 stop
if( Price < 50 ) thenTotal = Price + 5
elseTotal = Price + 10
endifstop
Polly Huang, NTU EE Programming Language 34
4 Types of Controls
![Page 18: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/18.jpg)
18
Polly Huang, NTU EE Programming Language 35
Comments®For inserting explanatory statements
(internal documentation)®C++ and Java
/* This isa comment
*/// This is a comment
®Explain the program, not to repeat it®Example: Total = Price + Tax;
Polly Huang, NTU EE Programming Language 36
Procedures® A procedure
® A set of instructions for performing a task ® Used as an abstract tool by other program units
® Control ® Transferred to the procedure at the time its
services are required ® Returned to the original program unit (calling unit)
after the procedure is finished® The process of transferring control to a
procedure is often referred to as calling or invoking the procedure
![Page 19: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/19.jpg)
19
Polly Huang, NTU EE Programming Language 37
The 5th Type of Control
Polly Huang, NTU EE Programming Language 38
Procedure Example
Header Body
![Page 20: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/20.jpg)
20
Polly Huang, NTU EE Programming Language 39
Pass by Value Formal ParameterActual Parameter
Polly Huang, NTU EE Programming Language 40
Pass by Reference
![Page 21: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/21.jpg)
21
Polly Huang, NTU EE Programming Language 41
Quiz Time!
Polly Huang, NTU EE Programming Language 42
Functions®The 6th type of control®A program unit similar to procedure unit
except that a value is transferred back to the calling unit
®ExampleCost = 2 * TotalCost( Price, TaxRate );
![Page 22: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/22.jpg)
22
Polly Huang, NTU EE Programming Language 43
Function Example
Polly Huang, NTU EE Programming Language 44
Input/Output Statements® I/O statements are often not primitives of
programming languages® Not really a control® Most programming languages implement I/O
operations as procedures or functions® Examples
printf( “%d %d\n”, value1, value2 );
cout << value << endl;
![Page 23: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/23.jpg)
23
Polly Huang, NTU EE Programming Language 45
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
Polly Huang, NTU EE Programming Language 46
The Translation Process
C code Machine code
® Think of it being an automated English-Chinese translator
![Page 24: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/24.jpg)
24
Polly Huang, NTU EE Programming Language 47
Lexical Analyzer® Reads the source program symbol by symbol,
identifying which groups of symbols represent single units, and classifying those units
® As each unit is classified, the lexical analyzer generates a bit pattern known as a token to represent the unit and hands the token to the parser
® Like mapping words according to a dictionary, except the dictionary here is much smaller and non-ambiguous
X + Y * Z ‘X’, ‘Y’, ‘Z’, ‘+’, ‘*’
Polly Huang, NTU EE Programming Language 48
Parsing®Group lexical units (tokens) into
statements® Identify the grammatical structure of the
program ®Recognize the role of each component
![Page 25: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/25.jpg)
25
Polly Huang, NTU EE Programming Language 49
Syntax Diagram®Pictorial representations of a program’s
grammatical structure®Nonterminals (rectangles)
®Requires further description®Terminals (ovals)
Polly Huang, NTU EE Programming Language 50
Syntax Diagram of Expression
Term +/- Term +/- Term +/-Term …
Factor *// Factor *// Factor *// Factor …
x/y/z
![Page 26: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/26.jpg)
26
Polly Huang, NTU EE Programming Language 51
Quiz Time!
Polly Huang, NTU EE Programming Language 52
Parse Tree® Pictorial form which represents a particular
string conforming to a set of syntax diagrams® The process of parsing a program is
essentially that of constructing a parse tree for the source program
® A parse tree represents the parser’s understanding of the programmer’s grammatical composition
![Page 27: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/27.jpg)
27
Polly Huang, NTU EE Programming Language 53
Parse Tree x+y*z
Polly Huang, NTU EE Programming Language 54
Double Quiz Time!
![Page 28: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/28.jpg)
28
Polly Huang, NTU EE Programming Language 55
Dangling else Problem® if B1
then if B2 then S1 else S2
® if B1then if B2 then S1
else S2
Polly Huang, NTU EE Programming Language 56
Quiz Time!
![Page 29: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/29.jpg)
29
Polly Huang, NTU EE Programming Language 57
Parse Trees
Polly Huang, NTU EE Programming Language 58
Syntax Tree Ambiguity®There could be multiple syntax trees for
one statement
®When the results are the same, it is OK®When the results are not the same, we
call the statement an ambiguous statement
![Page 30: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/30.jpg)
30
Polly Huang, NTU EE Programming Language 59
Code Generation® Given the parse tree, create machine code
® Z ß X + Y;® Load X ® Load Y® ADDI X Y
® Complication® When X is an integer and Y is a floating point
number® Convert X from integer to floating point number® Use ADDF instead
Polly Huang, NTU EE Programming Language 60
Code Optimization®Line 1. X ß Y + Z;®Line 2. W ß X + Z;
®Values of Y, Z, and X already in registers after Line 1
®No need to store the values back to memory and then load again for Line 2.
![Page 31: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/31.jpg)
31
Polly Huang, NTU EE Programming Language 61
Intertwined Process® Lexical analyzer
® Recognize a token ® Pass to parser
® Parser® Analyze grammatical structure® Might need another token
® Back to lexical analyzer® Recognize a statement
® Pass to code generator
® Code generator® Generate machine code® Might need another statement
® Back to parser
Polly Huang, NTU EE Programming Language 62
Object-Oriented Translation
![Page 32: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/32.jpg)
32
Polly Huang, NTU EE Programming Language 63
Extended Process
So far, here!
Polly Huang, NTU EE Programming Language 64
Linker® Most programming environments allow the
modules of a program to be developed and translated as individual units at different times
® Linker links several ® Object programs® Operating system routines and utility software
® #include <xxxx.h>
® To produce a complete, executable program (load module) that is in turn stored as a file in the mass storage system
![Page 33: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/33.jpg)
33
Polly Huang, NTU EE Programming Language 65
Loader® Often part of the operating system’s
scheduler ® Places the load module in memory® Important in multitasking systems
® Exact memory area available to the programs is not known until it is time to execute it
® Loader also makes any final adjustments that might be needed once the exact memory locationof the program is known (e.g. dealing with the JUMP instruction)
Polly Huang, NTU EE Programming Language 66
Software Development Package® Editor
® Often customized® Example
® Color for reserved words® Aligned indentation
® Translator® The compiler/interpreter® The most important part
® Debugger® To allow easy tracking of program states
![Page 34: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/34.jpg)
34
Polly Huang, NTU EE Programming Language 67
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
Polly Huang, NTU EE Programming Language 68
Objects and Classes®Object
®Active program unit containing both data and procedures
®Class®A template for all objects of the same type
An Object is often called an instance of the class.
![Page 35: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/35.jpg)
35
Polly Huang, NTU EE Programming Language 69
Components of an object® Instance variable
® Variable within an object
® Method® Function or procedure within an object® Can manipulate the object’s instance variables
® Constructor® Special method to initialize a new object instance
Polly Huang, NTU EE Programming Language 70
Class Example
C++:LaserClass Laser1, Laser2; Java:LaserClass Laser1 = new LaserClass();
Laser1.fire();
![Page 36: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/36.jpg)
36
Polly Huang, NTU EE Programming Language 71
Constructor Example
C++:LaserClass Laser1(50); Java:LaserClass Laser1 = new LaserClass(50);
Polly Huang, NTU EE Programming Language 72
Encapsulation®Encapsulation
®A way of restricting access to the internal components of an object
®Private vs. Public
![Page 37: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/37.jpg)
37
Polly Huang, NTU EE Programming Language 73
Encapsulation Example
Polly Huang, NTU EE Programming Language 74
Additional 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®For example
® draw()® Different for circle vs. square object
![Page 38: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/38.jpg)
38
Polly Huang, NTU EE Programming Language 75
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
Polly Huang, NTU EE Programming Language 76
Program 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®Examples: Ada task and Java thread
![Page 39: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/39.jpg)
39
Polly Huang, NTU EE Programming Language 77
Parallel Processing
Polly Huang, NTU EE Programming Language 78
Basic Idea® Creating new process® Handling communication between processes
® Problem accessing shared data® Mutually exclusive access over critical regions
® Mechanism on the program® Data accessed by only one process at a time
® Monitor® Mechanism on the data® A data item augmented with the ability to control access
to itself
![Page 40: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/40.jpg)
40
Polly Huang, NTU EE Programming Language 79
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
Polly Huang, NTU EE Programming Language 80
Logical Deduction®Either Kermit is on stage (Q) or Kermit
is sick (P)®Kermit is not on stage (not Q)®Kermit is sick (P)
PQPQQORP
¬
→¬
![Page 41: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/41.jpg)
41
Polly Huang, NTU EE Programming Language 81
Resolution®Combining two or more statements to
produce a new, logically equivalent statement
®Resolvent® A new statement deduced by resolution
QQORP
¬ P
Polly Huang, NTU EE Programming Language 82
Quiz Time!
![Page 42: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/42.jpg)
42
The Truth Table
Polly Huang, NTU EE Programming Language 83
P R Q P ∨ Q R ∨ ¬Q P ∨ R P ∧ R ¬P ∨ R
T T T T T T T T
T T F T T T T T
T F T T F T F F
T F F T T T F F
F T T T T T F T
F T F F T T F T
F F T T F F F T
F F F F T F F T
∨: OR ∧: AND ¬: NOT
(P v Q) being true
Polly Huang, NTU EE Programming Language 84
P R Q P ∨ Q R ∨ ¬Q P ∨ R P ∧ R ¬P ∨ R
T T T T T T T T
T T F T T T T T
T F T T F T F F
T F F T T T F F
F T T T T T F T
F T F F T T F T
F F T T F F F T
F F F F T F F T
![Page 43: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/43.jpg)
43
(¬Q) also true
Polly Huang, NTU EE Programming Language 85
P R Q P ∨ Q R ∨ ¬Q P ∨ R P ∧ R ¬P ∨ R
T T T T T T T T
T T F T T T T T
T F T T F T F F
T F F T T T F F
F T T T T T F T
F T F F T T F T
F F T T F F F T
F F F F T F F T
(P v Q) and (¬Q) both true
Polly Huang, NTU EE Programming Language 86
P R Q P ∨ Q R ∨ ¬Q P ∨ R P ∧ R ¬P ∨ R
T T T T T T T T
T T F T T T T T
T F T T F T F F
T F F T T T F F
F T T T T T F T
F T F F T T F T
F F T T F F F T
F F F F T F F T
![Page 44: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/44.jpg)
44
Under“(P v Q) and (¬Q) being true”
Polly Huang, NTU EE Programming Language 87
P R Q P ∨ Q R ∨ ¬Q P ∨ R P ∧ R ¬P ∨ R
T T T T T T T T
T T F T T T T T
T F T T F T F F
T F F T T T F F
F T T T T T F T
F T F F T T F T
F F T T F F F T
F F F F T F F T®There are only 2 cases that the (P v Q)
and (¬Q) are both true.®Under these 2 cases, P, (R∨¬Q), (P∨R)
are also true.
Polly Huang, NTU EE Programming Language 88
Resolution®Combining two or more statements to
produce a new, logically equivalent statement
®Resolvent® A new statement deduced by resolution
QQORP
¬ PP OR any statement
OR any statementQ¬
![Page 45: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/45.jpg)
45
Polly Huang, NTU EE Programming Language 89
Ask Your Brain to Resolve This (no truth table)
??
Polly Huang, NTU EE Programming Language 90
Obvious? No?
![Page 46: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/46.jpg)
46
Polly Huang, NTU EE Programming Language 91
Quiz Time!
Try the computer’s way again
Polly Huang, NTU EE Programming Language 92
Magic®Deduction computations are
implemented in the programming language
®Resolutions are done automatically®By checking the rows ®And inferring the columns that are true
®All you need to do is to describe the ‘rules’ and ‘facts’ in the logical forms
![Page 47: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/47.jpg)
47
Polly Huang, NTU EE Programming Language 93
Truth Table for (PvQ) and (¬Q)
P Q P¬ QP ∧ QP ∨ QP→ QP ↔
False False
False
False
False
False False
False
False False
False False
False
True
True
True True
True
True True
True
True
True
True
True
True
True
True
Polly Huang, NTU EE Programming Language 94
Confirming the Inconsistency of a Set of Inconsistent Clauses
![Page 48: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/48.jpg)
48
Polly Huang, NTU EE Programming Language 95
Unification®The process of assigning values to
variables so that resolution can be performed
homeatisMaryXatislambsMaryXatisMary )'()( →
)()'()(
homeatisMaryXatislambsMaryORXatisMary¬
)()'()(
homeatisMaryhomeatislambsMaryORhomeatisMary¬
)'( homeatislambsMary
Polly Huang, NTU EE Programming Language 96
For Simplicity: Clause Form®P® P®P OR Q
®Clause form)()()( 2211 NN QORPANDANDQORPANDQORP !
¬
![Page 49: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/49.jpg)
49
Polly Huang, NTU EE Programming Language 97
Quiz Time!
Polly Huang, NTU EE Programming Language 98
Prolog ®PROgramming in LOGic®A Prolog program consists of a
collection of initial statements upon which the underlying algorithm bases its deductive reasoning
![Page 50: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/50.jpg)
50
Polly Huang, NTU EE Programming Language 99
Prolog Syntax® Fact
® predicateName(arguments).® Example: parent(bill, mary).
® Rule® conclusion :- premise.® :- means “if”® Example: wise(X) :- old(X).
® Example: faster(X,Z) :- faster(X,Y), faster(Y,Z).
® All statements must be fact or rules.
Polly Huang, NTU EE Programming Language 100
Using Prolog I® Given
® faster(X,Z) :- faster(X,Y), faster(Y,Z)® faster(turtle, snail)
® faster(rabbit, turtle)
® Request® faster(rabbit, snail)?
® Result® True® Using unification
![Page 51: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/51.jpg)
51
Polly Huang, NTU EE Programming Language 101
Using Prolog II® Given
® faster(X,Z) :- faster(X,Y), faster(Y,Z)® faster(turtle, snail)
® faster(rabbit, turtle)
® Request® faster(W, snail)?
® Result® faster(turtle, snail)
® faster(rabbit, snail)
Polly Huang, NTU EE Programming Language 102
Using Prolog III® Given
® faster(X,Z) :- faster(X,Y), faster(Y,Z)® faster(turtle, snail)
® faster(rabbit, turtle)
® Request® faster(V, W)?
® Result® faster(turtle, snail)® faster(rabbit, turtle)
® faster(rabbit, snail)
![Page 52: Chapter 6homepage.ntu.edu.tw/~pollyhuang/teach/intro-cs... · Approaches a problem by trying to find an algorithm for solving it. 7 Polly Huang, NTU EE Programming Language 13 ...](https://reader033.fdocuments.net/reader033/viewer/2022041505/5e24ce9c729e7f66c934700c/html5/thumbnails/52.jpg)
52
Polly Huang, NTU EE Programming Language 103
Questions?