Practical foundations for programming languages

"Syntactic Objects Programming languages are languages, a means of expressing computations in a form comprehensible to both people and machines. The syntax of a language specifies the means by which various sorts of phrases (expressions, commands, declarations, and so forth) may be combined to...

Full description

Saved in:
Bibliographic Details
Main Author: Harper, Robert
Corporate Author: ebrary, Inc
Format: Electronic eBook
Language:English
Published: Cambridge ; New York : Cambridge University Press, 2013.
Subjects:
Online Access:An electronic book accessible through the World Wide Web; click to view
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Machine 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.