Introduction to programming languages:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boca Raton, Fla [u.a.]
CRC Press, Taylor & Francis Group
2014
|
Schlagworte: | |
Online-Zugang: | Klappentext Inhaltsverzeichnis |
Beschreibung: | XXXV, 588 S. Illustrationen, Diagramme |
ISBN: | 9781466565142 1466565144 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV041081362 | ||
003 | DE-604 | ||
005 | 20230102 | ||
007 | t | ||
008 | 130611s2014 a||| |||| 00||| eng d | ||
020 | |a 9781466565142 |9 978-1-4665-6514-2 | ||
020 | |a 1466565144 |9 1-4665-6514-4 | ||
035 | |a (OCoLC)882445502 | ||
035 | |a (DE-599)BVBBV041081362 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-703 |a DE-91G |a DE-83 |a DE-11 |a DE-739 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a DAT 350f |2 stub | ||
100 | 1 | |a Bansal, Arvind Kumar |e Verfasser |0 (DE-588)1051409020 |4 aut | |
245 | 1 | 0 | |a Introduction to programming languages |c Arvind Kumar Bansal |
264 | 1 | |a Boca Raton, Fla [u.a.] |b CRC Press, Taylor & Francis Group |c 2014 | |
300 | |a XXXV, 588 S. |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Programmiersprache |0 (DE-588)4047409-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierparadigma |0 (DE-588)4308224-5 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmiersprache |0 (DE-588)4047409-4 |D s |
689 | 0 | 1 | |a Programmierparadigma |0 (DE-588)4308224-5 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-026058144 |
Datensatz im Suchindex
_version_ | 1804150452880670720 |
---|---|
adam_text | Contents
Preface,
xxi
Chapter Outlines,
xxiii
Classroom Use of This Book,
xxix
Acknowledgments,
xxxi
About the Author,
xxxiii
Glossary of Symbols,
xxxv
Chapter
1 ■
Introduction
____________________________________________
1_
1.1
MULTITUDE OF PROBLEM DOMAINS
2
1.2
MOTIVATION
3
1.3
LEARNING OUTCOMES
4
1.4
PROGRAM AND COMPONENTS
5
1.4.1
Abstractions in Programs
6
1.4.2
Program Comprehension and Jumps
10
1.4.3
Execution of Programs
12
1.5
INTEROPERABILITY OF PROGRAMMING LANGUAGES
16
1.6
SOFTWARE DEVELOPMENT CYCLE
17
1.7
CRITERIA FOR A GOOD PROGRAMMING LANGUAGE
19
1.8
HISTORY OF PROGRAMMING PARADIGMS AND LANGUAGES
20
1.8.1
Imperative Programming Paradigm
20
1.8.2
Declarative Programming Paradigm
22
1.8.3
Object-Oriented Programming Paradigm
23
1.8.4
Concurrent Programming Paradigm
24
1.8.5
Visual Programming Paradigm
25
1.8.6
Multimedia Programming Paradigm
25
1.8.7
Web-Based Programming Paradigm
26
vi
■ Contents
1.8.8
Event-Based
Programming
Paradigm
26
1.8.9
Integration of Programming Paradigms
27
1.9
CLASSIFICATION OF LANGUAGES
27
1.9.1
Programming Paradigms-Based Classification
28
1.9.2
Implementation-Based Classification
28
1.9.3
Other Classifications
30
1.10
SUMMARY 30
1.11
ASSESSMENT
31
1.11.1
Concepts and Definitions
31
1.11.2
Problem Solving
31
1.11.3
Extended Response
32
FURTHER READING
33
Chapter
2 ■
Background and Fundamental Concepts
_____________________35^
2.1 VON
NEUMANN MACHINE
35
2.1.1
Address Mechanisms
36
2.2
DISCRETE STRUCTURES CONCEPTS
39
2.2.1
Set Operations
39
2.2.2
Boolean Logic and Predicate Calculus
42
2.2.3
Recursion
45
2.2.4
Finite State Machines
47
2.3
DATA STRUCTURE CONCEPTS
48
2.3.1
Sequences
48
2.3.2
Stacks and Queues
49
2.3.3
Reference Mechanisms
51
2.3.4
Recursive Data Structures
52
2.3.5
Trees
53
2.3.6
Graphs
54
2.3.7
Exhaustive Search
55
2.3.8
Mapping Data Structures in Linear Memory
59
2.3.9
Hash Tables
60
2.4
ABSTRACT CONCEPTS IN COMPUTATION
61
2.4.1
Mutable versus Immutable Variables
63
2.4.2
Bindings and Scope Rules
63
2.4.3
Types of Variables
65
2.4.4
Environment and Store
66
Contents ■
vii
2.4.5
Functions and Procedures
67
2.4.6
Abstracting the Program Execution
68
2.4.7
Processes and Threads
70
2.4.8
Buffers
71
2.5
SUMMARY
72
2.6
ASSESSMENT
74
2.6.1
Concepts and Definitions
74
2.6.2
Problem Solving
75
2.6.3
Extended Response
76
FURTHER READING
76
Chapter
3 ■
Syntax and Semantics
_________________________________________
77_
3.1
INTRODUCTION TO SYNTAX AND SEMANTICS
77
3.2
GRAMMARS
79
3.2.1
Types of Grammars
80
3.2.2
Representing Grammar Using Backus-Naur Form
81
3.2.3
Extended Backus-Naur Form (EBNF)
83
3.2.4
Attribute Grammar
85
3.2.5
Hyper-Rules and Meta-Definitions
87
3.2.6
Abstract Syntax
87
3.3
SYNTAX DIAGRAMS
89
3.3.1
Translating Syntax Rules to Syntax Diagrams
91
3.3.2
Translating Syntax Diagrams to Syntax Rules
94
3.4
VALIDATING SENTENCE STRUCTURE
95
3.4.1
Lexical Analysis
95
3.4.2
Parsing
98
3.4.3
Handling Grammar Ambiguities
100
3.4.4
Abstract Syntax Tree
102
3.4.5
Automated Parsing
103
3.5
SEMANTICS
104
3.5.1
Operational Semantics
104
3.5.2
Axiomatic Semantics
106
3.5.3
Denotational Semantics
108
3.5.4
Action Semantics
113
3.5.5
Other Models of Semantics
114
3.6
SUMMARY
115
viii
■ Contents
3.7
ASSESSMENT
116
3.7.1
Concepts and Definitions
116
3.7.2
Problem Solving 117
3.7.3
Extended Response
118
FURTHER READING
119
Chapter
4 ■
Abstractions in Programs and Information Exchange
_______ 121
4.1
DATA ABSTRACTIONS
122
4.1.1
Single Data Entities
124
4.1.2
Composite Data Entities
124
4.1.3
Collection of Data Entities
126
4.1.4
Extensible Data Entities
126
4.1.5
Ordering and Accessing Data Entities
127
4.1.6
Interconnected Data Entities
128
4.1.7
Persistence
128
4.1.8
Declarations and Environment Change
129
4.2
CONTROL ABSTRACTIONS
130
4.2.1
Assignment and Command Sequence
131
4.2.2
Conditional Statements
133
4.2.3
Iterative Constructs and Iterators
135
4.2.4
Block Structure
137
4.2.5
Program Units and Invocations
138
4.2.6
Modules
141
4.2.7
Objects and Classes
142
4.3
INFORMATION EXCHANGE
143
4.3.1
Mechanisms of Information Exchange
144
4.4
PARAMETER PASSING
145
4.4.1
Call-by-Value and Variations
147
4.4.2
Call-by-Reference and Variations
148
4.4.3
Call-by-Result
151
4.4.4
Call-by-Value-Result
151
4.4.5
Call-by-Name
153
4.4.6
Call-by-Need
155
4.4.7
Passing Subprograms as Parameters
156
4.4.8
Parameter Passing for Distributed Computing
156
Contents ■ ix
4.5
SIDE EFFECTS
157
4.5.1
Aliasing and Side Effects
158
4.5.2
Regulating Side Effects
160
4.5.3
A Comprehensive Example
160
4.6
EXCEPTION HANDLING
162
4.7
NONDETERMINISTIC COMPUTATION
164
4.7.1
Guarded Commands
166
4.7.2
Stepwise Program Construction
167
4.8
PROGRAMS AS DATA
168
4.8.1
Functions as First-Class Objects
168
4.8.2
Meta-Programming and
Reflexivity
169
4.9
SOFTWARE REUSE
169
4.9.1
Interoperability Revisited
170
4.10
CASESTUDY
170
4.10.1
Data Abstraction in Programming Languages
171
4.10.2
Control Abstractions in Programming Languages
177
4.10.3
Information Exchange in Programming Languages
178
4.11
SUMMARY
179
4.12
ASSESSMENT
182
4.12.1
Concepts and Definitions
182
4.12.2
Problem Solving
182
4.12.3
Extended Response
183
FURTHER READING
184
Chapter
5 ■
Implementation Models for Imperative Languages
185
5.1
ABSTRACT COMPUTING MACHINE
187
5.2
TRANSLATING CONTROL ABSTRACTIONS
190
5.2.1
Translating Expressions
190
5.2.2
Translating Assignment Statement
190
5.2.3
Translating If-Then-Else Construct
191
5.2.4
Translating Case Statement
191
5.2.5
Translating Iterative Constructs
192
5.3
STATIC ALLOCATION
194
5.4
HYBRID ALLOCATION
197
5.4.1
Roles of Various Pointers
198
5.4.2
Calling Subprograms
199
5.4.3
Generating Data and Code Areas
200
χ
■ Contents
5.5
IMPLEMENTING PARAMETER PASSING
205
5.5.1
Implementing Call-by-Value
205
5.5.2
Implementing Call-by-Reference
206
5.5.3
Implementing Call-by-Value-Result
207
5.6
LOW-LEVEL BEHAVIOR OF RECURSIVE PROCEDURES
209
5.7
IMPLEMENTING EXCEPTION HANDLER
210
5.8
SUMMARY
210
5.9
ASSESSMENT
212
5.9.1
Concepts and Definitions
212
5.9.2
Problem Solving
212
5.9.3
Extended Response
213
FURTHER READING
214
Chapter
6 ■
Dynamic Memory Management
_________________________ 215
6.1
HEAP ORGANIZATION
216
6.2
ALLOCATION OF DYNAMIC DATA OBJECTS
218
6.3
DEALLOCATION OF DYNAMIC DATA OBJECTS
219
6.4
FRAGMENTATION
220
6.5
GARBAGE COLLECTION—RECYCLING HEAP MEMORY
221
6.5.1
Garbage Collection Approaches
222
6.6
START-AND-STOP GARBAGE COLLECTION
223
6.6.1
Mark-and-Scan Algorithm
224
6.6.2
Copying Garbage Collection
225
6.6.3
Cheney s Modified Copying Garbage Collection
228
6.6.4
Generational Garbage Collection
229
6.7
INCREMENTAL GARBAGE COLLECTION
231
6.7.1
Baker
s
Algorithm
232
6.8
CONTINUOUS REFERENCE-COUNT GARBAGE COLLECTION
233
6.9
CONCURRENT GARBAGE COLLECTION
235
6.9.1
Concurrent Copying Garbage Collection
235
6.9.2
Concurrent
Real-Time
Garbage Collection
236
6.10
ISSUES IN GARBAGE COLLECTION
236
6.11
SUMMARY
237
Contents ■
x¡
6.12
ASSESSMENT
239
6.12.1
Concepts and Definitions
239
6.12.2
Problem Solving
239
6.12.3
Conceptual Type
240
FURTHER READING
241
Chapter
7 ■
Type Theory
243
7.1
ADVANTAGES OF TYPE DECLARATION
244
7.2
NOTION OF TYPE
246
7.2.1
Basic Data Types
247
7.3
SET OPERATIONS AND STRUCTURED TYPES
248
7.3.1
Ordinal Types
248
7.3.2
Cartesian Product and Tuples
249
7.3.3
Finite Mapping and Arrays
249
7.3.4
Power Set and Set Constructs
250
7.3.5
Disjoint Union and Variant Record
250
7.3.6
Set Operations for Recursive Data Types
251
7.4
LIMITATIONS OF TYPE THEORY
252
7.5
POLYMORPHISM
254
7.5.1
Parametric Polymorphism
255
7.5.2
Inclusion Polymorphism and Subtypes
256
7.5.3
Overloading
257
7.5.4
Coercion
258
7.6
TYPE SYSTEM IN MODERN PROGRAMMING LANGUAGES
259
7.6.1
Universal Reference Type
260
7.7
TYPE EQUIVALENCE
261
7.7.1
Structure versus Name Equivalence
262
7.8
IMPLEMENTATION OF TYPES
263
7.8.1
Type Inference and Checking
266
7.8.2
Implementing Polymorphic Type Languages
267
7.9
CASE STUDY
268
7.9.1
Type System in Ada
268
7.9.2
Type System in
C++ 269
7.9.3
Type System in Modula-3
269
7.10
SUMMARY
269
xii ■ Contents
7.11
ASSESSMENT
272
7.11.1
Concepts and Definitions
272
7.11.2
Problem Solving
272
7.11.3
Extended Response
273
FURTHER READING
274
Chapter
8 ■
Concurrent Programming Paradigm
________________________275
8.1
CONCURRENT EXECUTION AND ABSTRACTIONS
276
8.1.1
Race Conditions
277
8.1.2
Threads and Dependencies
278
8
Л
.3
Synchronization and Mutual Exclusion
279
8.1.4
Sequential Consistency
281
8.2
PROGRAM DEPENDENCY AND AUTOMATIC
PARALLELIZATION
282
8.2.1
Control Dependency
283
8.2.2
Data Dependency
285
8.2.3
Program-Dependency Graph
288
8.2.4
Parallelization Techniques
288
8.2.5
Granularity and Execution Efficiency
291
8.2.6
Program Slicing
293
8.3
TASK AND DATA PARALLELISM
295
8.3.1
Task Parallelism
296
8.3.2
Data Parallelism
299
8.3.3
Integrating Task and Data Parallelism
300
8.4
DISTRIBUTED COMPUTING
301
8.4.1
Executing Remote Procedures
301
8.4.2
Parameter Passing in Remote Procedure Calls
302
8.5
COMMUNICATING SEQUENTIAL PROCESSES
303
8.5.1
CSP Algebra
304
8.5.2
Communicating Sequential Process Language
306
8.6
MEMORY MODELS FOR CONCURRENCY
307
8.6.1
Memory Model of
C++ 309
8.7
CONCURRENT PROGRAMMING CONSTRUCTS
309
8.7.1
Coroutines
309
8.7.2
Cobegin-Coend
310
Contents ■ xiii
8.7.3 Fork-and-Join 310
8.7.4 Monitors 311
8.8
CASE STUDY
313
8.8.1
Concurrent
Programming in
Ada
313
8.8.2
Concurrent
Programming in Java 314
8.8.3
Distributed
Computing in
Emerald
316
8.9
SUMMARY
316
8.10
ASSESSMENT
320
8.10.1
Concepts and Definitions
320
8.10.2
Problem Solving
320
8.10.3
Extended Response
321
FURTHER READING
322
Chapter
9 ■
Functional Programming Paradigm
325
9.1
EXPRESSIONS
327
9.2
EVALUATION OF
λ
-EXPRESSIONS
328
9.2.1
Applicative-Order versus Normal-Order Reductions
329
9.3
FPS—
FUNCTIONAL PROGRAMMING SYSTEMS
331
9.3.1
Kernel Functions
331
9.3.2
Functional-Forms for Constructing Complex Functions
333
9.3.3
Programming in
FPS
335
9.3.4
Comparing
λ
-Expressions
and
FPS
338
9.4
ABSTRACTIONS AND PROGRAMMING
338
9.4.1
Abstractions in Functional Programming Languages
338
9.4.2
Abstractions and Programming in the Lisp Family
340
9.4.3
Abstractions and Programming in Hope
343
9.4.4
Abstractions and Programming in Haskell
344
9.4.5
Abstractions and Functional Programming in
Scala
347
9.4.6
Abstractions and Functional Programming in Ruby
350
9.5
IMPLEMENTATION MODELS FOR FUNCTIONAL
LANGUAGES
352
9.5.1
SECD Machine and Eager Evaluation
352
9.5.2
Graph-Reduction Strategies
353
9.5.3
Implementing Lazy Evaluation
355
9.6
INTEGRATION WITH OTHER PROGRAMMING
PARADIGMS
357
9.6.1
Concurrency in Functional Languages
357
xiv ■ Contents
9.7
SUMMARY 358
9.8
ASSESSMENT 362
9.8.1
Concepts and Definitions
362
9.8.2
Problem Solving 362
9.8.3
Conceptual Type 363
FURTHER READING 364
Chapter
10 ■
Logic Programming Paradigm
____________________________365
10.1
LOGIC PROGRAMMING FUNDAMENTALS
366
10.1.1
Facts and Rules
366
10.1.2
Forward and Backward Reasoning Systems
368
10.1.3
Data Representation
368
10.1.4
Unification—Bidirectional Information Flow
369
10.1.5
Representing Logic Programs
372
10.1.6
Properties of Logic Programs
373
10.2
ABSTRACT IMPLEMENTATION MODEL
374
10.2.1
Query Reduction
374
10.2.2
Mapping Query Reduction to AND-OR Tree
376
10.2.3
Backtracking
377
10.2.4
Warren Abstract Machine
379
10.2.5
Program Analysis
380
10.3
PROGRAMMING USING PROLOG
380
10.3.1
Cuts
—
Programmer-Directed Efficiency
382
10.3.2
Programming with Sets
383
10.3.3
Nondeterministic Programming
384
10.3.4
Abstractions and Meta-Programming
385
10.3.5
Limitations of Prolog
389
10.4
EXTENDING LOGIC PROGRAMMING PARADIGM
389
10.4.1
Temporal Logic Programming
390
10.4.2
Constraint Logic Programming
390
10.4.3
Inductive Logic Programming
392
10.4.4
Higher-Order Logic Programming
393
10.5
INTEGRATION WITH OTHER PARADIGMS
394
10.5.1
Integration with Functional Programming
394
10.5.2
Integration with Object-Oriented
Programming
396
10.5.3
Concurrent Logic Programming
396
Contents ■ xv
10.6
SUMMARY
397
10.7
ASSESSMENT
399
10.7.1
Concepts and Definitions
399
10.7.2
Problem Solving
399
10.7.3
Extended Response
401
FURTHER READING
401
Chapter
11 ■
Object-Oriented Programming Paradigm
__________________403
11.1
CLASSES AND OBJECTS
405
11.1.1
Object
—
An Instance of a Class
406
11.2
CLASS-HIERARCHY AND INHERITANCE
408
11.2.1
Subclasses
408
11.2.2
Virtual Methods
409
11.2.3
Multiple-Inheritance
411
11.3
VISIBILITY AND INFORMATION EXCHANGE
412
11.3.1
Visibility of Member Entities
412
11.3.2
Encapsulation
413
11.3.3
Information Exchange
413
11.4
POLYMORPHISM AND TYPE CONVERSION
414
11.4.1
Parametric Polymorphism and Generic
Templates
414
11.4.2
Casting
415
11.4.3
Subclass versus Subtyping
416
11.5
CASESTUDIES
417
11.5.1
Abstractions and Programming in
C++ 417
11.5.2
Abstractions and Programming in Java
419
11.5.3
Abstractions and Programming in
Scala
420
11.5.4
Abstractions and Programming in Ruby
422
11.6
IMPLEMENTATION OF OBJECT-ORIENTED LANGUAGES
424
11.6.1
Storage Allocation and Deallocation
425
11.6.2
Implementing Casting
428
11.6.3
Implementing Multiple-Inheritance
429
11.6.4
Implementing Virtual Entities and Methods
429
11.6.5
Overhead Issues and Optimizations
431
11.6.6
Run-Time Behavior
431
xvi ■ Contents
11.7
DISTRIBUTED
OBJECT-ORIENTED MODELS 433
11.7.1
Distributed Objects in Emerald
433
11.7.2
Distributed Objects in Java
434
11.7.3
Remote Method Invocation
434
11.7.4
RMI-Based Programming
435
11.8
SUMMARY
436
11.9
ASSESSMENT
438
11.9.1
Concepts and Definitions
438
11.9.2
Problem-Solving
438
11.9.3
Extended Response
439
FURTHER READING
440
Chapter
12 ■
Web and Multimedia Programming Paradigms
____________441
12.1
CODE AND DATA MOBILITY
442
12.1.1
Issues in Mobile Computing
443
12.2
WEB-BASED PROGRAMMING
445
12.2.1
HTML
446
12.2.2
XML as Middleware Interface Language
448
12.2.3
Web Scripting
453
12.2.4
Applets
455
12.2.5
Security in Web Programming
457
12.3
VIRTUAL MACHINES AND RUN-TIME INTERFACE
458
12.3.1
Java Virtual Machine
459
12.3.2
Justin-Time Compilation
461
12.4
COMPONENTS OF MULTIMEDIA SYSTEMS
462
12.4.1
Representation and Transmission
463
12.4.2
Perceptual Distortion
465
12.4.3
Synchronization in Multimedia
466
12.5
MULTIMEDIA PROGRAMMING CONSTRUCTS
468
12.5.1
Synchronization Constructs
470
12.6
CASESTUDY
470
12.6.1
Abstractions and Programming in Alice
470
12.6.2
Abstractions and Programming in SMIL
472
12.6.3
Abstractions and Web Programming in Javascript
474
12.6.4
Abstractions and Web Programming in C#
475
Contents ■ xvii
12.7
SUMMARY
475
12.8
ASSESSMENT
479
12.8.1
Concepts and Definitions
479
12.8.2
Problem Solving
479
12.8.3
Extended Response
479
FURTHER READING
480
Chapter
13 ■
Other Programming Paradigms
483
13.1
EVENT-BASED PROGRAMMING
484
13.1.1
Event Model
485
13.1.2
Developing an Event-Based Program
486
13.2
AGENT-BASED PROGRAMMING
489
13.2.1
Components of an Agent-Based System
491
13.2.2
Agent Security
493
13.2.3
Fault Tolerance in Multi-Agent Systems
493
13.3
HIGH PRODUCTIVITY MASSIVE PARALLEL PROGRAMMING
494
13.3.1
Partitioned Global Address Space
495
13.3.2
Constructs for High-Productivity Computing
496
13.4
SYNCHRONOUS LANGUAGES
498
13.4.1
Synchronous Constructs in Estrel
499
13.5
SUMMARY
500
13.6
ASSESSMENT
503
13.6.1
Concepts and Definitions
503
13.6.2
Problem Solving
503
13.6.3
Extended Response
504
FURTHER READING
504
Chapter
14 ■
Scripting Languages
___________________________________507
14.1
COMPONENTS OF SCRIPTING LANGUAGES
509
14.1.1
Shell-Based Programming
509
14.1.2
Data-Driven Programming
510
14.1.3
Command Scripts
510
14.1.4
Text and String Processing
511
14.2
ABSTRACTIONS IN SCRIPTING LANGUAGES
511
14.2.1
Control and Data Abstractions
512
14.2.2
Shell Variables
512
xviii ■ Contents
14.2.3
Type Conversions
513
14.2.4
Regular Expressions and Pattern Matching
513
14.2.5
Programming Example
513
14.3
CASESTUDY
515
14.3.1
Abstractions and Programming in Perl
515
14.3.2
Abstractions in PHP
517
14.3.3
Abstractions and Programming in Python
518
14.3.4
Script Programming in Prolog
522
14.3.5
Script Programming in Ruby
524
14.3.6
Other Scripting Languages
526
14.4
SUMMARY
526
14.5
ASSESSMENT
528
14.5.1
Concepts and Definitions
528
14.5.2
Problem Solving
528
14.5.3
Extended Response
528
FURTHER READING
529
Chapter
15 ■
Conclusion and Future of Programming Languages
__________
15.1
EVOLUTION OF PROGRAMMING PARADIGMS AND
LANGUAGES
531
1 5.2
EVOLUTION OF IMPLEMENTATION MODELS AND
COMPILERS
536
15.3
CONSTRUCT DESIGN AND COMPREHENSION
538
15.4
FUTURE DEVELOPMENT OF PROGRAMMING LANGUAGES
538
FURTHER READING
540
APPENDIX I: Supported Paradigms in Languages,
541
APPENDIX II: Data Abstractions Summary,
543
APPENDIX III: Control Abstractions Summary,
545
APPENDIX IV: Websites for Languages,
547
APPENDIX V: Principle of Locality,
549
Contents ■ xix
APPENDIX
VI:
Virtual Memory
and Page-Faults,
551
APPENDIX
VII: Program
Correctness and Completeness,
553
APPENDIX VIII:
Complexity of Algorithms,
555
ADDITIONAL REFERENCES,
557
INDEX,
567
Computer Science
Using the different syntax of multiple programming languages, such as
C++,
Java, PHP, and Python, for the same abstraction often confuses those new to
the field. Introduction to Programming Languages separates programming
language concepts from the restraints of multiple language syntax by discussing
the concepts at an abstract level.
To make the book self-contained, the author introduces the necessary concepts
of data structures and discrete structures from the perspective of programming
language theory. The text covers classical topics, such as imperative, object-
oriented, logic, and functional programming, as well as newer topics, including
dependency analysis, communicating sequential processes, concurrent
programming constructs, web and multimedia programming, and models for
mobile computing. Along with problems and further reading in each chapter, the
book includes in-depth examples and case studies using various languages that
help you understand syntax in practical contexts.
Features
•
Explains the principles of programming language design and implementation
•
Introduces programming language concepts at an abstract level, freeing
them from the restraints of multiple language syntax
•
Illustrates the concepts using many examples from modern languages, such
as Java,
C++,
C#, Ada
2012,
Ruby, Perl, Python,
Scala,
and Haskell
•
Describes implementation models of various paradigms, including
imperative, functional, logic, and object-oriented programming
•
Covers up-to-date topics in
concurrent
programming, web-based
programming, distributed computing, and other areas highly
relevant In
today s computing world
•
Gives insight into low-leva implementation behavior
|
any_adam_object | 1 |
author | Bansal, Arvind Kumar |
author_GND | (DE-588)1051409020 |
author_facet | Bansal, Arvind Kumar |
author_role | aut |
author_sort | Bansal, Arvind Kumar |
author_variant | a k b ak akb |
building | Verbundindex |
bvnumber | BV041081362 |
classification_rvk | ST 230 |
classification_tum | DAT 350f |
ctrlnum | (OCoLC)882445502 (DE-599)BVBBV041081362 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01776nam a2200373 c 4500</leader><controlfield tag="001">BV041081362</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20230102 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">130611s2014 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781466565142</subfield><subfield code="9">978-1-4665-6514-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1466565144</subfield><subfield code="9">1-4665-6514-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)882445502</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV041081362</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-739</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 350f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Bansal, Arvind Kumar</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1051409020</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Introduction to programming languages</subfield><subfield code="c">Arvind Kumar Bansal</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boca Raton, Fla [u.a.]</subfield><subfield code="b">CRC Press, Taylor & Francis Group</subfield><subfield code="c">2014</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXV, 588 S.</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierparadigma</subfield><subfield code="0">(DE-588)4308224-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmiersprache</subfield><subfield code="0">(DE-588)4047409-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierparadigma</subfield><subfield code="0">(DE-588)4308224-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-026058144</subfield></datafield></record></collection> |
id | DE-604.BV041081362 |
illustrated | Illustrated |
indexdate | 2024-07-10T00:39:09Z |
institution | BVB |
isbn | 9781466565142 1466565144 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-026058144 |
oclc_num | 882445502 |
open_access_boolean | |
owner | DE-703 DE-91G DE-BY-TUM DE-83 DE-11 DE-739 |
owner_facet | DE-703 DE-91G DE-BY-TUM DE-83 DE-11 DE-739 |
physical | XXXV, 588 S. Illustrationen, Diagramme |
publishDate | 2014 |
publishDateSearch | 2014 |
publishDateSort | 2014 |
publisher | CRC Press, Taylor & Francis Group |
record_format | marc |
spelling | Bansal, Arvind Kumar Verfasser (DE-588)1051409020 aut Introduction to programming languages Arvind Kumar Bansal Boca Raton, Fla [u.a.] CRC Press, Taylor & Francis Group 2014 XXXV, 588 S. Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier Programmiersprache (DE-588)4047409-4 gnd rswk-swf Programmierparadigma (DE-588)4308224-5 gnd rswk-swf Programmiersprache (DE-588)4047409-4 s Programmierparadigma (DE-588)4308224-5 s DE-604 Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Klappentext Digitalisierung UB Bayreuth - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Bansal, Arvind Kumar Introduction to programming languages Programmiersprache (DE-588)4047409-4 gnd Programmierparadigma (DE-588)4308224-5 gnd |
subject_GND | (DE-588)4047409-4 (DE-588)4308224-5 |
title | Introduction to programming languages |
title_auth | Introduction to programming languages |
title_exact_search | Introduction to programming languages |
title_full | Introduction to programming languages Arvind Kumar Bansal |
title_fullStr | Introduction to programming languages Arvind Kumar Bansal |
title_full_unstemmed | Introduction to programming languages Arvind Kumar Bansal |
title_short | Introduction to programming languages |
title_sort | introduction to programming languages |
topic | Programmiersprache (DE-588)4047409-4 gnd Programmierparadigma (DE-588)4308224-5 gnd |
topic_facet | Programmiersprache Programmierparadigma |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026058144&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT bansalarvindkumar introductiontoprogramminglanguages |