







Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An introduction to the cs314: principles of programming languages course offered at rutgers university in the fall of 2007. The course goals, the importance of learning multiple programming languages, and an overview of the history of programming languages. The syllabus includes topics such as formal languages, logic programming, functional programming, and parallel programming.
Typology: Exams
1 / 13
This page cannot be seen from the preview
Don't miss anything!
Introduction 1, CS314 Fall 2007 ©, BG Ryder
1
http://remus.rutgers.edu/cs314/f2007/ryder http://remus.rutgers.edu/cs314/f2007/ryder
Introduction 1, CS314 Fall 2007 ©, BG Ryder
2
Introduction 1, CS314 Fall 2007 ©, BG Ryder
3
http:http://remus//remus..rutgersrutgers.edu/cs314/f2007/ryder/index.html.edu/cs314/f2007/ryder/index.html
grading, exam policy, etc.
related readings in Scott text) and look at
important dates
we will study
Introduction 1, CS314 Fall 2007 ©, BG Ryder
4
class (and hopefully before)
sided
grade!
Introduction 1, CS314 Fall 2007 ©, BG Ryder
7
“a language intended for use by a person to express a
process by which a computer can solve a problem”
--Hope and Jipping
“a set of conventions for communicating an algorithm”
--E. Horowitz
“ the art of programming is the art of organizing
complexity”
--E. Dijkstra, 1972
Introduction 1, CS314 Fall 2007 ©, BG Ryder
8
problem in a particular manner
different paradigms
computing model changes
implementation, in order to us the PL effectively
Introduction 1, CS314 Fall 2007 ©, BG Ryder
9
compiler
Source code
target program input
output
Scott Ch 1.
Introduction 1, CS314 Fall 2007 ©, BG Ryder
10
source code
input
output interpreter
Introduction 1, CS314 Fall 2007 ©, BG Ryder
13
scanner
parser
intermediate
code
generator
position = initial + rate * 60;
id1 := id2 + id3 * 60
optimizer
code generator
Introduction 1, CS314 Fall 2007 ©, BG Ryder
14
scanner
parser
intermediate
code
generator
symbol table
(position, ...)
(initial, …)
(rate, …)
:= parse tree
id
id2 *
id3 int-2-real
tmp1 = inttoreal (60)
tmp2 = id3 * tmp
tmp3 = id2 + tmp
id1 = tmp
Introduction 1, CS314 Fall 2007 ©, BG Ryder
15
optimizer
code generator
Machine dependent
code improvement
tmp1 = inttoreal (60)
tmp2 = id3 * tmp
id1 = id2 + tmp
movf id3, R
mulf #60.0, R
movf id2, R
addf R2, R
movf R1, id
move R1, R-base, R-offset
…
movf R1, 45733
Introduction 1, CS314 Fall 2007 ©, BG Ryder
16
common divisor algorithm - oldest known algorithm
mechanical computational devices
programmer
trajectories
ACM SIGPLAN HOPL conferences
Introduction 1, CS314 Fall 2007 ©, BG Ryder
19
Harvard) designed for array processing
Stanford) designed for non-numerical computation
Labs) designed for string processing
Introduction 1, CS314 Fall 2007 ©, BG Ryder
20
computing [Fortran, Algol60, Cobol]
designed as a simulation language [Algol60]
computing [Algol60]
Introduction 1, CS314 Fall 2007 ©, BG Ryder
21
teaching programming [Algol60]
for Artificial Intelligence applications
systems programming
Introduction 1, CS314 Fall 2007 ©, BG Ryder
22
simulation [Simula]
considered first real object-oriented PL, [Simula]
(MIT)[Lisp]
Introduction 1, CS314 Fall 2007 ©, BG Ryder
25
prototyping, framework programming (large # of runtime
libraries)
construction