[ ^ CSE 341 | section index | <-- previous ]

Major concepts, language by language

Scheme
Lists and list operations. Lexical scope and closures. Symbolic manipulation. Procedures and data as lists. First-class functions.
Perl
Regular expressions. String manipulation. Scripting as a style of programming.
Java and Smalltalk
Object-oriented concepts: information hiding, encapsulation (access protection), inheritance, polymorphism, dynamic dispatch. Portability via virtual machines (bytecode, in the case of Java). OO type systems and F-bounded polymorphism.
Miranda
Algebraic types. Pattern matching on arguments. Currying and higher-order functions. Universal (Milner) polymorphism.
CLP(R)
Constraints, rules, derivation trees, etc. (The past two weeks.)
Non-language-specific
Static vs. dynamic typing. Scoping and visibility. Parameter-passing mechanisms (value, result, value-result, reference, name, "pass by constraint"). Lazy vs. greedy evaluation.

Further study

If you like languages, there are lots of directions that we haven't explored yet in this course. Here are some things that we haven't done:

Most languages have free implementations. If you're curious, download and play around with a language sometime.


Last modified: Mon Jun 26 11:43:11 PDT 2000