Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 341 -- S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto Teaching assistants:

Similar presentations


Presentation on theme: "CSE 341 -- S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto Teaching assistants:"— Presentation transcript:

1 CSE 341 -- S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto email: tanimoto@cs.washington.edu Teaching assistants: Rick Cox -- email: rick@cs.washington.edu Jeff West -- email: jeffwest@cs.washington.edu Purpose: To gain a broad view of programming languages and learn fundamental concepts that relate to them.

2 CSE 341 -- S. Tanimoto Introduction 2 Reasons to Study Programming Languages Improve our understanding of computation and problem solving; our thoughts are shaped by our language (Whorfian hypothesis). Be able to choose the best language for the task. Gain facility at learning new languages. Gain access to great programming “literature”. Build an appreciation for rich programming environments and libraries. Be able to create “little languages” for specific purposes.

3 CSE 341 -- S. Tanimoto Introduction 3 Languages and Major Topics to be Covered Lisp ML Java Prolog Perl Functional programming “ “ with static typing Object-oriented design. Logic programming Scripting.

4 CSE 341 -- S. Tanimoto Introduction 4 Detailed Topics with Lisp Interactive programming Functional programming, referential transparency, recursive functions Functions as first-class objects, closures List processing, uniformity of programs and data Polymorphism Macros Web-based interaction (extra)

5 CSE 341 -- S. Tanimoto Introduction 5 Detailed Topics with ML Static types Type inference More functional programming Pattern matching

6 CSE 341 -- S. Tanimoto Introduction 6 Detailed Topics with Java Object-oriented design Inheritance, interfaces, information hiding. Security and exception handling Portable graphics library: AWT Support for multiple threads

7 CSE 341 -- S. Tanimoto Introduction 7 Detailed Topics with Prolog Specification as programming Predicate logic Horn clauses Unification, resolution

8 CSE 341 -- S. Tanimoto Introduction 8 Detailed Topics with Perl Scripting languages Pattern matching with regular expressions Associative arrays. CGI programming for web-based services Integration with operating system and databases.

9 CSE 341 -- S. Tanimoto Introduction 9 Detailed Topics in Visual Programming History of visual programming execution models: control flow, data flow, visual rules, direct manipulation, algorithm animation Example systems: Agentsheets, Prograph, Stagecast Creator, ToonTalk. Scalability Program visualization

10 CSE 341 -- S. Tanimoto Introduction 10 Textbooks Steven Tanimoto: Symbols, Programs, Interaction: An Introduction to Common Lisp (Autumn 2001 version). Patrick Niemeyer and Jonathan Knudsen: Learning Java. Robert Sebesta: A Little Book on Perl.

11 CSE 341 -- S. Tanimoto Introduction 11 Evaluation Assignments 1, 2, 4, 5, 6, 7: 30% Assignment 3: 10% Group project: 20%. Quiz 1: 10%. Quiz 2: 10%. Final exam 20%.

12 CSE 341 -- S. Tanimoto Introduction 12 History of Programming Languages FORTRAN1954-57numeric ALGOL 601958-60numeric COBOL1959-60business APL1956-60vector/matrix math LISP1956-62symbols SNOBOL41962-66strings PL/11963-64general BASIC1964educational PASCAL1971educational

13 CSE 341 -- S. Tanimoto Introduction 13 History of Prog. Languages (continued) PROLOG1972AI/logic with rules C1972general Scheme1975educational Ada1979general Smalltalk1971-80applications/objects C++1982-86general/objects CLOS1983-84LISP/objects Perl1989scripting Java1991applets, general/objects

14 CSE 341 -- S. Tanimoto Introduction 14 Orthogonality Every combination of two constructs of a language is meaningful. The meaning of a construct does not depend on its context. Pro: Makes learning a language easier, since there tend to be fewer constructs and there are fewer special cases. Con: Because every combination of constructs must be allowed, nonsensical combinations will compile without error. arithmetic expressions arguments to functions


Download ppt "CSE 341 -- S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto Teaching assistants:"

Similar presentations


Ads by Google