LEADER 04540nam 22005652 450 001 9910822121603321 005 20151022152958.0 010 $a1-107-23730-0 010 $a1-107-25486-8 010 $a1-107-30175-0 010 $a1-107-30684-1 010 $a1-107-30904-2 010 $a1-107-31459-3 010 $a1-139-34213-4 035 $a(CKB)2670000000329908 035 $a(EBL)1113098 035 $a(OCoLC)827944725 035 $a(UkCbUP)CR9781139342131 035 $a(MiAaPQ)EBC1113098 035 $a(Au-PeEL)EBL1113098 035 $a(CaPaEBR)ebr10656308 035 $a(OCoLC)828140158 035 $z(PPN)261346873 035 $a(PPN)16907689X 035 $a(EXLCZ)992670000000329908 100 $a20120224d2013|||| uy| 0 101 0 $aeng 135 $aur||||||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aPractical foundations for programming languages /$fRobert Harper$b[electronic resource] 210 1$aCambridge :$cCambridge University Press,$d2013. 215 $a1 online resource (xviii, 471 pages) $cdigital, PDF file(s) 300 $aTitle from publisher's bibliographic system (viewed on 05 Oct 2015). 311 $a1-107-02957-0 320 $aIncludes bibliographical references and index. 327 $aMachine generated contents note: Part I. Judgments and Rules: 1. Inductive definitions; 2. Hypothetical judgments; 3. Syntactic objects; 4. Generic judgments; Part II. Levels of Syntax: 5. Concrete syntax; 6. Abstract syntax; Part III. Statics and Dynamics: 7. Statics; 8. Dynamics; 9. Type safety; 10. Evaluation dynamics; Part IV. Function Types: 11. Function definitions and values; 12. Godel's system T; 13. Plotkin's PCF; Part V. Finite Data Types: 14. Product types; 15. Sum patterns; 16. Pattern matching; 17. Generic programming; Part VI. Infinite Data Types: 18. Inductive and co-inductive types; 19. Recursive types; Part VII. Dynamic Types: 20. The untyped 1-calculus; 21. Dynamic typing; 22. Hybrid typing; Part VIII. Variable Types: 23. Girard's system F; 24. Abstract types; 25. Constructors and kinds; 26. Indexed families of types; Part IX. Subtyping: 27. Subtyping; 28. Singleton and dependent kinds; Part X. Classes and Methods: 29. Dynamic dispatch; 30. Inheritance; Part XI. Control Effects: 31. Control stacks; 32. Exceptions; 33. Continuations; Part XII. Types and Propositions: 34. Constructive logic; 35. Classical logic; Part XIII. Symbols: 36. Symbols; 37. Fluid binding; 38. Dynamic classification; Part XIV. Storage Effects: 39. Modernized algol; 40. Mutable data structures; Part XV. Laziness: 41. Lazy evaluation; 42. Polarization; Part XVI. Parallelism: 43. Nested parallelism; 44. Futures and speculation; Part XVII. Concurrency: 45. Process calculus; 46. Current algol; 47. Distributed algol; Part XVIII. Modularity: 48. Separate compilation and linking; 49. Basic modules; 50. Parameterized modules; Part XIX. Equivalence: 51. Equational reasoning for T; 52. Equational reasoning for PCF; 53. Parametricity. 330 $aTypes are the central organizing principle of the theory of programming languages. In this innovative book, Professor Robert Harper offers a fresh perspective on the fundamentals of these languages through the use of type theory. Whereas most textbooks on the subject emphasize taxonomy, Harper instead emphasizes genetics, examining the building blocks from which all programming languages are constructed. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design - the absence of ill-defined programs - follows naturally. Professor Harper's presentation is simultaneously rigorous and intuitive, relying on elementary mathematics. The framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation. The result is a lucid introduction to programming theory that is both accessible and practical. 606 $aProgramming languages (Electronic computers) 615 0$aProgramming languages (Electronic computers) 676 $a005.13 686 $aCOM051010$2bisacsh 700 $aHarper$b Robert$f1957-$01703219 801 0$bUkCbUP 801 1$bUkCbUP 906 $aBOOK 912 $a9910822121603321 996 $aPractical foundations for programming languages$94088262 997 $aUNINA