Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT, www.cs.njit.edu/~elsa/635 www.cs.njit.edu/~elsa/635.

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
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 Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Chapter 1: Preliminaries
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Overview of Programming Paradigms
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
CS 354 Overview. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Course Topics What is a programming language? What features do programming.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Programming Languages and Compilers (CS 421)
CS 331, Principles of Programming Languages Introduction.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CS 355 – Programming Languages
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS 363 Comparative Programming Languages
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Programming Languages Summer
1 CSC 533: Organization of Programming Languages Spring 2010 See online syllabus at: Course goals:  understand issues in designing,
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures.
Chapter 6 Programming Languages (1) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Introduction 1 강의 내용 및 방법  접근방법 –Lambda Calculus, Proof of Correctness 은 강의에서 제 외  원하는 학생에게만 특별히 따로 강의함  리포트 –2 주일에 프로그램 1 개 정도, term project 는 없음 –
CS 331, Principles of Programming Languages Chapter 1.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
ISBN Structure of Programming Languages Prof. Dr. Mostafa Abdel Aziem Mostafa Senior Lecturer
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CSCE 343 – Programming Language Concepts Welcome!.
The College of Saint Rose CIS 433 – Programming Languages David Goldschmidt, Ph.D. from Concepts of Programming Languages, 9th edition by Robert W. Sebesta,
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
CSC 533: Programming Languages Spring 2016
CSC 533: Programming Languages Spring 2015
PROGRAMMING LANGUAGES
Lecture 1: Introduction to JAVA
Chapter 1 Reasons to study concepts of PLs Programming Domains
An Introduction to Programming
1.1 Reasons to study concepts of PLs
Programming COMP104: Fundamentals and Methodology Introduction.
CS 3304 Comparative Languages Fall 2011
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Programming Languages 2nd edition Tucker and Noonan
Principles of Programming Languages
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
강의 내용 및 방법 작년 강의 결과에 대한 설명 올해 접근방법 리포트 시험
An Introduction to Programming
Programming Languages, Preliminaries, History & Evolution
Reasons To Study Programming Languages
Presentation transcript:

Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,

Copyright 2002 Elsa L. Gunter Contact Information Office: 4303 GITC Office hours: – Mondays 10:45 – 11:25, 2:30 – 3:10 – Wednesdays 10:45 – 12:10 –Tuesdays and Thursdays by appointment

Copyright 2002 Elsa L. Gunter Course Structure Text: Concepts of Programming Languages, by Robert W. Sebesta (5th edition) Credit: –Homework 35% (submitted in class) Includes programming –Midterm 25% –Final 40%

Copyright 2002 Elsa L. Gunter Course Dates Homework due each Monday at the beginning of class. No homework. March 11 : In class midterm DO NOT MISS EXAM DATE!

Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,

Copyright 2002 Elsa L. Gunter Personal History First began programming almost 30 years ago First languages: basic, DG nova assembler Since have programmed in at least 10 different languages –Not including AWK, sed, shell scripts, latex, HTML, etc

Copyright 2002 Elsa L. Gunter Personal History One language may not last you all day, let alone your whole programming life

Copyright 2002 Elsa L. Gunter Programming Language Goals Original Model: –Computer expensive, people cheap; hand code to keep computer busy Today: –People expensive, computers cheap; write programs efficiently and correctly

Copyright 2002 Elsa L. Gunter Programming Language Goals Mythical Man-Month Author Fred Brookes “The most important two tools for system programming … are (1) high- level programming languages and (2) interactive languages”

Copyright 2002 Elsa L. Gunter Why Study Programming Languages? Helps you to: –understand efficiency costs of given constructs –think about programming in new ways –choose best language for task –design better program interfaces –learn new languages

Copyright 2002 Elsa L. Gunter How to Study Programming Languages Many features for one language at a time or many languages for one feature at a time –We will mainly choose the second method in this course Design and Organization –Syntax: How a program is written –Semantics: What a program means –Implementation: How a program runs

Copyright 2002 Elsa L. Gunter How to Study Programming Languages Major Language Features –Imperative / Applicative / Rule-based –Sequential / Concurrent

Copyright 2002 Elsa L. Gunter Course Outline – First Half History and Overview Introduction to SML Language Analysis and Translation Program Semantics Elementary Types

Copyright 2002 Elsa L. Gunter Course Outline – Second Half Abstraction and Encapsulation –Structured Types –Abstract datatypes Introduction to Java Abstraction and Encapsulation –Inheritance –Subprograms –Modules Control of Execution

Copyright 2002 Elsa L. Gunter Course Outline - Time allowing, Runtime Storage Management Distributed Computing

Copyright 2002 Elsa L. Gunter Historical Environment Mainframe Era –Batch environments (through early 60’s and 70’s) Programs submitted to operator as a pile of punch cards; programs were typically run over night and output put in programmers bin

Copyright 2002 Elsa L. Gunter Historical Environment Mainframe Era –Interactive environments Multiple teletypes and CRT’s hooked up to single mainframe Time-sharing OS (Multics) gave users time slices Lead to compilers with read-eval- print loops

Copyright 2002 Elsa L. Gunter Historical Environment Personal Computing Era –Small, cheap, powerful –Single user, single-threaded OS (at first any way) –Windows interfaces replaces line input –Wide availability lead to inter- computer communications and distributed systems

Copyright 2002 Elsa L. Gunter Historical Environment Networking Era –Local area networks for printing, file sharing, application sharing –Global network First called ARPANET, now called Internet Composed of a collection of protocols: FTP, (SMTP), HTTP (HMTL), URL

Copyright 2002 Elsa L. Gunter Features of a Good Language Simplicity – few clear constructs, each with unique meaning Orthogonality - every combination of features is meaningful Flexible control constructs

Copyright 2002 Elsa L. Gunter Features of a Good Language Rich data structures – allows programmer to naturally model problem Clear syntax design – constructs should suggest functionality Support for abstraction - program data reflects problem being solved; allows programmers to safely work locally

Copyright 2002 Elsa L. Gunter Features of a Good Language Expressiveness – concise programs Good programming environment Architecture independence and portability

Copyright 2002 Elsa L. Gunter Features of a Good Language Readability –Simplicity –Orthogonality –Flexible control constructs –Rich data structures –Clear syntax design

Copyright 2002 Elsa L. Gunter Features of a Good Language Writability –Simplicity –Orthogonality –Support for abstraction –Expressivity –Programming environment –Portability

Copyright 2002 Elsa L. Gunter Features of a Good Language Usually readability and writability call for the same language characteristics Sometimes they conflict: –Comments: Nested comments (e.g /*… /* … */ … */ ) enhance writability, but decrease readability

Copyright 2002 Elsa L. Gunter Features of a Good Language Reliability –Readability –Writability –Type Checking –Exception Handling –Restricted aliasing

Copyright 2002 Elsa L. Gunter Language Paradigms – Imperative Languages Main focus: machine state – the set of values stored in memory locations Command-driven: Each statement uses current state to compute a new state Syntax: S1; S2; S3;... Example languages: C, Pascal, FORTRAN, COBOL

Copyright 2002 Elsa L. Gunter Language Paradigms – Object-oriented Languages Classes are complex data types grouped with operations (methods) for creating, examining, and modifying elements (objects); subclasses include (inherit) the objects and methods from superclasses

Copyright 2002 Elsa L. Gunter Language Paradigms – Object-oriented Languages Computation is based on objects sending messages (methods applied to arguments) to other objects Syntax: Varies, object <- method(args) Example languages: Java, C++, Smalltalk

Copyright 2002 Elsa L. Gunter Language Paradigms – Applicative Languages Applicative (functional) languages –Programs as functions that take arguments and return values; arguments and returned values may be functions –Programming consists of building the function that computes the answer; function application and composition main method of computation –Syntax: P1(P2(P3 X)) –Example languages: ML, LISP, Scheme

Copyright 2002 Elsa L. Gunter Language Paradigms – Logic Programming Rule-based languages –Programs as sets of basic rules for decomposing problem –Computation by deduction: search, unification and backtracking main components –Syntax: Answer :- specification rule –Example languages: (Prolog, Datalog,BNF Parsing)