CSE-321 Programming Languages Overview POSTECH March 3, 2009 박성우.

Slides:



Advertisements
Similar presentations
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Introduction to Computer Programming in C
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Overview of Programming Paradigms
CSE 784 Software Studio Phil Pratt-Szeliga Fall 2010 Slides Derived From: Dr. Fawcett.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Winter 2013.
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
Introduction COMP104: Fundamentals and Methodology.
CSE-321 Programming Languages Overview POSTECH March 4, 2014 박성우.
MCS 270 Spring 2014 Object-Oriented Software Development.
Department of Computer Science Comparative Study of Imperative Programming Languages Vergelijkende studie van imperatieve programmeertalen.
COMP Introduction to Programming Yi Hong May 13, 2015.
Instructor: Tina Tian. About me Office: RLC 203A Office Hours: Wednesday 1:30 - 4:30 PM or .
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
1 Programming Languages Marjan Sirjani Course web site:
Selected Topics in Information Technology Programming Language - JAVA Semester 1/2554.
CSE-321 Programming Languages Overview POSTECH March 5, 2007 박성우.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
CSE-321 Programming Languages Overview POSTECH March 3, 2011 박성우.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
University of Macau Faculty of Science and Technology Computer and Information Science SFTW 241 Programming Languages Architecture 1 Group B5.
CSE-321 Programming Languages Overview POSTECH March 2, 2010 박성우.
Concepts of programming languages Chapter 5 Names, Bindings, and Scopes Lec. 12 Lecturer: Dr. Emad Nabil 1-1.
Notes for Week 11 Term project evaluation and tips 3 lectures before Final exam Discussion questions for this week.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
CSC 205 Java Programming II Introduction. Topics Syllabus Course goals and approach Review I Java language fundamentals.
CSCE 314 Programming Languages
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
CSE-321 Programming Languages Abstract Machine E POSTECH May 1, 2006 박성우.
CSE-321 Programming Languages Introduction to Functional Programming POSTECH March 8, 2006 박성우.
CSE-321 Programming Languages Overview POSTECH March 5, 2013 박성우.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Language Paradigms CS655.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Languages 2nd edition Tucker and Noonan
CSE341: Programming Languages Lecture 26 Course Victory Lap
CMPT 201 Computer Science II for Engineers
Introduction to programming languages, Algorithms & flowcharts
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
CSE 332 Overview and Structure
Programming Language Design Concepts
slides created by Marty Stepp
CSE 332 Overview and Structure
Programming COMP104: Fundamentals and Methodology Introduction.
Introduction to programming languages, Algorithms & flowcharts
CSE 332 Overview and Structure
Foundations of Programming Languages – Course Overview
CSE341: Programming Languages Lecture 26 Course Victory Lap
Foundations of Programming Languages – Course Overview
Organization of Programming Languages
CSE 341 Programming Languages Autumn 2003
CSE-321 Programming Languages Overview
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
CSE 341 Programming Languages Autumn 2002
CSE-321 Programming Languages Introduction to Functional Programming
Overview of Programming Paradigms
CSE 341 Programming Languages Autumn 2003
CSE-321 Programming Languages Overview
CSE-321 Programming Languages Overview
CS201 – Course Expectations
Presentation transcript:

CSE-321 Programming Languages Overview POSTECH March 3, 2009 박성우

2 Neanderthal Man OneTwoThree???

3 Why are two left???Foolish Neanderthal!I can count up to ten! Java Man I got five.I've eaten three.

4 Language = Frame of Thought The language defines the frame of thought. –what you can communicate to others –what concepts you are able to think over –how you think Big question: "Does the programming language define the frame of thought in the course of programming?"

5 C Exercise: Integration Specification –input: function f from int to int range a and b –output: f(a) + f(a + 1) f(b) Solution? int integral(int (*f)(int), int a, int b) { int i, sum = 0; for (i = a; i <= b; i++) sum += f(i); return sum; } Question: what if there were no function pointer?

6 C Exercise: Derivative Specification –input: function f from float to float –output: derivative f' of f such that f'(x) = (f(x +  ) - f(x)) /  Solution?

7 Question for You What is your favorite language? –Assembly, Basic, Pascal, C, C++, C#, Java, Perl, Python, Ruby, Prolog, Lisp, SML, Haskell, Scheme,... What is its strength? What is its weakness? What is its limitation? Do you think your language defines the frame of thought?

Trends in programming language research

9 Structured Programming Features –split programs into sub-sections (e.g., functional units) and reuse the sub-sections procedural programming –limited number of control structures for, while, do/while, repeat/until goto is discouraged. Pascal, Ada, C,... Enabled the development of large-scale software in 1970s –Unix operating system written in C –1st revolution in programming language history

10 Object-oriented Programming Features –focus on objects, rather than operations –hide the internal representation of an object –code reuse by inheritance or subclassing Smalltalk, C++, Java, C#,... Enabled the cooperative development of large- scale software in 1980s –2nd revolution in programming language history

11 Dominance of OO TIOBE programming community index, Feb 2009

12 Limitation of OO Programming No code reuse for different datatypes –templates in C++ –generics in Java No "first-class" functions –closures in Java No inherent support for modular programming –Classes are okay for modular programming of moderate scale. –OO does not scale afterwards. Why?

13 Functional Programming Standard ML, Haskell, Objective CAML, F#,... Savior for OO programming –templates in C++, generics in Java ) primitive forms of polymorphism in type theory –closures in Java ) functions in functional programming –modular programming ) structures and functors in functional programming F# to be included in Microsoft Visual Studio 2009

What is the (ongoing) 3rd revolution in programming language history?

15 Commonalities?

16... runs faster on

17 CPU Frequency

18 Multicore Revolution Intel reaches thermal wall, 2004 ) no more free lunch! Intel, 80-cores, 2011 source: Herb Sutter – "Software and the concurrency revolution"

19 Intel Roadmap

20 Tim Sweeney's POPL '06 Invited Talk - Last Slide

3rd Programming Revolution? ) Parallel programming

Course Overview

23 Topics to Be Covered Basic programming language theory –inductive reasoning – -Calculus –basic type theory –modular programming (assignment) –object-orientation (lecture, assignment) Parallelism/concurrency will not be covered.

24 Grading 50% assignments (heart of this course) –8 programming assignments, all in Standard ML 10% quizzes –4 quizzes (substitute for written assignments) 20% midterm 20% final Optional track: 40% project –Building a compiler for a small functional language. –Details will be announced before the midterm. Absolute grading system

25 No Cheating Read the document on the disciplinary policy –7 students cheated (out of 46 students) –2 suspicious cases We will check your programs at the end of the semester. –all your programs + those submitted in the previous years Cheating will not be tolerated. –Cheating will expel you from class and get you an F.

26 Homework by Thursday Visit the course webpage. – Visit the discussion board. –telnet pl.postech.ac.kr Install –Standard ML –AFS client software. Read three articles for fun. –A Critical Look at Programming Languages –The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software –Software and the Concurrency Revolution

27 Make-up Lectures March 2009 Su Mo Tu We Th Fr Sa