Programming Languages: Principles and Paradigms

Höfundur Maurizio Gabbrielli; Simone Martini

Útgefandi Springer Nature

Snið Page Fidelity

Print ISBN 9781848829138

Útgáfa 0

Útgáfuár 2010

1.690 kr.

Description

Efnisyfirlit

  • Foreword
  • Introduction
  • Use of the text
  • Acknowledgements
  • Contents
  • Abstract Machines
  • The Concepts of Abstract Machine and of Interpreter
  • The Interpreter
  • An Example of an Abstract Machine: The Hardware Machine
  • Memory
  • The language of the physical machine
  • Interpreter
  • Implementation of a Language
  • Implementation of an Abstract Machine
  • Implementation in Hardware
  • Simulation Using Software
  • Emulation Using Firmware
  • Implementation: The Ideal Case
  • Notation
  • Purely interpreted implementation
  • Purely compiled implementation
  • Comparing the Two Techniques
  • Implementation: The Real Case and The Intermediate Machine
  • Hierarchies of Abstract Machines
  • Chapter Summary
  • Bibliographic Notes
  • Exercises
  • References
  • How to Describe a Programming Language
  • Levels of Description
  • Grammar and Syntax
  • Context-Free Grammars
  • BNF
  • Derivations and languages
  • Derivation Trees
  • Ambiguity
  • Contextual Syntactic Constraints
  • Compilers
  • Lexical analysis
  • Syntactic analysis
  • Semantic analysis
  • Generation of intermediate forms
  • Code optimisation
  • Code generation
  • Semantics
  • State
  • Transitions
  • Expression semantics
  • Command semantics
  • Computations
  • Pragmatics
  • Implementation
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • Foundations
  • The Halting Problem
  • Expressiveness of Programming Languages
  • Formalisms for Computability
  • There are More Functions than Algorithms
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • Names and The Environment
  • Names and Denotable Objects
  • Denotable Objects
  • Environments and Blocks
  • Blocks
  • Types of Environment
  • Operations on Environments
  • Scope Rules
  • Static Scope
  • Dynamic Scope
  • Some Scope Problems
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • Memory Management
  • Techniques for Memory Management
  • Static Memory Management
  • Dynamic Memory Management Using Stacks
  • Activation Records for In-line Blocks
  • Activation Records for Procedures
  • Stack Management
  • Dynamic Management Using a Heap
  • Fixed-Length Blocks
  • Variable-Length Blocks
  • Single free list
  • Multiple free lists
  • Implementation of Scope Rules
  • Static Scope: The Static Chain
  • Static Scope: The Display
  • Dynamic Scope: Association Lists and CRT
  • Central Referencing environment Table (CRT)
  • Chapter Summary
  • Bibliographic Notes
  • Exercises
  • References
  • Control Structure
  • Expressions
  • Expression Syntax
  • Infix Notation
  • Prefix Notation
  • Postfix Notation
  • Semantics of Expressions
  • Infix Notation: Precedence and Associativity
  • Prefix Notation
  • Postfix Notation
  • Evaluation of Expressions
  • Subexpression Evaluation Order
  • The Concept of Command
  • The Variable
  • Assignment
  • Sequence Control Commands
  • Commands for Explicit Sequence Control
  • Sequential Command
  • Composite Command
  • Goto
  • Other sequence control commands
  • Conditional Commands
  • If
  • Case
  • Iterative Commands
  • Unbounded iteration
  • Bounded iteration
  • Expressiveness of bounded iteration
  • The for in C
  • For-each
  • Structured Programming
  • Recursion
  • Tail Recursion
  • Recursion or Iteration?
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • Control Abstraction
  • Subprograms
  • Parameters
  • Return value
  • Nonlocal environment
  • Functional Abstraction
  • Parameter Passing
  • Call by value
  • Call by reference
  • Call by constant
  • Call by result
  • Call by value-result
  • Call by name
  • Higher-Order Functions
  • Functions as Parameters
  • Implementation of deep binding
  • Binding policy and static scope
  • What defines the environment
  • Functions as Results
  • Exceptions
  • Pragmatics
  • Implementing Exceptions
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • Structuring Data
  • Data Types
  • Types as Support for Conceptual Organisation
  • Types for Correctness
  • Types and Implementation
  • Type Systems
  • Static and Dynamic Checking
  • Scalar Types
  • Booleans
  • Characters
  • Integers
  • Reals
  • Fixed Point
  • Complex
  • Void
  • Enumerations
  • Intervals
  • Ordered Types
  • Composite Types
  • Records
  • Variant Records and Unions
  • Unions in C
  • Variants and Security
  • Arrays
  • Operations on Arrays
  • Checking
  • Storage and Calculation of Indices
  • Form of an Array: Where an Array is Allocated
  • Dope Vectors
  • Sets
  • Pointers
  • Pointer Arithmetic
  • Deallocation
  • Recursive Types
  • Functions
  • Equivalence
  • Equivalence by Name
  • Structural Equivalence
  • Compatibility and Conversion
  • Coercions
  • Explicit Conversions
  • Polymorphism
  • Overloading
  • Universal Parametric Polymorphism
  • Explicit polymorphism
  • Implicit Polymorphism
  • Subtype Universal Polymorphism
  • Remarks on the Implementation
  • Type Checking and Inference
  • Safety: An Evaluation
  • Avoiding Dangling References
  • Tombstone
  • Locks and Keys
  • Garbage Collection
  • Reference Counting
  • Mark and Sweep
  • Interlude: Pointer Reversal
  • Mark and Compact
  • Copy
  • Chapter Summary
  • Bibliographic Notes
  • Exercises
  • References
  • Data Abstraction
  • Abstract Data Types
  • Information Hiding
  • Representation Independence
  • Modules
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • The Object-Oriented Paradigm
  • The Limits of Abstract Data Types
  • A First Review
  • Fundamental Concepts
  • Objects
  • Classes
  • Objects in the heap and on the stack
  • Encapsulation
  • Subtypes
  • Redefinition of a method
  • Shadowing
  • Abstract classes
  • The subtype relation
  • Constructors
  • Inheritance
  • Inheritance and visibility
  • Single and multiple inheritance
  • Dynamic Method Lookup
  • Implementation Aspects
  • Objects
  • Classes and inheritance
  • Late binding of self
  • Single Inheritance
  • Downcasting
  • The Problem of Fragile Base Class
  • Dynamic Method Dispatch in the JVM
  • Multiple Inheritance
  • Vtable Structure
  • Replicated multiple inheritance
  • Shared multiple inheritance
  • Polymorphism and Generics
  • Subtype Polymorphism
  • Generics in Java
  • Implementation of Generics in Java
  • Generics, Arrays and Subtype Hierarchy
  • Covariant and Contravariant Overriding
  • Supertypes and Views
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • The Functional Paradigm
  • Computations without State
  • Expressions and Functions
  • Computation as Reduction
  • The Fundamental Ingredients
  • Evaluation
  • Values
  • Capture-Free Substitution
  • Evaluation Strategies
  • Evaluation by value
  • Evaluation by name
  • Lazy evaluation
  • Comparison of the Strategies
  • Programming in a Functional Language
  • Local Environment
  • Interactiveness
  • Types
  • Pattern Matching
  • Infinite Objects
  • Imperative Aspects
  • Implementation: The SECD Machine
  • The Functional Paradigm: An Assessment
  • Program Correctness
  • Program schemata
  • Assessment
  • Fundamentals: The lambda-calculus
  • Syntactic conventions, free and bound variables
  • Substitution
  • Alpha equivalence
  • Computation: beta reduction
  • Normal forms
  • Confluence
  • Fixpoint operators
  • Expressiveness of the lambda-calculus
  • Chapter Summary
  • Bibliographical Note
  • Exercises
  • References
  • The Logic Programming Paradigm
  • Deduction as Computation
  • Terminological Note
  • An Example
  • Syntax
  • The Language of First-Order Logic
  • Alphabet
  • Terms
  • Formulæ
  • Logic Programs
  • Theory of Unification
  • The Logic Variable
  • Substitution
  • Most General Unifier
  • A Unification Algorithm
  • Martelli and Montanari’s unification algorithm
  • The Computational Model
  • The Herbrand Universe
  • Declarative and Procedural Interpretation
  • Procedure Calls
  • Evaluation of a non-atomic goal
  • Heads with arbitrary terms
  • Control: Non-determinism
  • Backtracking in Prolog
  • Some Examples
  • Extensions
  • Prolog
  • Arithmetic
  • Cut
  • Disjunction
  • If-then-else
  • Negation
  • Logic Programming and Databases
  • Logic Programming with Constraints
  • Advantages and Disadvantages of the Logic Paradigm
  • Chapter Summary
  • Bibliographical Notes
  • Exercises
  • References
  • A Short Historical Perspective
  • Beginnings
  • Factors in the Development of Languages
  • 1950s and 60s
  • FORTRAN
  • Algol
  • LISP
  • COBOL
  • Simula
  • The 1970s
  • C
  • Pascal
  • Smalltalk
  • Declarative languages
  • ML
  • PROLOG
  • The 1980s
  • C++
  • Ada
  • CLP
  • 1990s
  • Java
  • Chapter Summary
  • Bibliographical Notes
  • References
  • Index
Show More

Additional information

Veldu vöru

Leiga á rafbók í 60 daga, Leiga á rafbók í 180 daga, Leiga á rafbók í 30 daga, Rafbók til eignar, Leiga á rafbók í 120 daga, Leiga á rafbók í 90 daga, Leiga á rafbók í 365 daga

Reviews

There are no reviews yet.

Be the first to review “Programming Languages: Principles and Paradigms”

Netfang þitt verður ekki birt. Nauðsynlegir reitir eru merktir *

Aðrar vörur

0
    0
    Karfan þín
    Karfan þín er tómAftur í búð