INF 212 Analysis of Prog. Langs Final Lecture

Slides:



Advertisements
Similar presentations
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Advertisements

13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Elements of Computing Systems, Nisan & Schocken, MIT Press, 2005, Introduction: Hello, World Below slide 1www.idc.ac.il/tecs Introduction:
(Advanced) topics in Programming Languages Instructor: Mooly Sagiv TA: Shachar Itzhaky Spring 2012 Inspired.
CS 355 – Programming Languages
Programming Languages and Design Lecture 1 Introduction to Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern University,
EECE 310 Software Engineering Lecture 0: Course Orientation.
SOME IMPORTANT FACTORS IN TEACHING SOFTWARE ENGINEERING COURSES Presenter: Jingzhou Li Depart of ECE, University of Calgary,
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
INF 212 ANALYSIS OF PROG. LANGS LECTURE 1 Instructors: Crista Lopes Copyright © Instructors.
CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.
Introduction to Design (and Zen) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Web Service Future CS409 Application Services Even Semester 2007.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
GIS 1 GIS Tutorial, Third Edition PPD 631 – GIS for PPD Welcome! Bonnie Shrewsbury and Barry Waite - Instructors.
Programming Languages John Mitchell CS 242 Course web site:
Review for Test 2 Chapters 5 (start at 5.4), 6.1, , 12, 13, 15.1, Python.
CSE341: Programming Languages Lecture 26 Course Victory Lap
Programming Languages
Functional Programming
Applications Active Web Documents Active Web Documents.
The language focusses on ease of use
CSC 222: Computer Programming II
CSE341: Programming Languages Lecture 11 Type Inference
Basic 1964 PC general purpose Imperative Small Easy to use.
Types for Programs and Proofs
Undergraduate PL Class
PROGRAMMING LANGUAGES
Chapter 1 Introduction to Computers, Programs, and Java
CSE 332 Overview and Structure
Programming Language Design Concepts
Choosing Technologies
What is RMI? Remote Method Invocation
课程名 编译原理 Compiling Techniques
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
AUTOMATED SESSION PLANNING. In the present world, everything has become automated. By, a click everything is being processed. But the preparation of the.
CSE 332 Overview and Structure
Foundations of Programming Languages – Course Overview
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 143 Goodbye, world!.
Ada – 1983 History’s largest design effort
EECE 310 Software Engineering
Programming Languages
Foundations of Programming Languages – Course Overview
Lecture 2 Concepts of Programming Languages
CSE341: Programming Languages Lecture 11 Type Inference
The Metacircular Evaluator
CSE 341 Programming Languages Autumn 2001
CSE 341 Programming Languages Autumn 2003
CSE 341 Programming Languages Autumn 2002
CSE341: Programming Languages Lecture 11 Type Inference
The Metacircular Evaluator (Continued)
Lecture 10: Using Object-Oriented Languages
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 341 Programming Languages Autumn 2003
Programming Languages
CSE341: Programming Languages Lecture 11 Type Inference
Functional Programming and Haskell
CSE341: Programming Languages Lecture 11 Type Inference
CSCE156: Introduction to Computer Science II
CSE341: Programming Languages Lecture 11 Type Inference
Functional Programming and Haskell
Presentation transcript:

INF 212 Analysis of Prog. Langs Final Lecture Instructors: Crista Lopes Copyright © Instructors.

Course Objectives Understand concepts in PLs 100’s of PLs, all look different  they aren’t that different Appreciate history, diversity of ideas in PLs Be prepared for new languages Ignore sales pitches Be rigorous (PLs are a good example) Certain times, you cannot afford to be fuzzy Learn some important facts about existing language systems and techniques Learn and think critically about tradeoffs

The Course Mathematical Foundations Funktional Programming Pearls Lambda calculus Operational Semantics Funktional Programming Pearls Closures, continuations, iterators, generators, monads Reflection Meta-circular interpreter, eval, reification, intercession Type Systems Type checking, type inference, polymorphism Modularity Different ways of decomposing problems Virtual Machines Purpose, under the hood Program [static] analysis

Programming Languages Universe of design ideas Crazy concepts often became mainstream E.g. garbage collection, recursion, closures, … (other crazy concepts were just crazy) Language design concepts often pop out into systems design concepts E.g. Map-Reduce, stateless – REST, …

What’s new in programming languages Commercial trend over past 5+ years Increasing use of type-safe languages: Java, C#, … Scripting languages, other languages for web applications Teaching trends Java replaced C as most common intro language Less emphasis on how data, control represented in machine Research and development trends Modularity Java, C++: standardization of new module features Program analysis Automated error detection, programming env, compilation Isolation and security Sandboxing, language-based security, … Web 2.0 Increasing client-side functionality, mashup isolation problems

What’s worth studying? Dominant languages and paradigms Leading languages for general systems programming Explosion of programming technologies for the web Important implementation ideas Performance challenges Design tradeoffs Concepts that research community is exploring for new programming languages and tools E.g. Multi-core

Questions Projects: Easy? Hard? OK? Which project(s) didn’t you like? Which project(s) did you like best? Did you read the suggested readings? Suggestions for next year’s offering