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

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:
INF 212 ANALYSIS OF PROG. LANGS Type Systems Instructors: Crista Lopes Copyright © Instructors.
Programming Languages WHY MORE? Wasn’t ONE ENOUGH? Introduction to CS260.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
CS 330 Programming Languages 09 / 07 / 2006 Instructor: Michael Eckmann.
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
CS 330 Programming Languages 09 / 06 / 2007 Instructor: Michael Eckmann.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
CSE S. Tanimoto Syntax and Types 1 Representation, Syntax, Paradigms, Types Representation Formal Syntax Paradigms Data Types Type Inference.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
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.
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
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
CSE 341, S. Tanimoto Concepts 1- 1 Programming Language Concepts Formal Syntax Paradigms Data Types Polymorphism.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
Object Oriented Programming CEN 221. Course Description Classes, objects, inheritance, polymorphism, graphical user interfaces, event handling, exception.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS 363 Comparative Programming Languages
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
Selected Topics in Information Technology Programming Language - JAVA Semester 1/2554.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
1 Alex Proctor and Brian Lee for CSCI 431 at UNCA, Fall 2002 ML (Meta Language) a brief introduction Alex Proctor and Brian Lee For CSCI 431 at the University.
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
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.
CSE S. Tanimoto More-Concepts - 1 More Programming Language Concepts Currying Lazy Evaluation Polymorphism.
Programming Languages
Abdul Rahim Ahmad MITM 613 Intelligent System Chapter 10: Tools.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
CSE341: Programming Languages Lecture 26 Course Victory Lap
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.
PROGRAMMING LANGUAGES
Representation, Syntax, Paradigms, Types
An Introduction to Programming
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 415 Introduction to Artificial Intelligence Winter 2004
Representation, Syntax, Paradigms, Types
CSE 341 Programming Languages Autumn 2001
CSE 341 Programming Languages Autumn 2003
CSE 341 Programming Languages Autumn 2002
Representation, Syntax, Paradigms, Types
CSE 341 Programming Languages Spring 2003
CSE S. Tanimoto Comparing Languages
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
Overview of Programming Paradigms
CSE 415 Introduction to Artificial Intelligence Winter 2003
CSE 341 Programming Languages Autumn 2003
Representation, Syntax, Paradigms, Types
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
An Introduction to Programming
CSE 415 Introduction to Artificial Intelligence Winter 2007
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

CSE S. Tanimoto Introduction 1 CSE 341 Programming Languages Autumn 2001 Instructor: Steve Tanimoto Teaching assistants: Rick Cox -- Jeff West -- 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 Functional programming “ “ with static typing Object-oriented design. Logic programming Scripting.

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 (extra)

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. Scalability Program visualization

CSE 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.

CSE 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%.

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 BASIC1964educational PASCAL1971educational

CSE S. Tanimoto Introduction 13 History of Prog. Languages (continued) PROLOG1972AI/logic with rules C1972general Scheme1975educational Ada1979general Smalltalk applications/objects C general/objects CLOS LISP/objects Perl1989scripting Java1991applets, general/objects

CSE 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