We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byDarian Leiner
Modified about 1 year ago
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria –What influences PL design? –Tradeoffs faced by programming languages –Implementation methods –Programming environments
Copyright © 1998 by Addison Wesley Longman, Inc. 2 Why study Programming Language Concepts? Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Understanding the significance of implementation Increased ability to design new languages Overall advancement of computing
Copyright © 1998 by Addison Wesley Longman, Inc. 3 Programming Domains Scientific applications Business applications Artificial intelligence Systems programming Scripting languages Special purpose languages
Copyright © 1998 by Addison Wesley Longman, Inc. 4 Language Evaluation Criteria Readability Writability Reliability Cost Etc…
Copyright © 1998 by Addison Wesley Longman, Inc. 5 Evaluation Criteria: Readability How is it for one to read and understand programs written in the PL? Arguably the most important criterion! Factors effecting readability include: –Overall simplicity »Too many features is bad Orthogonality »Makes the language easy to learn and read »Meaning is context independent –Control statements –Data type and structures –Syntax considerations
Copyright © 1998 by Addison Wesley Longman, Inc. 6 Evaluation Criteria: Writability How easy is it to write programs in the language? Factors effecting writability: –Simplicity and orthogonality –Support for abstraction –Expressivity –Fit for the domain and problem
Copyright © 1998 by Addison Wesley Longman, Inc. 7 Evaluation Criteria: Reliability Factors: - Type checking - Exception handling - Aliasing - Readability and writability
Copyright © 1998 by Addison Wesley Longman, Inc. 8 Evaluation Criteria: Cost Categories: –Programmer training –Software creation –Compilation –Execution –Compiler cost –Poor reliability –Maintenance
Copyright © 1998 by Addison Wesley Longman, Inc. 9 Evaluation Criteria: others Portability Generality Well-definedness Etc…
Copyright © 1998 by Addison Wesley Longman, Inc. 10 Language Design Influences Computer architecture -We use imperative languages, at least in part, because we use von Neumann machines -John von Neuman is generally considered to be the inventor of the "stored program" digital computer - the class to which most of today's computers belong. -CPU+memory which contains both program and data -Focus on moving data and program instructions between registers in CPU to memory locations
Copyright © 1998 by Addison Wesley Longman, Inc. 11 Language Design Influences: Programming methodologies 1950s and early 1960s: Simple applications; worry about machine efficiency Late 60s: People efficiency became important; readability, better control structures. maintainability Late 70s: Data abstraction Middle 80s: Object-oriented programming 95-today: distributed programs, the Web
Copyright © 1998 by Addison Wesley Longman, Inc. 12 Language Categories The big four: Imperative or procedural (e.g. Fortran, C) Functional (e.g. Lisp, ML) Rule-based (e.g. Prolog) Object-oriented (e.g. Smalltalk, Java) Others: Scripting (e.g. Perl, Tcl/Tk) Constraint (e.g. Eclipse)
Copyright © 1998 by Addison Wesley Longman, Inc. 13 Language Design Trade-offs Reliability versus cost of execution Ada, unlike C, checks all array indices to ensure proper range. Writability versus readability (2 = 0 +.= T o.| T) / T <- iN is an APL one liner that produces a list of the prime numbers from 1 to N inclusive. Flexibility versus safety C, unlike Java, allows one to do arithmetic on pointers.
Copyright © 1998 by Addison Wesley Longman, Inc. 14 Implementation methods Direct execution by hardware –e.g., machine language Compilation to another language –e.g., C Interpretation –Direct execution by software –e.g., csh, Lisp (traditionally) Hybrid –Compilation to another language (aka bytecode) which is then interpreted –e.g., Java, Perl
Copyright © 1998 by Addison Wesley Longman, Inc. 15 Implementation issues Complexity of compiler/interpreter Speed of translation Speed of execution Portability of translated code Compactness of translated code Debugging ease compileinterpret hybrid
Copyright © 1998 by Addison Wesley Longman, Inc. 16 Programming Environments The collection of tools used in software development, often including an integrated editor, debugger, compiler, collaboration tool, etc. Examples: –UNIX -- Operating system with tool collection –EMACS – a highly programmable text editor –Borland C++ -- A PC environment for C and C++ –Smalltalk -- A language processor/environment –Microsoft Visual C++ -- A large, complex visual environment –Your favorite Java environment: Jbuilder, J++, …
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
MT311 (Oct 2007) Java Application Development Concepts of Programming Languages, Language Evaluation Tutorial 5.
1 Chapter 3 - Language Design Principles. Thought question What characteristics should be present in your “perfect language”? What have you liked/disliked.
ISBN Chapter 5 Names, Bindings, Type Checking, and Scopes.
10-1. Systems Analysis & Programming 10.1 Systems Development 10.2 Programming: A Five-Step Procedure Generations of Programming Languages 10.4.
Copyright © 2009 Elsevier Chapter 3:: Names, Scopes, and Bindings Programming Language Pragmatics Michael L. Scott.
Software ideals and history Bjarne Stroustrup
Sub: : Fundamental of Programming(FOP) Chap: 1 : Introduction to Programming: Algorithms and Flowcharts Presented By Tejas Modi Asst. Professor,
9.1 9 Programmin g Languages Foundations of Computer Science Cengage Learning.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 1: Introduction: Program Structure & Java Syntax.
Chapter 1: Introduction to Expert Systems. 2 Objectives Learn the meaning of an expert system Understand the problem domain and knowledge domain Learn.
Analysis of Computer Algorithms. What is Algorithm? Algorithm is any well-defined computational procedure that takes some value, or set of values, as.
1 Introduction to Computer Programming Featuring: C language.
Requirements (selected from Ian Sommerville slides for “Software Engineering”)
Embedded System, A Brief Introduction Presented by Subash Chandra Nayak 01EC3010, IIT Kharagpur.
+ William Stallings Computer Organization and Architecture 9 th Edition.
CS101: COMPUTER PROGRAMMING Lecture 1: Introduction to Computer and Programming.
Functional Programming Languages Session 12 Course : T Programming Language Concept Year : February 2011.
Kathleen Fisher cs242 Reading: “Concepts in Programming Languages”, Chapter 6.
Software Reuse and Component-Based Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Pride and prejudice: Four decades of Lisp Stuart Watt Human Cognition Research Laboratory, The Open University, Walton Hall, Milton Keynes, MK7 6AA.
MT311 (Oct 2007) Java Application Development Variables – binding, type, and scope Expression Tutorial 6.
DATABASE SYSTEM CONCEPTS AND ARCHITECTURE CHAPTER 2 1.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Practical Database Design Methodology and Use of UML Diagrams.
Software Engineering Lecture 10 Software Design: Architecture, Interface, Procedural 1.
Electronic Presentations in Microsoft ® PowerPoint ® Prepared by Brad MacDonald SIAST © 2003 McGraw-Hill Ryerson Limited.
Teaching Web Services and XML with the Water Language Christopher Fry Clear Methods, Inc. Ed Gehringer and Matt Kendall North Carolina State University.
Names, Scope, Memory, and Binding. Name, Scope, and Binding A name is exactly what you think it is – Usually think of identifiers but can be more general.
1 Introduction to Computers Chapter Goals Describe the history of computer hardware and software Describe the changing role of the computer user.
© 2016 SlidePlayer.com Inc. All rights reserved.