Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 341 Programming Languages Autumn 2003

Similar presentations


Presentation on theme: "CSE 341 Programming Languages Autumn 2003"— Presentation transcript:

1 CSE 341 Programming Languages Autumn 2003
Instructor: Steve Tanimoto Teaching assistants: Jessica Miller Aiman Erbad Purpose: To gain a broad view of programming languages and learn fundamental concepts that relate to them. CSE 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. CSE S. Tanimoto Introduction

3 Languages and Major Topics to be Covered
Lisp ML (Java*) Prolog Perl visual languages Functional programming “ “ with static typing (Object-oriented design*). Logic programming Scripting. Visual programming *optional implementation language for projects. CSE 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 (optional) CSE S. Tanimoto Introduction

5 Detailed Topics with ML
Static types Type inference More functional programming Pattern matching CSE 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 CSE S. Tanimoto Introduction

7 Detailed Topics with Prolog
Specification as programming Predicate logic Horn clauses Unification, resolution CSE 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. CSE 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, Data Factory Representation and learnability Scalability CSE S. Tanimoto Introduction

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

11 CSE 341 -- S. Tanimoto Introduction
Evaluation (Approx) Assignments: 30% Participation: % Project: %. Midterm 1: %. Midterm 2: %. Final exam %. CSE S. Tanimoto Introduction

12 History of Programming Languages
FORTRAN numeric ALGOL numeric COBOL business APL vector/matrix math LISP symbols SNOBOL strings PL/ general BASIC educational PASCAL educational CSE S. Tanimoto Introduction

13 History of Prog. Languages (continued)
PROLOG AI/logic with rules C general Scheme educational Ada general Smalltalk applications/objects C general/objects CLOS LISP/objects Perl scripting Java applets, general/objects CSE S. Tanimoto Introduction

14 CSE 341 -- S. Tanimoto Introduction
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 CSE S. Tanimoto Introduction


Download ppt "CSE 341 Programming Languages Autumn 2003"

Similar presentations


Ads by Google