Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Computers Are Your Future
Chapter 1: Preliminaries
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.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
PZ01BX Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01BX - Standardization, Internationalization 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.
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.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CS 355 – Programming Languages
CS 326 Programming Languages, Concepts and Implementation
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Chapter 1. Introduction.
Programming Languages Summer
COP 4020 Programming Langauges Dr. Roy Levow –Office hours: M 5-6:30 – –
1 Programming Languages Marjan Sirjani Course web site:
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.
Visual C++ Programming: Concepts and Projects
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.
ISBN CS 354 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Course Topics What is a programming language? What features.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
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.
Programming Languages
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Software Engineering Algorithms, Compilers, & Lifecycle.
Programming Language Paradigms ITSK2314 Lecture 3.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
1 Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section.
The language focusses on ease of use
Concepts of Programming Languages
Introduction to programming languages, Algorithms & flowcharts
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Concepts of Programming Languages
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Developing Applications
Introduction to programming languages, Algorithms & flowcharts
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
and Program Development
Principles of Programming Languages
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
강의 내용 및 방법 작년 강의 결과에 대한 설명 올해 접근방법 리포트 시험
Presentation transcript:

Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good programming language Language paradigms Standardization and internationalization

Why study programming languages To improve your ability to develop effective algorithms To improve your use of existing programming languages To increase your vocabulary of useful programming constructs

Why study programming languages To allow a better choice of programming language To make it easier to learn a new language To make it easier to design a new language

Language development Numerically based languages Computing mathematical expressions FORTRAN, Algol, Pascal, PL/1, BASIC, C, C++ Business languages COBOL (Common Business Oriented Language) English-like notation

Language development Artificial intelligence languages Tree search; Rule-based paradigm LISP (LISt Processing) PROLOG (PROgramming in LOGic) System languages C, C++ Script languages: AWK, Perl, TCL/TK Web programming: HTML, XML, Java, Microsoft *.NET family

Software architectures Mainframe era Batch processing (batches of files) Interactive processing (time sharing) Effects on language design File I/O in batch processing Error handling in batch processing Time constraints in interactive processing

Software architectures Personal computers Interactive processing Embedded system environments Effects on language design No need for time sharing Good interactive graphics Non-standard I/O devices for embedded systems

Software architectures Networking era Client-server model of computing Server: a program that provides information Client - a program that requests information Effects on language design Interaction between the client and server programs Active web pages, Security issues, Performance

Design Goals During 1950s--1960s - Run-time considerations Programmers are cheap, machines expensive; Keep the machine busy Today - program development time considerations CPU power and memory are very cheap

Attributes of a good language Conceptual integrity Orthogonality Naturalness for the application Support for abstraction Ease of program verification Programming environment Portability of programs Cost of use

Language paradigms Imperative / procedural languages Applicative / functional languages Rule-based / declarative languages Object-oriented languages

Imperative / procedural languages Statement oriented languages that change machine state (C, Pascal, FORTRAN, COBOL) Computation: a sequence of machine states (contents of memory) Syntax: S1, S2, S3,... where S1, S2, … are statements

Applicative / functional languages Programming consists of building the function that computes the answer Computation: Function composition is major operation (ML, LISP) Syntax: P1(P2(P3(X)))

Rule-based / declarative languages Computation: Actions are specified by rules that check for the presence of certain enabling conditions. (Prolog) The order of execution is determined by the enabling conditions, not by the order of the statements. Syntax: Condition  Action

Object-oriented languages Imperative languages that merge applicative design with imperative statements (Java, C++, Smalltalk) Syntax: Set of objects (classes) containing data (imperative concepts) and methods (applicative concepts)

Language standardization The need for standards - to increase portability of programs Problem: When to standardize a language? If too late - many incompatible versions If too early - no experience with language Problem: What happens with the software developed before the standardization? Ideally, new standards have to be compatible with older standards.

Internationalization I18N issue - How to specify languages useful in a global economy? What character codes to use? Collating sequences? - How do you alphabetize various languages? Dates? - What date is 10/12/01? ? ? Is it a date in October or December?

Internationalization Time? - How do you handle time zones, summer time in Europe, daylight savings time in US, Southern hemisphere is 6 months out of phase with northern hemisphere, the date to change from summer to standard time is not consistent. Currency? - How to handle dollars, pounds, marks, francs, euros, etc.

Programming environments Programming environment: the environment in which programs are created and tested. Separate compilation Separate execution Testing Debugging

Programming environments Effects on language design: Modular organization Local/global variables Libraries

Programming environments Process control languages Scripting languages Usually interpreted, Able to process programs and data files Specify a sequence of operations on program and data files. Awk, Perl, Tcl/Tk

Summary Language design must: Allow program solution to match problem structure Allow for world-wide use Be easy to prove correctness of solutions