INF 212 ANALYSIS OF PROG. LANGS LECTURE 1 Instructors: Crista Lopes Copyright © Instructors.

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Introduction to Programming.
Advertisements

INF 212 ANALYSIS OF PROG. LANGS Type Systems Instructors: Crista Lopes Copyright © Instructors.
+ Intro to ISTC 605/705 Department of Educational Technology & Literacy.
Goran Šuković, University of Montenegro 1/21 Compiler Construction Course at University of Montenegro 7 th Workshop on “Software Engineering Education.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Intro to CIT 594
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
ACTIVE X By Ethan Huang. OUTLINE What is ActiveX? Component of ActiveX Why ActiveX? ActiveX and Java Security Issue.
Programming Languages Structure
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Spring 2013.
Self: The Power of Simplicity David Ungar and Randall B. Smith Presenter: Jonathan Aldrich
Goodbye, world! CSE Major themes Abstraction –Leverage existing components without understanding details –Create components that can be used as.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Rebekka Darner, PhD University of Florida.  My past teaching experiences  Why did I start using Mastering?  How do I use Mastering?  Tutorials  Activities.
(Advanced) topics in Programming Languages Instructor: Mooly Sagiv TA: Shachar Itzhaky Spring 2012 Inspired.
Programming Languages and Design Lecture 1 Introduction to Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern University,
CS2303 C14 Systems Programming Concepts Bob Kinicki.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
EECE 310 Software Engineering Lecture 0: Course Orientation.
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.
XP Tutorial 10New Perspectives on HTML and XHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial.
I'll give you time to fill out evals at the end. Please wait until I'm out of the room! Goodbye, world!
I'll give you time to fill out evals at the end. Please wait until I'm out of the room! Goodbye, world!
CSC 2720 Building Web Applications General Info. People Instructor  Yuan Cheng Jiun (CJ)  Teaching Assistant  Xu Zheng Lin 
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
Compilers: Overview/1 1 Compiler Structures Objective – –what are the main features (structures) in a compiler? , Semester 1,
GIS 1 GIS Tutorial, Third Edition PPD 631 – GIS for PPD Welcome! Bonnie Shrewsbury and Barry Waite - Instructors.
Goodbye, world!. 2 Major themes Abstraction Leverage existing components without understanding details Create components that can be used as black boxes.
EE5393: Course Information Instructor Prof. Marc Riedel office: EE/CSi tel: Credits: 3 Meeting time:
Data Structures and Algorithms in Java AlaaEddin 2012.
Introduction to C# Programming with Microsoft.NET AY
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
Programming Languages John Mitchell CS 242 Course web site:
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
CSE341: Programming Languages Lecture 26 Course Victory Lap
Programming Languages
Welcome to CS 4390/CS5381: Introduction to Formal Methods
INF 212 Analysis of Prog. Langs Final Lecture
Types for Programs and Proofs
PROGRAMMING LANGUAGES
Assessment of English Learners
Programming Language Design Concepts
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
Module 0: Introduction Chapter 2: Getting Started
Module 1: Getting Started
AUTOMATED SESSION PLANNING. In the present world, everything has become automated. By, a click everything is being processed. But the preparation of the.
Unit# 8: Introduction to Computer Programming
Welcome to Programming Languages!
Welcome to COE212: Engineering Programming
Foundations of Programming Languages – Course Overview
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 143 Goodbye, world!.
EECE 310 Software Engineering
Programming Languages
Foundations of Programming Languages – Course Overview
Introduction to CS II Data Structures
Intro to CIT 594
Lecture 10: Using Object-Oriented Languages
Programming Languages
How Should You Participate in this Course?
Compiler Structures 1. Overview Objective
CSCE156: Introduction to Computer Science II
Presentation transcript:

INF 212 ANALYSIS OF PROG. LANGS LECTURE 1 Instructors: Crista Lopes Copyright © Instructors.

Outline  Course objectives  The course Credits: This presentation uses material from

Where the rubber hits the road Architect Compilers, Runtime environ- ments Programmer Tester Diagnostic Tools The code (uses one or more Programming Languages)

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

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

The Course  Introduction – the PL landscape  Mathematical Foundations  JavaScript: massively used little language  Haskell: nest of design ideas  Type Systems  Reflection  Modules  Virtual Machines  Program analysis

Assignments and Grading  Homework Projects 90%  6 to 9  Groups of 2  Class participation10%

Getting A and A+  You will get an A if  Show up for class, engage in message board  Do 6 out of 9 projects correctly and on time  You will get an A+ if  All of the above  Do 3 additional projects (9 total) correctly and on time

Grading/Demo Sessions  Every 2 weeks, on Mondays  All day  15 min slots