CSE-321 Programming Languages Overview POSTECH March 5, 2007 박성우.

Slides:



Advertisements
Similar presentations
Lecture 1: Overview of Computers & Programming
Advertisements

Compiler Construction by Muhammad Bilal Zafar (AP)
CSE-700 Parallel Programming Introduction POSTECH Sep 6, 2007 박성우.
Lecture 01 - Introduction Eran Yahav 1. 2 Who? Eran Yahav Taub 734 Tel: Monday 13:30-14:30
CIS 101: Computer Programming and Problem Solving Lecture 8 Usman Roshan Department of Computer Science NJIT.
1 CS1001 Lecture Overview Java Programming Java Programming Midterm Review Midterm Review.
CSI Fall 2002 Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany Programming Languages and Systems Concepts Fall.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
Introduction to Programming (in C++) Introduction Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
Principles of Programming Languages CMSC 331, Fall 2011
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Introduction CSE 1310 – Introduction to Computers and Programming
CSCI 347 – Data Mining Lecture 01 – Course Overview.
CSE-321 Programming Languages Overview POSTECH March 4, 2014 박성우.
Chapter 1. Introduction.
Implement High-level Program Language on JVM CSCE 531 ZHONGHAO LIU ZHONGHAO LIU XIAO LIN.
IT253: Computer Organization Lecture 1: Introduction Tonga Institute of Higher Education.
CS 430/530 Formal Semantics Paul Hudak Yale University Department of Computer Science Lecture 1 Course Overview September 6, 2007.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
CNS 4450 Syllabus. Context Language is a tool of thought. We rarely think without words. In solving problems by computer, we eventually get to the point.
CSE-321 Programming Languages Overview POSTECH March 3, 2009 박성우.
CSE-321 Programming Languages Overview POSTECH March 3, 2011 박성우.
CSE 113 Introduction to Computer Programming Lecture slides for Week 1 Monday, August 29 th, 2011 Instructor: Scott Settembre.
Introduction to computers and programming Instructor: Alex Iskold.
Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
CS5205Introduction1 CS5205: Foundation in Programming Languages Lecture 0 : Overview Lecturer : Chin Wei Ngan Office : COM2.
Intro to CIT 594
CSE-321 Programming Languages Overview POSTECH March 2, 2010 박성우.
Principles of Programming Languages CMSC 331 Fall 2010.
GOOD AFTERNOON! My name is Jenifer. Nice to meet you. HOW ARE YOU TODAY?
Software Development Introduction
Textbook C for Scientists and Engineers © Prentice Hall 1997 Available at NUS CO-OP at S$35.10.
CSCE 314 Programming Languages
Principles of Programming Languages CMSC 331 Spring 2014.
The Big Picture. My Story  Wrote great programs  Didn’t understand how they worked.
CSE-321 Programming Languages Abstract Machine E POSTECH May 1, 2006 박성우.
CSE-321 Programming Languages Dependent Types POSTECH June 5, 2006 박성우.
COMPUTER PROGRAMMING Year 9 – lesson 1. Objective and Outcome Teaching Objective We are going to look at how to construct a computer program. We will.
CSE-321 Programming Languages Overview POSTECH March 5, 2013 박성우.
Chapter 1. Introduction.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Greenfoot.
CSE341: Programming Languages Lecture 26 Course Victory Lap
Basic Concepts: computer, program, programming …
Course Overview CS 4501 / 6501 Software Testing
Final exam: Wednesday, March 20, 2:30pm
PROGRAMMING LANGUAGES
Programming Language Design Concepts
GC101 Introduction to computers and programs
Problem Solving Using C: Orientation & Lecture 1
课程名 编译原理 Compiling Techniques
Teaching Computing to GCSE
Course supervisor: Lubna Siddiqui
Introduction to Computers and Python
Problem Solving.
CSE341: Programming Languages Lecture 26 Course Victory Lap
Problem Solving Using C: Orientation & Lecture 1
Programming Languages
Organization of Programming Languages
CSE-321 Programming Languages Overview
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
Tonga Institute of Higher Education IT 141: Information Systems
Problem Solving Using C: Orientation & Lecture 1
CSE-321 Programming Languages Overview
Programming Languages
CSE-321 Programming Languages Overview
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Tonga Institute of Higher Education IT 141: Information Systems
CS201 – Course Expectations
Presentation transcript:

CSE-321 Programming Languages Overview POSTECH March 5, 2007 박성우

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,... What is its strength? What is its weakness? What is its limitation? Do you think your language defines the frame of thought?

Maybe we can find the answer by learning new programming languages. Here is my story.

9 BASIC 1984 Disappointing ;-( –It does not compile to machine code. –It is slow. –“So I cannot make a computer game!” Had to learn anyway: –to run computer games stored in cassette tapes

10 C 1991 Exciting ;-) –It compiles to machine code. –“So maybe I can make a computer game!” “Return of the Jedi” (1983) and DOOM (1993)

11 C Cool! –object-orientation (whatever that means) –instantly appreciated its power. Remark by the instructor: “C++ will become the most dominant programming language in a decade from now.” –Is it?

12 Java 1995 Incredible! –Not only object-orientation but also garbage collection! no more hassle of memory allocation and deallocation –Virtual Machine lets you run the code “everywhere.” –The syntax and semantics seemed flawless.

13 Anyone recognizes this picture?

14 Familiar?

15 WTH?

16 ML 1995 Eye-opener! –functional language –strong type system ML = “Meta-Language” Lessons that I learned: –Programming is not about coding. –Programming is about design and specification.

But this course is not about learning new programming languages; it is about programming language theory. Then why do we study programming language theory? ) Because there is an ever growing need for new programming languages!

18 Mars Climate Orbiter Failure in 1998 Destroyed due to a navigation error Cause? –One module used English units (feet). –The other module expected metric units (meter). Stupidity: –NASA scientists? No! –programming languages they used? Yes! Cf. Fortress at SUN Microsystems –support for dimension analysis

19 Common Features???

20... runs faster on

21 Multi-core CPUs IBM Power4, dual-core, 2000 Intel reaches thermal wall, 2004 ) no more free lunch! Intel Xeon, quad-core, 2006 Sony PlayStation 3 Cell, eight cores enabled, 2006 Intel, 80-cores, 2011 (prototype finished) source: Herb Sutter - "Software and the concurrency revolution"

22 Tim Sweeney's POPL '06 Invited Talk - Last Slide Programming Language People

Course Overview

24 Topics to Be Covered Inductive reasoning -Calculus Type theory Object-orientation Concurrency Note: –This course is not about functional languages. –It is about basic programming language theory.

25 Grading 50% assignments –8 programming assignments, all in Standard ML 10% quizzes –4 quizzes (substitute for written assignments) 20% midterm, 20% final Why 50% for quizzes and exams? –average of 2006 midterm: of 100 –average of 2006 final: of 80 Closed book for quizzes and exams Absolute grading system in 2007 vs. Relative grading system in 2006

26 NO CHEATING Read the document on the disciplinary policy –7 students cheated (out of 46 students) –2 suspicious cases Cheating will not be tolerated. –Cheating even once will expel you from class or get you an F. –We will check your programs at the end of the semester. You should complete your assignments on your own.

27 Homework by Wednesday Visit the course webpage. – Visit the discussion board. –telnet pl.postech.ac.kr Install –Standard ML –AFS client software. Read "A Critical Look at Programming Languages".