Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/

Slides:



Advertisements
Similar presentations
F28PL1 Programming Languages Greg Michaelson/Jamie Gabbay Lecture 0: Overview.
Advertisements

1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Slide 01-1COMP 7370, Auburn University COMP 7370 Advanced Computer and Network Security Dr. Xiao Qin Auburn University
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Syllabus (101)
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
CS590 Z Software Defect Analysis Xiangyu Zhang. CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without.
Programming Languages Structure
Overview Discrete Mathematics and Its Applications Baojian Hua
Overview Discrete Mathematics and Its Applications Baojian Hua
CSE 115 / 503 Introduction to Computer Science For Majors I Carl Alphonce 219 Bell Hall.
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
CSE 115 / 503 Introduction to Computer Science I
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
1 CSCE Programming Languages Introduction and Course Administration Dr. Hyunyoung Lee 410B HR Bright
MCS 270 Spring 2014 Object-Oriented Software Development.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CS 363 Comparative Programming Languages
CSCA48 Course Summary.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
CS 430/530 Formal Semantics Paul Hudak Yale University Department of Computer Science Lecture 1 Course Overview September 6, 2007.
Programming Languages Summer
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
1 Programming Languages Marjan Sirjani Course web site:
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Motions for Permanent Undergraduate Course Numbers Brian L. Evans On Behalf of the ECE Curriculum Committee September 21, 2015.
INF 212 ANALYSIS OF PROG. LANGS LECTURE 1 Instructors: Crista Lopes Copyright © Instructors.
CSE-321 Programming Languages Overview POSTECH March 3, 2009 박성우.
CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.
Lecture 1: Overview of CSCI 485 Notes: I presented parts of this lecture as a keynote at Educator’s Symposium of OOPSLA Shahram Ghandeharizadeh Associate.
Object Oriented Programming (FIT-II) J. H. Wang Feb. 20, 2009.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
CS5205Introduction1 CS5205: Foundation in Programming Languages Lecture 0 : Overview Lecturer : Chin Wei Ngan Office : COM2.
CS Curriculum Changes Fall, BS Computer Science 2015 COMPUTER SCIENCE COURSES—64 Hours COMPUTER SCIENCE CORE (48 Hours) CS 258Intro to Object-Oriented.
Allyson M. Hoss, January 14, 2008 CSC 7101 Programming Language Structures Spring 2008 Louisiana State University.
CS533 Concepts of Operating Systems Jonathan Walpole.
Fall CSE330/CIS550: Introduction to Database Management Systems Prof. Susan Davidson Office: 278 Moore Office hours: TTh
Some Computer Science Conceptual Background Material Doug Hogan This version for UIC Spring 2016 CS 107.
Programming Language Principles Lecture 32 Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Course Summary.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
ICS 313 Fundamentals of Programming Languages. Catalogue Description  Concepts of Programming Languages: Syntax and semantics, Data types, Control structures,
COP4020 INTRODUCTION FALL COURSE DESCRIPTION Programming Languages introduces the fundamentals of the design and implementation of programming languages.
A Survey of Object-Oriented Concept Oscar Nierstrasz.
A Survey of Object-Oriented Concepts, by Oscar Nierstrasz Reviewed by Odd Petter N. Slyngstad for DT8100, 27/1/2005.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Language Paradigms CS655.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
Programming Languages
Undergraduate PL Class
Programming Language Design Concepts
课程名 编译原理 Compiling Techniques
CS 3304 Comparative Languages Fall 2011
Foundations of Programming Languages – Course Overview
EECE 310 Software Engineering
Programming Languages
Foundations of Programming Languages – Course Overview
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Organization of Programming Languages
Programming Languages 2nd edition Tucker and Noonan
Programming Languages
Lecture 1 Class Overview
Presentation transcript:

Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242

What are programming languages for Communication between programmers and HW – Model the real world – Model computation One of the most fundamental area of computer science Examples – assembly, imperative (e.g., C), functional, OO, logical, web (e.g., JavaScript), domain-specific languages Still a very active field, both in academia and industry – New languages: F#, Go, Scala, …

What do we care Easy to use – Language design: good syntax, clear semantics, high-abstraction level – Enhance software productivity e.g., domain specific languages (DSL) Better performance – Language implementations: compilers, runtime (GC), parallelization Better software quality (reliability and security) – Type safety, static/dynamic checking, verification Theoretical foundations – Semantics, verification, etc. Connections with other related fields: logic, computation theory, etc.

Language goals and trade-offs

Why should you take this course Programming language concepts – A language is a “conceptual universe” (Perlis) OO vs. Functional, for instance – Distinguish key properties from superficial details Better programming skills – Write more efficient and reliable code – Be prepared for new PL methods, paradigms, tools Learn to design your own languages – Domain-specific languages (e.g., for big data or robotics)

Some PL Research Goals Design and Implementation – Easy to use (design), efficient executable code (impl) – Flaw detection: static, dynamic, etc. – Related fields: OS, architecture, domain specific fields Principles and Theories – Semantics and Properties (e.g. expressiveness) of Programming Languages – Principles and theories for safety/security/correctness – Program analysis and verification – Related fields: logic and algebra, computation theory

Major Conferences Principles of Programming Languages (POPL) Programming Language Design and Implementation (PLDI) Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) Principles and Practice of Parallel Programming (PPoPP) International Conferences on Functional Programming (ICFP) Architectural Support for Programming Languages and Operating Systems (ASPLOS) Languages, Compilers and Tools for Embedded Systems (LCTES)

Major Conferences (2) Related: – Logic in Computer Science (LICS) – Computer Aided Verification (CAV)

1-slide overview of KYHCS: USTC-Yale Joint Research Center for High- Confidence Software (founded in 2008) – Location: Suzhou and Hefei Goal: building high-confidence SW systems – System software verification (e.g. OS kernels, compilers) – Verification of concurrent algorithms (e.g. multicore programs) – Automated analysis and verification of programs – Other: new language design and impl., semantics, …

Course Infomation Course webpage – – TA, office hours, news and assignments, lecture notes, reading materials and resources Follow the courseware of Stanford CS242 – 431/ 431/

Temporary Syllabus Introduction Haskell Foundations: lambda calculus, opr. semantics Scope and stack storage allocation Types and type checking/inference Parametric polymorphism, type classes (ad-hoc polymorphism) Monads Exceptions and continuations

Temporary Syllabus (2) Modularity Objects Prototypes, classes, inheritance Object types and subtyping Implementation structures Templates and generics Concurrency Atomicity and advanced topics

Grading Attendance: 10% – Class attendance is highly recommended Homework: 60% – Problem sets and programming assignments Final paper: 30%