000 | 03998nam a22005175i 4500 | ||
---|---|---|---|
001 | 978-3-030-59257-8 | ||
003 | DE-He213 | ||
005 | 20240423125304.0 | ||
007 | cr nn 008mamaa | ||
008 | 201117s2020 sz | s |||| 0|eng d | ||
020 |
_a9783030592578 _9978-3-030-59257-8 |
||
024 | 7 |
_a10.1007/978-3-030-59257-8 _2doi |
|
050 | 4 | _aQA75.5-76.95 | |
072 | 7 |
_aUYA _2bicssc |
|
072 | 7 |
_aCOM014000 _2bisacsh |
|
072 | 7 |
_aUYA _2thema |
|
082 | 0 | 4 |
_a004.0151 _223 |
100 | 1 |
_aJones, Cliff B. _eauthor. _4aut _4http://id.loc.gov/vocabulary/relators/aut |
|
245 | 1 | 0 |
_aUnderstanding Programming Languages _h[electronic resource] / _cby Cliff B. Jones. |
250 | _a1st ed. 2020. | ||
264 | 1 |
_aCham : _bSpringer International Publishing : _bImprint: Springer, _c2020. |
|
300 |
_aXI, 229 p. 42 illus., 17 illus. in color. _bonline resource. |
||
336 |
_atext _btxt _2rdacontent |
||
337 |
_acomputer _bc _2rdamedia |
||
338 |
_aonline resource _bcr _2rdacarrier |
||
347 |
_atext file _bPDF _2rda |
||
505 | 0 | _aProgramming Languages -- Delimiting a Language -- Operational Semantics -- Typing -- Block Structure -- Additional Issues in Sequential Languages -- Alternative Semantic Approaches -- Shared Variable Concurrency -- Concurrent OOLs -- Exceptional Ordering -- Conclusions -- App. A, Simple Language -- App. B, Typed Language -- App. C, Blocks Language -- App. D, COOL -- App. E, VDM Notation. | |
520 | _aThis book is about describing the meaning of programming languages. The author teaches the skill of writing semantic descriptions as an efficient way to understand the features of a language. While a compiler or an interpreter offers a form of formal description of a language, it is not something that can be used as a basis for reasoning about that language nor can it serve as a definition of a programming language itself since this must allow a range of implementations. By writing a formal semantics of a language a designer can yield a far shorter description and tease out, analyse and record design choices. Early in the book the author introduces a simple notation, a meta-language, used to record descriptions of the semantics of languages. In a practical approach, he considers dozens of issues that arise in current programming languages and the key techniques that must be mastered in order to write the required formal semantic descriptions. The book concludes with a discussion of the eight key challenges: delimiting a language (concrete representation), delimiting the abstract content of a language, recording semantics (deterministic languages), operational semantics (non-determinism), context dependency, modelling sharing, modelling concurrency, and modelling exits. The content is class-tested and suitable for final-year undergraduate and postgraduate courses. It is also suitable for any designer who wants to understand languages at a deep level. Most chapters offer projects, some of these quite advanced exercises that ask for complete descriptions of languages, and the book is supported throughout with pointers to further reading and resources. As a prerequisite the reader should know at least one imperative high-level language and have some knowledge of discrete mathematics notation for logic and set theory. | ||
650 | 0 | _aComputer science. | |
650 | 0 | _aProgramming languages (Electronic computers). | |
650 | 0 | _aSoftware engineering. | |
650 | 1 | 4 | _aTheory of Computation. |
650 | 2 | 4 | _aProgramming Language. |
650 | 2 | 4 | _aSoftware Engineering. |
710 | 2 | _aSpringerLink (Online service) | |
773 | 0 | _tSpringer Nature eBook | |
776 | 0 | 8 |
_iPrinted edition: _z9783030592561 |
776 | 0 | 8 |
_iPrinted edition: _z9783030592585 |
776 | 0 | 8 |
_iPrinted edition: _z9783030592592 |
856 | 4 | 0 | _uhttps://doi.org/10.1007/978-3-030-59257-8 |
912 | _aZDB-2-SCS | ||
912 | _aZDB-2-SXCS | ||
942 | _cSPRINGER | ||
999 |
_c176324 _d176324 |