DOC PREVIEW
UMD CMSC 330 - Final overview

This preview shows page 1 out of 3 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Final ! Will be given 4-6 pm Thurs. 5/14 in CHM 1407 ! Closed book, closed notes, closed neighbor ! Topics: “Everything!” • Syntax vs. semantics • Types of programming languages • Compilers vs. interpreters • Front ends vs. back ends • Ruby • Explicit vs. implicit declarations • Static vs. dynamic typing • Ruby control statements • Formal vs. actual parameters • Classes, objects in Ruby • Strings, regular expressions and matching in Ruby • Alphabets, strings and languages • Regular expressions • Deterministic and nondeterministic finite automata • Constructing NFAs from regular expressions: check, trans • Constructing DFAs from NFAs: the subset construction • Context-free grammars • Languages of CFG grammars • Derivations, parse trees • Ambiguity CMSC 330 - Spring 2011 1Final (cont.) • Top-down vs. bottom-up parsing • Recursive descent parsing: lookahead, first sets, recursive implementation • Predictive parsing • Left factoring of CFGs • Left recursion and its elimination • Parse trees vs. abstract syntax trees • Functional programming and OCaml • let / let rec / let … in … / let rec … in … • Lists in OCaml • Pattern-matching in OCaml • Tuples in OCaml • Polymorphism in OCaml • User-defined types, data types (variant records) in OCaml • Higher-order functions in OCaml: map, fold, anonymous functions • Static vs. dynamic scoping • Closures • Currying • OCaml modules and signatures • Imperative features in OCaml: ref, !, ;, L-values, R-values • Relating objects and closures • Name shadowing • Name spaces CMSC 330 - Spring 2011 2Final (cont.) • Free and bound variables • Static vs. dynamic types • Strong vs. weak types, type safety • Manifest vs. inferred types • Parameter passing: call-by-value, call-by-reference, call-by-name • Thunks • Semantics: denotational, operational, axiomatic • Operational semantics and evaluation • Defining evaluation via rules • Environments in evaluation • Function values and closures • Lambda calculus • Turing completeness • Beta reduction, substitution and alpha-conversion • Booleans and if-then-else in the lambda calculus • Church numerals and arithmetic in the lambda calculus • The Y (fixpoint) operator • Multithreading, locks, and wait / notifyAll • Small-step vs. large-step semantics • Nondeterminism, data races and deadlock • Static vs. automatic vs. programmer-allocated vs. persistent memory • Garbage collection: reference counting, mark and sweep, stop and copy, generational • History of programming languages CMSC 330 - Spring 2011


View Full Document

UMD CMSC 330 - Final overview

Documents in this Course
Exam #1

Exam #1

6 pages

Quiz #1

Quiz #1

2 pages

Midterm 2

Midterm 2

12 pages

Exam #2

Exam #2

7 pages

Ocaml

Ocaml

7 pages

Parsing

Parsing

38 pages

Threads

Threads

12 pages

Ruby

Ruby

7 pages

Quiz #3

Quiz #3

2 pages

Threads

Threads

7 pages

Quiz #4

Quiz #4

2 pages

Exam #2

Exam #2

6 pages

Exam #1

Exam #1

6 pages

Threads

Threads

34 pages

Quiz #4

Quiz #4

2 pages

Threads

Threads

26 pages

Exam #2

Exam #2

9 pages

Exam #2

Exam #2

6 pages

Load more
Download Final overview
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Final overview and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Final overview 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?