ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights...
-
date post
21-Dec-2015 -
Category
Documents
-
view
215 -
download
0
Transcript of ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights...
![Page 1: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/1.jpg)
ISBN 0-321-19362-8
Lecture 01
Preliminaries
![Page 2: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/2.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-2
Lecture 01 Topics
• Motivation• Programming Domains• Language Evaluation Criteria• Influences on Language Design• Language Categories• Language Design Trade-Offs• Implementation Methods• Programming Environments
![Page 3: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/3.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-3
Motivation: Why Study Programming Languages?• Increased ability to express ideas• Improved background for choosing
appropriate languages• Greater ability to learn new languages• Understand significance of
implementation• Ability to design new languages• Overall advancement of computing
![Page 4: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/4.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-4
Programming Domains• Scientific applications
– Large number of floating point computations
• Business applications– Produce reports, use decimal numbers and characters
• Artificial intelligence– Symbols rather than numbers manipulated
• Systems programming– Need efficiency because of continuous use
• Scripting languages– Put a list of commands in a file to be executed
• Special-purpose languages– Simulation
![Page 5: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/5.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-5
Language Evaluation Criteria
• Readability– The most important criterium– Factors:
• Overall simplicity– Too many features is bad– Multiplicity of features is bad
• Orthogonality– A relatively small set of primitive constructs can be
combined in a relatively small number of ways – Every possible combination is legal– Meaning is context independent– Lack of orthogonality leads to exceptions to rules– Makes the language easy to learn and read
![Page 6: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/6.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-6
Language Evaluation Criteria
– Readability factors (continued)• Control statements
– goto
• Defining data types and structures– True vs 1, record vs array
• Syntax considerations– Identifier forms– Special words– Form and meaning
» Meaning should directly follows syntax » static
![Page 7: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/7.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-7
Language Evaluation Criteria
• Writability– Factors:
• Simplicity and orthogonality• Support for abstraction
– Program and data abstraction
• Expressivity
• Reliability– Factors:
• Type checking• Exception handling• Aliasing• Readability and writability
![Page 8: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/8.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-8
Language Evaluation Criteria
• Cost– Training programmers to use language– Writing programs– Compiling programs– Executing programs– Language implementation system– Reliability– Maintaining programs
• Others: portability, generality, well-definedness
![Page 9: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/9.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-9
Influences on Language Design
• Computer architecture: Von Neumann • We use imperative languages, at least
in part, because we use von Neumann machines– Data and programs stored in same
memory– Memory is separate from CPU– Instructions and data are piped from
memory to CPU– Basis for imperative languages
• Variables model memory cells• Assignment statements model piping• Iteration is efficient
![Page 10: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/10.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-10
Von Neumann Architecture
![Page 11: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/11.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-11
Influences on Language Design• Programming methodologies
– 1950s and early 1960s• Simple applications; worry about machine
efficiency
– Late 1960s• People efficiency became important;
readability, better control structures– Structured programming– Top-down design and step-wise refinement
– Late 1970s• Process-oriented to data-oriented
– data abstraction
– Middle 1980s• Object-oriented programming
![Page 12: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/12.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-12
Language Categories
• Imperative– Central features are variables,
assignment statements, and iteration– C, Pascal
![Page 13: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/13.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-13
Language Categories• Factorial in C
#include <stdio.h>long factorial (int n);
void main(void){
printf("The factorial of %d is %d\n", 10, factorial (10));
}
long factorial (int n){
int i;long product =1;for(i = n; i>0); i--)
product = product *i;return product;
}
![Page 14: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/14.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-14
Language Categories
• Functional– Main means of making computations is
by applying functions to given parameters
– LISP, Scheme– Factorial in Lisp
=> (defun factorial (n)
(cond ((= n 0) 1)
(t (* n (factorial (- n 1))))
))
=> (factorial 10)
![Page 15: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/15.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-15
Language Categories
• Object-oriented– Encapsulate data objects with
processing– Inheritance and dynamic type binding– Grew out of imperative languages– C++, Java
![Page 16: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/16.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-16
Language Categories• Factorial in Java
import java.io.*;public class Factorial{ private long product = 1;
private int n;
public Factorial(int k){ n = k;}
void run (void){ int i;
for (i = n; n > 0; i--)product = product *i;
System.out.println("The factorial of " + n + "is " + product);}
public static void main (void){ Factorial fact10 = new Factorial(10);
fact10.run();}
}
=> java Factorial
![Page 17: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/17.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-17
Language Categories
• Logic– Rule-based knowledge base– Rules are specified in no special order– Prolog– Factorial in Prolog
factorial(0, 1).
factorial(N, F) :- N>0, factorial(N1, F1), N is N1 + 1, F is F1 * N.
=>?factorial(10, what).
=> True.
![Page 18: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/18.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-18
Language Design Trade-Offs
• Criteria in conflict– Reliability vs. cost of execution– Readability vs. writability– Flexibility vs. safety
![Page 19: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/19.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-19
Layered View of Computer
![Page 20: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/20.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-20
Implementation Methods
• Compilation– Translate high-level program to
machine code– Slow translation– Fast execution
![Page 21: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/21.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-21
Compilation Process
![Page 22: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/22.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-22
Implementation Methods
• Pure interpretation– No translation– Slow execution– Becoming rare– Used most in scripting languages
![Page 23: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/23.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-23
Pure Interpretation
![Page 24: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/24.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-24
Implementation Methods
• Hybrid implementation systems– Small translation cost– Medium execution speed
• Two-level compilation– Intermediate code interpretation
replaced by JIT (Just In Time) compilation
![Page 25: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/25.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-25
Hybrid Implementation System
![Page 26: ISBN 0-321-19362-8 Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5e5503460f94a3e90c/html5/thumbnails/26.jpg)
Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 1-26
Programming Environments
• The collection of tools used in software development
• UNIX– An older operating system and tool
collection
• Borland JBuilder– An integrated development environment
for Java
• Microsoft Visual Studio.NET– A large, complex visual environment– Used to program in C#, Visual BASIC.NET,
Jscript, J#, or C++