CS 1621 Structure of Programming Languages

Course Syllabus

 

This page will be updated frequently throughout the term.  Check it often.

 

Class #

Date

References

Topics/Other Info

1

Aug. 29

Sebesta Ch. 1

Introduction

2

Aug. 31

Sebesta Ch. 1

Language Design and Implementation Issues

3

Sep. 2

Sebesta Ch. 1

Finish Language Design and Impl. Issues

4

Sep. 7

Sebesta Ch. 2

BRIEF PL History

5

Sep. 9

Sebesta Ch. 3 & 4

Syntax and Semantics; Generators and Recognizers; Lexemes and Tokens, Regular Grammars and FSAs

6

Sep. 12

Sebesta Ch. 3 & 4

Finish Regular Grammars; Context-Free Grammas and PDAs; Parse Trees; Ambiguous Grammars

7

Sep. 14

Sebesta Ch. 3 & 4

More on Context-Free Grammars

8

Sep. 16

Sebesta Ch. 4

Parsing and LL(1) Grammars

9

Sep. 19

Sebesta Ch. 4

 

Sebesta Ch. 3

Finish LL(1) Grammars

 

Static Semantics

10

Sep. 21

Sebesta Ch. 5

Ids, Variables and Binding

11

Sep. 23

Sebesta Ch. 5

More on binding; data types

12

Sep. 26

Sebesta Ch. 5

More on data types and type compatibility

13

Sep. 28

Sebesta Ch. 5

 

 

 

 

 

Scope vs. Lifetime; static vs. dynamic scope

Articles on Perl local variables:

http://perl.plover.com/FAQs/Namespaces.html

http://perl.plover.com/local.html

 

 

14

Sep. 30

Sebesta Ch. 6

Primitive Data Types

 

Review for Exam 1

15

Oct. 3

 

EXAM 1

16

Oct. 5

Sebesta Ch. 6

String types

17

Oct. 7

Sebesta Ch. 6

Start array types; allocation and indexing

18

Oct. 10

Sebesta Ch. 6

Finish Array Types

19

Oct. 12

Sebesta Ch. 6

Pointer types and dynamic storage

20

Oct. 14

Sebesta Ch. 6

Heap implementation and management; compaction; programmer managed heap; reference counts

21

Oct. 17

Sebesta Ch. 6

 

Sebesta Ch. 7

Garbage collection

 

Expressions: precedence and associativity

22

Oct. 19

Sebesta Ch. 7

More expressions: Boolean expressions; short-circuit evaluation; implicit coercions

23

Oct. 24

Sebesta Ch. 8

Control structures: selection (if, case) and iteration (while)

24

Oct. 26

Sebesta Ch. 8

More iteration (for and arbitrary loops)

25

Oct. 28

Sebesta Ch. 8


Sebesta
Ch. 9

foreach” loops

 

Subprograms: procedures vs. functions; Local variables

26

Oct. 31

Sebesta Ch. 9

Parameters: in, out and in out effect; value and reference (and constant reference) parameters

27

Nov. 2

Sebesta Ch. 9

Pass by result; Pass by value-result (and difference from reference)

28

Nov. 4

Sebesta Ch. 9

Pass by name; subprograms as parameters; generics

29

Nov. 7

 

EXAM 2

30

Nov. 9

Sebesta Ch. 9

Finish generics

31

Nov. 11

Sebesta Ch. 10

Implementing subprograms: activation records and the run-time stack; static links to textual enclosing blocks

32

Nov. 14

Sebesta Ch. 10

More on static links; dynamic links for dynamic scoping

33

Nov. 16

Sebesta Ch. 10

 

Sebesta Ch. 11

Nested blocks and variable access

 

Abstract Data Types

34

Nov. 18

Sebesta Ch. 12

OOP

35

Nov. 21

Sebesta Ch. 12

Smalltalk discussion and examples

36

Nov. 28

Sebesta Ch. 12

Finish Smalltalk examples

 

C++ OOP

Virtual Method blog discussion

 

37

Nov. 30

Sebesta Ch. 12

Java OOP

38

Dec. 2

Sebesta Ch. 13

Parallelism in programming; definitions; cooperation and competition synchronization; semaphores; monitors

39

Dec. 5

Sebesta Ch. 13

Message passing; Deadlock and starvation; Java examples

40

Dec. 7

Sebesta Ch. 16

Intro. to Prolog; facts and rules; db search and backtracking; recursion

41

Dec. 9

Sebesta Ch. 16

More recursion; Prolog lists and list operations; manipulating the db