DOC PREVIEW
UT Dallas CS 4337 - #Sebesta ch01 - rev1 short

This preview shows page 1-2-3-26-27-28 out of 28 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 28 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Chapter 1Reasons for Studying Concepts of Programming LanguagesProgramming DomainsLanguage Evaluation CriteriaEvaluation Criteria: ReadabilityEvaluation Criteria: WritabilityEvaluation Criteria: ReliabilityEvaluation Criteria: CostEvaluation Criteria: OthersInfluences on Language DesignComputer Architecture InfluenceThe von Neumann ArchitectureSlide 13Programming Methodologies InfluencesLanguage CategoriesLanguage Design Trade-OffsImplementation MethodsCompilationCompilation ProcessAdditional Compilation TerminologiesVon Neumann BottleneckPure InterpretationPure Interpretation ProcessHybrid Implementation SystemsHybrid Implementation ProcessJust-in-Time Implementation SystemsPreprocessorsProgramming EnvironmentsChapter 1PreliminariesCopyright © 2012 Addison-Wesley. All rights reserved. 1-2Reasons for Studying Concepts of Programming Languages•Increased ability to express ideas•Improved background for choosing appropriate languages•Increased ability to learn new languages•Better understanding of significance of implementation•Better use of languages that are already known•Overall advancement of computingCopyright © 2012 Addison-Wesley. All rights reserved. 1-3Programming Domains•Scientific applications–Large numbers of floating point computations; use of arrays–Fortran•Business applications–Produce reports, use decimal numbers and characters–COBOL•Artificial intelligence–Symbols rather than numbers manipulated; use of linked lists–LISP•Systems programming–Need efficiency because of continuous use–C•Web Software–Eclectic collection of languages: markup (e.g., HTML), scripting (e.g., PHP), general-purpose (e.g., Java)Copyright © 2012 Addison-Wesley. All rights reserved. 1-4Language Evaluation Criteria•Readability: the ease with which programs can be read and understood•Writability: the ease with which a language can be used to create programs•Reliability: conformance to specifications (i.e., performs to its specifications) •Cost: the ultimate total costCopyright © 2012 Addison-Wesley. All rights reserved. 1-5Evaluation Criteria: Readability•Overall simplicity–A manageable set of features and constructs–Minimal feature and Minimal operator overloading–Easy to read a program (to understand and maintain)•Orthogonality –A relatively small set of primitive constructs can be combined in a relatively small number of ways–Every possible combination is legal–Keywords: 32 for C, 63 for C++, 50 for Java, 112 reserved words (plus 120 keywords …) for Oracle•Data types–Adequate predefined data types•Syntax considerations–Identifier forms: flexible composition –Special words and methods of forming compound statements–Form and meaning: self-descriptive or meaningful keywordsCopyright © 2012 Addison-Wesley. All rights reserved. 1-6Evaluation Criteria: Writability•Simplicity and orthogonality–Few constructs, a small number of primitives, a small set of rules for combining them–Easy to remember and easy to use–To reduce chance of misspelling or typo in programming•Support for abstraction–The ability to define and use complex structures or operations in ways that allow details to be ignored•Expressivity–A set of relatively convenient ways of specifying operations (e.g., dot-notation - a.b.c)–Strength and number of operators and predefined functions (e.g., + to add various & mixed type-numbers)Copyright © 2012 Addison-Wesley. All rights reserved. 1-7Evaluation Criteria: Reliability•Type checking–Testing for type errors•Exception handling–Intercept run-time errors and take corrective measures•Aliasing–Presence of two or more distinct referencing methods for the same memory location•Readability and writability–A language that does not support “natural” ways of expressing an algorithm will require the use of “unnatural” approaches, and hence reduced reliabilityCopyright © 2012 Addison-Wesley. All rights reserved. 1-8Evaluation Criteria: Cost•Training programmers to use the language•Writing programs•Compiling programs•Testing programs•Executing programs•Maintaining programs•Availability of free compilers•Reliability: poor reliability leads to high costsCopyright © 2012 Addison-Wesley. All rights reserved. 1-9Evaluation Criteria: Others•Portability–The ease with which programs can be moved from one implementation to another•C & Unix system•Java & JVM – platform independent •Generality–The applicability to a wide range of applications•Cobol, Fortran, C, SAS or SPSS, Java, Perl, Python, … •Well-definedness –The completeness and precision of the language’s official definitionCopyright © 2012 Addison-Wesley. All rights reserved. 1-10Influences on Language Design•Computer Architecture–Languages are developed around the prevalent computer architecture, known as the von Neumann architecture•Program Design Methodologies–New software development methodologies (e.g., object-oriented software development) led to new programming paradigms and by extension, new programming languages•C++ and JavaCopyright © 2012 Addison-Wesley. All rights reserved. 1-11Computer Architecture Influence•Well-known computer architecture: Von Neumann •Imperative languages, most dominant, because of von Neumann computers–Data and programs stored in memory–Memory is separate from CPU–Instructions and data are piped from memory to CPU–Basis for imperative languages•Variables model memory cells•Assignment statements model piping•Iteration is efficient and easy to understandCopyright © 2012 Addison-Wesley. All rights reserved. 1-12The von Neumann ArchitectureCopyright © 2012 Addison-Wesley. All rights reserved. 1-13The von Neumann Architecture•Fetch-execute-cycle (on a von Neumann architecture computer)initialize the program counterrepeat foreverfetch the instruction pointed by the counterincrement the counterdecode the instructionexecute the instructionend repeatCopyright © 2012 Addison-Wesley. All rights reserved. 1-14Programming Methodologies Influences•1950s and early 1960s: Simple applications; worry about machine efficiency•Late 1960s: People efficiency became important; readability, better control structures–structured programming–top-down design and step-wise refinement•Late 1970s: Process-oriented to data-oriented–data abstraction•Middle 1980s: Object-oriented programming–Data abstraction + inheritance +


View Full Document

UT Dallas CS 4337 - #Sebesta ch01 - rev1 short

Download #Sebesta ch01 - rev1 short
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view #Sebesta ch01 - rev1 short and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view #Sebesta ch01 - rev1 short 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?