CSE 341 Programming Languages Autumn 2001

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
Programming Languages Structure
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
CSE S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto Teaching assistants:
Programming Language Concepts
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CSE (c) S. Tanimoto, 2008 Introduction 1 CSE 415 Introduction to Artificial Intelligence Winter 2008 Instructor: Steve Tanimoto
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS2303 C14 Systems Programming Concepts Bob Kinicki.
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Programming Languages Summer
February 25, ICE 1341 – Programming Languages (Lecture #1) In-Young Ko Programming Languages (ICE 1341) Lecture #1 Programming Languages (ICE 1341)
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Analysis of Programming Language Vladimir Viies Lembit Jürimägi Tallinna.
Programming Languages Meeting 14 December 9/10, 2014.
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
CSE 341, S. Tanimoto Wrapup - 1 Wrapup Programming Languages as systems for specifying computation Comparing Lisp, Java and Perl The future.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Programming Languages
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
CS 2303 Systems Programming Concepts Bob Kinicki A08.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Language History and Evolution
Programming Languages
Concepts of Programming Languages
Introduction to programming languages, Algorithms & flowcharts
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Concepts of Programming Languages
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
Programming Language Design Concepts
Problem Solving Using C: Orientation & Lecture 1
An Introduction to Programming
Programming Language History and Evolution
Introduction to programming languages, Algorithms & flowcharts
Problem Solving.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Problem Solving Using C: Orientation & Lecture 1
Ada – 1983 History’s largest design effort
Programming Language Design
CSE 415 Introduction to Artificial Intelligence Winter 2004
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
CSE 341 Programming Languages Autumn 2003
CSE 341 Programming Languages Autumn 2002
CSE 341 Programming Languages Spring 2003
CSE S. Tanimoto Comparing Languages
Problem Solving Using C: Orientation & Lecture 1
Principles of Programming Languages
Overview of Programming Paradigms
CSE 415 Introduction to Artificial Intelligence Winter 2003
CSE 341 Programming Languages Autumn 2003
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
An Introduction to Programming
Programming Languages and Paradigms
School of Computer & Information Engineering,
CSE 415 Introduction to Artificial Intelligence Winter 2007
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

History of Programming Languages FORTRAN 1954-57 numeric ALGOL 60 1958-60 numeric COBOL 1959-60 business APL 1956-60 vector/matrix math LISP 1956-62 symbols SNOBOL4 1962-66 strings PL/1 1963-64 general BASIC 1964 educational PASCAL 1971 educational CSE 341 -- S. Tanimoto Introduction

History of Prog. Languages (continued) PROLOG 1972 AI/logic with rules C 1972 general Scheme 1975 educational Ada 1979 general Smalltalk 1971-80 applications/objects C++ 1982-86 general/objects CLOS 1983-84 LISP/objects Perl 1989 scripting Java 1991 applets, general/objects CSE 341 -- S. Tanimoto Introduction

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