review-final - Review Concepts in Programming Languages...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
cs3723 1 Review Concepts in Programming Languages
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
cs3723 2 What we have learned Skills Language syntax (context-free grammar, parse tree, and AST) Lambda calculus (apply beta reduction) Functional programming (recursion in Scheme and ML) Type inference (from Scheme to ML or C) Tail recursion, loops, and continuation passing (methods of programming) Object-oriented programming (from ML datatype/abstype to C++ classes) Knowledge (concepts) Language semantics (expressing power, interpretation vs. compilation, higher-order functions, functions as first-class objects) Types, type checking and type inference; Polymorphism Memory management (blocks, functions, classes and inheritance) Continuation and exceptions Abstractions, object-oriented abstractions, C++ and Java language design and implementations Advanced topics What if we modify a language by adding …
Background image of page 2
cs3723 3 Skills Language syntax and context-free grammar How to define a language using BNF? Parse trees and abstract-syntax trees Ambiguity of grammars (advanced topics) Precedence and associativity; How to rewrite ambiguous production rules Lambda calculus Understand the syntax and reduce to normal form Functional programming in Scheme and ML Define recursive functions in Scheme and ML Type inference and translation between languages What are the types of variables in a Scheme/ML code? Translate Scheme code to C/ML Continuation passing, tail recursion, and loops What is continuation passing? What is tail recursion? How to systematically convert program implementations? Object-oriented programming Translate ML abstype/datatype/higher-order functions to C++ classes
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
cs3723 4 Skills Lambda Calculus Higher order functions to the extreme Use functions to express everything Key: understand function abstractions and function applications Exercise: apply beta reductions λ x. ( λ y. y x) ( λ z. x z) ( λ x. ( λ y. y x) ( λ z. x z) ) ( λ y. y z) ( λ y. ( λ x. λ y. x (x y)) ( λ g. g y)) 5
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page1 / 14

review-final - Review Concepts in Programming Languages...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online