Essentials of programming languages
著者
書誌事項
Essentials of programming languages
MIT Press , McGraw-Hill, c1992
- : MIT Press
- : McGraw-Hill
- : pbk
大学図書館所蔵 全43件
  青森
  岩手
  宮城
  秋田
  山形
  福島
  茨城
  栃木
  群馬
  埼玉
  千葉
  東京
  神奈川
  新潟
  富山
  石川
  福井
  山梨
  長野
  岐阜
  静岡
  愛知
  三重
  滋賀
  京都
  大阪
  兵庫
  奈良
  和歌山
  鳥取
  島根
  岡山
  広島
  山口
  徳島
  香川
  愛媛
  高知
  福岡
  佐賀
  長崎
  熊本
  大分
  宮崎
  鹿児島
  沖縄
  韓国
  中国
  タイ
  イギリス
  ドイツ
  スイス
  フランス
  ベルギー
  オランダ
  スウェーデン
  ノルウェー
  アメリカ
注記
Bibliographical references: p. [509]-516
Includes index
内容説明・目次
- 巻冊次
-
: MIT Press ISBN 9780262061452
内容説明
What really happens when a program runs? "Essentials of Programming Languages" teaches the fundamental concepts of programming languages through numerous short programs, or "interpreters" that actually implement the features of a language. Nearly 300 exercises using these programs provide a hands-on undertanding of programming principles that is hard, if not impossible, to achieve by formal study alone. In an approach that is uniquely suited to mastering a new level of programming structure, the authors derive a sequence of interpreters that begins with a high-level operational specification (close to formal semantics) and ends with what is effectively assembly language - a process involving programming transformation techniques that should be in the toolbox of every programmer. The first four chapters provide that foundation for an in-depth study of programming languages, including most of the features of Scheme, needed to run the language-processing programs of the book. The next four chapters form the core of the book, deriving a sequence of interpreters ranging from very high- to very low-level.
The authors then explore variations in programming language semantics, including various parameter-passing techniques for transforming interpreters that ultimately allow the interpreter to be implemented in any low-level language. They conclude by discussing scanners and parsers and the derivation of a compiler and virtual machine from an interpreter.
目次
- Part 1 Tools for symbolic programming: simple expressions
- data types
- procedures. Part 2 Induction, recursion and scope: inductively specified data
- recursively specified programs
- statis properties of variables. Part 3 Syntactic abstraction and data abstraction: local binding
- logical connectives
- branching
- records
- data abstraction
- from procedural to data structure representations. Part 4 Reduction rules and imperative programming: reasoning about procedures
- the Lambda calculus and Beta-conversion
- reduction strategies
- defining recursive procedures in the Lambda calculus
- sequencing and imperative programming
- variable assignment and sharing
- streams. Part 5 Interpreters: a simple interpreter
- conditional evaluation
- local binding
- procedures
- variable assignment
- recursion
- dynamic scope and dynamic assignment. Part 6 Parameter passing: adding arrays
- call-by-reference
- call-by-value-result and call-by-result
- expressed or denoted values? call-by-name and call-by-need
- optional and keyword arguments. Part 7 Object-oriented languages: objects and classes
- inheritance
- meta-classes. Part 8 Continuation-passing style: iterative control behaviour and proper tail recursion
- introduction to continuation-passing style
- tail form
- converting to continuation-passing style
- examples of the CPS transformation
- implementing the CPS transformation
- call chains. Part 9 Continuation-passing interpreters: data structure representations of continuations
- the continuation interpreter
- making continuations available to the programmer
- upward continuations and coroutines
- leaving and entering control contexts
- dynamic assignment revisited. Part 11 Imperative form and stack architecture: imperative form
- control stacks
- interpreter stack architecture
- stack allocation of continuations and environments. Part 12 Scanners and parsers: lexical scanning using finite automata
- simulating a scanning automation
- constructing a predictive parser
- recursive descent parsers
- table driven parsers. Part 12 Compiler derivation: deriving a compiler and machine from an interpreter
- register allocation
- obtaining more realistic object code
- compiling procedures. Appendices: record implementation
- abstract syntax
- character string syntax
- character string parser
- character string scanner
- a read-eval-print loop
- list structure syntax
- list structure parser
- scheme procedures used.
- 巻冊次
-
: pbk ISBN 9780262560672
内容説明
What really happens when a program runs? "Essentials of Programming Languages" teaches the fundamental concepts of programming languages through numerous short programs, or "interpreters" that actually implement the features of a language. Nearly 300 exercises using these programs provide a hands-on undertanding of programming principles that is hard, if not impossible, to achieve by formal study alone. In an approach that is uniquely suited to mastering a new level of programming structure, the authors derive a sequence of interpreters that begins with a high-level operational specification (close to formal semantics) and ends with what is effectively assembly language - a process involving programming transformation techniques that should be in the toolbox of every programmer. The first four chapters provide that foundation for an in-depth study of programming languages, including most of the features of Scheme, needed to run the language-processing programs of the book. The next four chapters form the core of the book, deriving a sequence of interpreters ranging from very high- to very low-level.
The authors then explore variations in programming language semantics, including various parameter-passing techniques for transforming interpreters that ultimately allow the interpreter to be implemented in any low-level language. They conclude by discussing scanners and parsers and the derivation of a compiler and virtual machine from an interpreter.
目次
- Part 1 Tools for symbolic programming: simple expressions
- data types
- procedures. Part 2 Induction, recursion and scope: inductively specified data
- recursively specified programs
- static properties of variables. Part Syntactic abstraction and data abstraction: local binding
- logical connectives
- branching
- records
- data abstraction
- from procedural to data structure representations. Part 4 Reduction rules and imperative programming: reasoning about procedures
- the Lambda calculus and b-conversion
- reduction strategies
- defining recursive procedures in the lambda calculus
- sequencing and imperative programming
- variable assignment and sharing
- streams. Part 5 Interpreters: a simple interpreter
- conditional evaluation
- local binding
- procedures
- variable assignment
- recursion
- dynamic scope and dynamic assignment. Part 6 Parameter passing: adding arrays
- call-by-reference
- call-by-value-result and cally-by-result
- expressed or denoted values?
- call-by-name and call-by-need
- optional and keyword arguments. Part 7 Object-oriented languages: objects and classes
- inheritance
- meta-classes. Part 8 Continuation-passing style: iterative control behaviour and proper tail recursion
- introduction to continuation-passing style
- tail form
- converting to continuation-passing style
- examples of the CPS transformation
- implementing the CPS transformation
- call chains. Part 9 Continuation-passing interpreters: data structure representations of continuations
- the continuation interpreter
- making continuations available to the programmer
- upward continuations and coroutines
- leaving and entering control contexts
- dynamic assignment revisited. Part 10 Imperative form and stack architecture: imperative form
- control stacks
- interpreter stack architecture
- stack allocation of continuations and environments. Part 11 Scanners and parsers: lexical scanning using finite automata
- simulating a scanning automaton
- constructing a predictive parser
- recursive descent parsers
- table-driven parsers. Part 12 Compiler derivation: deriving a compiler and machine from an interpreter
- register allocation
- obtaining more realistic object code
- compiling procedures. Appendices: record implementation
- abstract syntax
- character string syntax
- character string parser
- character string scanner
- a read-eval-print loop
- list structure syntax
- list structure parser
- scheme procedures used
「Nielsen BookData」 より