Programming languages: concepts and constructs
Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Reading, Mass. [u.a.]
Addison-Wesley
1996
|
Ausgabe: | 2. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Zusammenfassung: | Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk The charm of functional languages is illustrated by programs in Standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog . Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers will be exposed to the major programming paradigms |
Beschreibung: | XV, 640 S. graph. Darst. |
ISBN: | 0201590654 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV010597867 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 960205s1996 d||| |||| 00||| eng d | ||
020 | |a 0201590654 |9 0-201-59065-4 | ||
035 | |a (OCoLC)832638719 | ||
035 | |a (DE-599)BVBBV010597867 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-91 |a DE-91G |a DE-706 |a DE-634 | ||
050 | 0 | |a QA76.7 | |
082 | 0 | |a 005.13 |2 20 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
084 | |a DAT 350f |2 stub | ||
100 | 1 | |a Sethi, Ravi |e Verfasser |4 aut | |
245 | 1 | 0 | |a Programming languages |b concepts and constructs |c Ravi Sethi |
250 | |a 2. ed. | ||
264 | 1 | |a Reading, Mass. [u.a.] |b Addison-Wesley |c 1996 | |
300 | |a XV, 640 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
520 | 3 | |a Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk | |
520 | |a The charm of functional languages is illustrated by programs in Standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog | ||
520 | |a . Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers will be exposed to the major programming paradigms | ||
650 | 7 | |a Computacao (metodologia e tecnicas) |2 larpcal | |
650 | 7 | |a Langages de programmation |2 ram | |
650 | 7 | |a Ordinateurs - Programmation |2 ram | |
650 | 7 | |a Programmation orientée objets (informatique) |2 ram | |
650 | 7 | |a Programmeertalen |2 gtt | |
650 | 4 | |a Programming languages (Electronic computers) | |
650 | 0 | 7 | |a Programmiersprache |0 (DE-588)4047409-4 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Programmiersprache |0 (DE-588)4047409-4 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m HEBIS Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007067885&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-007067885 |
Datensatz im Suchindex
_version_ | 1804125069682671616 |
---|---|
adam_text | SECOND EDITION
PROGRAMMING
LANGUAGES
Concepts and Constructs
RAVI SETHI
AT amp;T Bell Laboratories
Murray Hill, New Jersey
• •
ADDISON-WESLEY PUBLISHING COMPANY
Reading, Massachusetts • Menlo Park, California • New York
Don Mills, Ontario • Wokingham, England • Amsterdam • Bonn
Sydney • Singapore • Tokyo • Madrid • San Juan • Milan • Paris
Contents
I INTRODUCTION 1
1 The Role of Programming Languages 3
1 1 Toward Higher-Level Languages 4
1 2 Problems of Scale 8
1 3 Programming Paradigms 11
1 4 Language Implementation: Bridging the Gap 18
EXERCISES 21
BIBLIOGRAPHIC NOTES 23
2 Language Description: Syntactic Structure 25
2 1 Expression Notations 28
2 2 Abstract Syntax Trees 31
2 3 Lexical Syntax 33
2 4 Context-Free Grammars 35
2 5 Grammars for Expressions 41
2 6 Variants of Grammars 46
EXERCISES 49
BIBLIOGRAPHIC NOTES 52
II IMPERATIVE PROGRAMMING 55
3 Statements: Structured Programming 59
3 1 The Need for Structured Programming 59
3 2 Syntax-Directed Control Flow 63
3 3 Design Considerations: Syntax 72
3 4 Handling Special Cases in Loops 77
3 5 Programming with Invariants 80
xi
Contents
3 6 Proof Rules for Partial Correctness 86
3 7 Control flow in C 90
EXERCISES 94
BIBLIOGRAPHIC NOTES 99
4 Types: Data Representation 101
4 1 The Role of Types 102
4 2 Basic Types 107
4 3 Arrays: Sequences of Elements 111
4 4 Records: Named Fields 117
4 5 Unions and Variant Records 120
4 6 Sets 123
4 7 Pointers: Efficiency and Dynamic Allocation 125
4 8 Two String Tables 133
4 9 Types and Error Checking 136
EXERCISES 143
BIBLIOGRAPHIC NOTES 146
5 Procedure Activations 147
5 1 Introduction to Procedures 148
5 2 Parameter-Passing Methods 155
5 3 Scope Rules for Names 160
5 4 Nested Scopes in the Source Text 166
5 5 Activation Records 172
5 6 Lexical Scope: Procedures as in C 181
5 7 Lexical Scope: Nested Procedures and Pascal 190
EXERCISES 198
BIBLIOGRAPHIC NOTES 202
III OBJECT-ORIENTED PROGRAMMING 205
6 Groupings of Data and Operations 209
o
6 1 Constructs for Program Structuring 210
6 2 Information Hiding 217
6 3 Program Design with Modules 220
6 4 Modules and Defined Types 229
6 5 Class Declarations in Ct+ 232
6 6 Dynamic Allocation in C++ 238
Contents xiii
6 7 Templates: Parameterized Types 244
6 8 Implementation of Objects in C++ 245
EXERCISES 248
BIBLIOGRAPHIC NOTES 251
7 Object-Oriented Programming 253
7 1 What is an Object? 253
7 2 Object-Oriented Thinking 256
7 3 Inheritance 260
7 4 Object-Oriented Programming in C++ 267
7 5 An Extended C++ Example 274
7 6 Derived Classes and Information Hiding 281
7 7 Objects in Smalltalk 285
7 8 Smalltalk Objects have a Self 291
EXERCISES 294
BIBLIOGRAPHIC NOTES 299
IV FUNCTIONAL PROGRAMMING 301
8 Elements of Functional Programming 305
81A Little Language of Expressions 306
8 2 Types: Values and Operations 313
8 3 Function Declarations 318
8 4 Approaches to Expression Evaluation 321
8 5 Lexical Scope 327
8 6 Type Checking 331
EXERCISES 335
BIBLIOGRAPHIC NOTES 339
9 Functional Programming in a Typed Language 341
„ 9 1 Exploring a List 342
9 2 Function Declaration by Cases 346
9 3 Functions as First-Class Values 351
9 4 ML: Implicit Types 357
9 5 Data Types 360
9 6 Exception Handling in ML 367
Contents
9 7 Little Quilt in Standard ML 369
EXERCISES 380
BIBLIOGRAPHIC NOTES 383
10 Functional Programming with Lists 385
10 1 Scheme, a Dialect of Lisp 386
10 2 The Structure of Lists 392
10 3 List Manipulation 396
10 4 A Motivating Example: Differentiation 404
10 5 Simplification of Expressions 409
10 6 Storage Allocation for Lists 413
EXERCISES 417
BIBLIOGRAPHIC NOTES 421
V OTHER PARADIGMS 423
11 Logic Programming 425
11 1 Computing with Relations 426
11 2 Introduction to Prolog 430
11 3 Data Structures in Prolog 438
11 4 Programming Techniques 442
11 5 Control in Prolog 450
11 6 Cuts 461
EXERCISES 470
BIBLIOGRAPHIC NOTES 472
12 An Introduction to Concurrent Programming 475
12 1 Parallelism in Hardware 476
12 2 Streams: Implicit Synchronization 478
12 3 Concurrency as Interleaving 482
12 4 Liveness Properties 485
12 5 Safe Access to Shared Data 489
12 6 Concurrency in Ada 491
12 7 Synchronized Access to Shared Variables 498
EXERCISES 507
BIBLIOGRAPHIC NOTES 510
i Contents xv
VI LANGUAGE DESCRIPTION 513
13 Semantic Methods 515
13 1 Synthesized Attributes 517
13 2 Attribute Grammars 520
13 3 Natural Semantics 523
13 4 Denotational Semantics 529
13 5 A Calculator in Scheme 530
13 6 Lexically Scoped Lambda Expressions 532
13 7 An Interpreter 535
13 8 An Extension: Recursive Functions 542
EXERCISES 545
BIBLIOGRAPHIC NOTES 546
14 Static Types and the Lambda Calculus 547
14 1 Equality of Pure Lambda Terms 549
14 2 Substitution Revisited 554
14 3 Computation with Pure Lambda Terms 556
14 4 Programming Constructs as Lambda-Terms 561
14 5 The Typed Lambda Calculus 566
14 6 Polymorphic Types 569
EXERCISES 576
BIBLIOGRAPHIC NOTES 577
15 A Look at Some Languages 579
15 1 Pascal: A Teaching Language 579
15 2 C: Systems Programming 583
15 3 C++: A Range of Programm
15 4 Smalltalk, the Language £
15 5 Standard ML 598
15 6 Scheme, a Dialect of Lisp
15 7 Prolog 607
Bibliography ^can be
Credits «re algorithm is
xpression can
lndex
Xs for evaluating the
|
any_adam_object | 1 |
author | Sethi, Ravi |
author_facet | Sethi, Ravi |
author_role | aut |
author_sort | Sethi, Ravi |
author_variant | r s rs |
building | Verbundindex |
bvnumber | BV010597867 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.7 |
callnumber-search | QA76.7 |
callnumber-sort | QA 276.7 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 ST 240 |
classification_tum | DAT 350f |
ctrlnum | (OCoLC)832638719 (DE-599)BVBBV010597867 |
dewey-full | 005.13 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13 |
dewey-search | 005.13 |
dewey-sort | 15.13 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 2. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02507nam a2200481 c 4500</leader><controlfield tag="001">BV010597867</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">960205s1996 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0201590654</subfield><subfield code="9">0-201-59065-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)832638719</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV010597867</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-91</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-634</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.7</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13</subfield><subfield code="2">20</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">ST 240</subfield><subfield code="0">(DE-625)143625:</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">Sethi, Ravi</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming languages</subfield><subfield code="b">concepts and constructs</subfield><subfield code="c">Ravi Sethi</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Reading, Mass. [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">1996</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XV, 640 S.</subfield><subfield code="b">graph. Darst.</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="520" ind1="3" ind2=" "><subfield code="a">Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">The charm of functional languages is illustrated by programs in Standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">. Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers will be exposed to the major programming paradigms</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computacao (metodologia e tecnicas)</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Langages de programmation</subfield><subfield code="2">ram</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Ordinateurs - Programmation</subfield><subfield code="2">ram</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmation orientée objets (informatique)</subfield><subfield code="2">ram</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmeertalen</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Programming languages (Electronic computers)</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="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=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HEBIS Datenaustausch</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=007067885&sequence=000002&line_number=0001&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-007067885</subfield></datafield></record></collection> |
id | DE-604.BV010597867 |
illustrated | Illustrated |
indexdate | 2024-07-09T17:55:42Z |
institution | BVB |
isbn | 0201590654 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-007067885 |
oclc_num | 832638719 |
open_access_boolean | |
owner | DE-91 DE-BY-TUM DE-91G DE-BY-TUM DE-706 DE-634 |
owner_facet | DE-91 DE-BY-TUM DE-91G DE-BY-TUM DE-706 DE-634 |
physical | XV, 640 S. graph. Darst. |
publishDate | 1996 |
publishDateSearch | 1996 |
publishDateSort | 1996 |
publisher | Addison-Wesley |
record_format | marc |
spelling | Sethi, Ravi Verfasser aut Programming languages concepts and constructs Ravi Sethi 2. ed. Reading, Mass. [u.a.] Addison-Wesley 1996 XV, 640 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Programming Languages: Concepts and Constructs, Second Edition retains the "character" of the original, emphasizing concepts and how they work together. This classic book has been thoroughly revised to provide readable coverage of the major programming paradigms. Dr. Sethi's treatment of the core concepts of imperative programming in languages like Pascal and C flows smoothly into object-oriented programming in C++ and Smalltalk The charm of functional languages is illustrated by programs in Standard ML and the Scheme dialect of Lisp. Logic programming is introduced using Prolog . Novices, who have been introduced to programming in some language, will learn from this book how related concepts work together while designers and implementers will be exposed to the major programming paradigms Computacao (metodologia e tecnicas) larpcal Langages de programmation ram Ordinateurs - Programmation ram Programmation orientée objets (informatique) ram Programmeertalen gtt Programming languages (Electronic computers) Programmiersprache (DE-588)4047409-4 gnd rswk-swf Programmiersprache (DE-588)4047409-4 s DE-604 HEBIS Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007067885&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Sethi, Ravi Programming languages concepts and constructs Computacao (metodologia e tecnicas) larpcal Langages de programmation ram Ordinateurs - Programmation ram Programmation orientée objets (informatique) ram Programmeertalen gtt Programming languages (Electronic computers) Programmiersprache (DE-588)4047409-4 gnd |
subject_GND | (DE-588)4047409-4 |
title | Programming languages concepts and constructs |
title_auth | Programming languages concepts and constructs |
title_exact_search | Programming languages concepts and constructs |
title_full | Programming languages concepts and constructs Ravi Sethi |
title_fullStr | Programming languages concepts and constructs Ravi Sethi |
title_full_unstemmed | Programming languages concepts and constructs Ravi Sethi |
title_short | Programming languages |
title_sort | programming languages concepts and constructs |
title_sub | concepts and constructs |
topic | Computacao (metodologia e tecnicas) larpcal Langages de programmation ram Ordinateurs - Programmation ram Programmation orientée objets (informatique) ram Programmeertalen gtt Programming languages (Electronic computers) Programmiersprache (DE-588)4047409-4 gnd |
topic_facet | Computacao (metodologia e tecnicas) Langages de programmation Ordinateurs - Programmation Programmation orientée objets (informatique) Programmeertalen Programming languages (Electronic computers) Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=007067885&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT sethiravi programminglanguagesconceptsandconstructs |