Concepts, Techniques, and Models of Computer ProgrammingThis innovative text presents computer programming as a unified discipline in a way that is both practical and scientifically sound. The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together. After an introduction to programming concepts, the book presents both wellknown and lesserknown computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, messagepassing concurrency, explicit state, objectoriented programming, sharedstate concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language  a simple core language that consists of a small number of programmersignificant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment. 
What people are saying  Write a review
User ratings
5 stars 
 
4 stars 
 
3 stars 
 
2 stars 
 
1 star 

Review: Concepts, Techniques, and Models of Computer Programming
User Review  Xavier Shay  GoodreadsTook a while, but I finally finished this. Plenty of good concepts in here, starting with dataflow variables (I didn't know the concepts) and building all the way up to distributed systems. Quite ... Read full review
Review: Concepts, Techniques, and Models of Computer Programming
User Review  Arkadiusz Holko  GoodreadsI'd read and completed most of the exercises from the Structure and Interpretation of Computer Programs (SICP) a couple of months ago. Then I've stumbled on reviews saying that this book is a logical ... Read full review
Contents
II  xxix 
III  1 
V  2 
VII  4 
VIII  7 
IX  9 
X  10 
XI  11 
LXXXI  518 
LXXXII  537 
LXXXIII  545 
LXXXIV  551 
LXXXV  556 
LXXXVI  567 
LXXXVII  569 
LXXXVIII  573 
XII  13 
XIII  14 
XIV  15 
XV  16 
XVI  17 
XVII  18 
XVIII  20 
XIX  21 
XX  22 
XXI  23 
XXII  27 
XXIII  29 
XXIV  30 
XXV  42 
XXVI  49 
XXVII  56 
XXVIII  72 
XXIX  79 
XXX  90 
XXXI  96 
XXXII  107 
XXXIII  111 
XXXIV  114 
XXXV  118 
XXXVI  124 
XXXVII  127 
XXXVIII  166 
XXXIX  177 
XL  195 
XLI  210 
XLII  218 
XLIII  230 
XLIV  233 
XLV  235 
XLVI  246 
XLVII  256 
XLVIII  272 
XLIX  278 
L  304 
LI  308 
LII  313 
LIII  326 
LIV  337 
LV  338 
LVI  345 
LVII  347 
LVIII  350 
LIX  353 
LX  362 
LXI  365 
LXII  377 
LXIII  386 
LXIV  394 
LXV  399 
LXVI  405 
LXVII  408 
LXVIII  410 
LXIX  413 
LXX  419 
LXXI  435 
LXXII  440 
LXXIII  450 
LXXIV  463 
LXXV  479 
LXXVI  482 
LXXVII  489 
LXXVIII  491 
LXXIX  492 
LXXX  502 
XC  582 
XCI  592 
XCII  600 
XCIII  615 
XCIV  618 
XCV  621 
XCVI  623 
XCVII  627 
XCVIII  631 
XCIX  641 
C  650 
CI  654 
CII  660 
CIII  671 
CIV  677 
CV  679 
CVI  681 
CVII  682 
CVIII  689 
CIX  690 
CX  703 
CXII  707 
CXIII  710 
CXIV  712 
CXV  714 
CXVI  720 
CXVII  723 
CXVIII  724 
CXIX  732 
CXX  739 
CXXI  743 
CXXII  745 
CXXIII  746 
CXXIV  749 
CXXV  750 
CXXVI  755 
CXXVII  758 
CXXVIII  762 
CXXIX  772 
CXXX  774 
CXXXI  777 
CXXXII  779 
CXXXIII  780 
CXXXIV  804 
CXXXV  806 
CXXXVI  808 
CXXXVIII  809 
CXXXIX  813 
CXL  815 
CXLII  817 
CXLIII  819 
CXLV  824 
CXLVI  825 
CXLVII  828 
CXLIX  830 
CL  831 
CLI  833 
CLII  834 
CLIV  836 
CLVI  839 
CLVIII  843 
CLIX  844 
CLX  845 
CLXI  846 
CLXII  849 
CLXIII  850 
853  
863  