skip to main content
Skip header Section
Basic category theory for computer scientistsAugust 1991
Publisher:
  • MIT Press
  • 55 Hayward St.
  • Cambridge
  • MA
  • United States
ISBN:978-0-262-66071-6
Published:01 August 1991
Pages:
100
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. Choudhary N, Tiwari S and Singh S (2024). On compositions of (L-fuzzy) automata, Fuzzy Sets and Systems, 475:C, Online publication date: 15-Jan-2024.
  2. Singh S, Tiwari S and Mahato S (2023). On L-fuzzy automata, coalgebras and dialgebras, Fuzzy Sets and Systems, 460:C, (143-185), Online publication date: 30-May-2023.
  3. ACM
    Altoyan N and Batory D (2022). On Proving the Correctness of Refactoring Class Diagrams of MDE Metamodels, ACM Transactions on Software Engineering and Methodology, 32:2, (1-42), Online publication date: 30-Apr-2023.
  4. ACM
    Bach Poulsen C and van der Rest C (2023). Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Effects, Proceedings of the ACM on Programming Languages, 7:POPL, (1801-1831), Online publication date: 9-Jan-2023.
  5. ACM
    Bakirtzis G, Genovese F and Fleming C (2022). Yoneda Hacking: The Algebra of Attacker Actions, ACM Transactions on Cyber-Physical Systems, 6:3, (1-27), Online publication date: 31-Jul-2022.
  6. Singh S and Tiwari S (2022). On unification of categories of fuzzy automata as Qua category, Soft Computing - A Fusion of Foundations, Methodologies and Applications, 26:4, (1509-1529), Online publication date: 1-Feb-2022.
  7. Singh S and Tiwari S (2021). On the category of L-fuzzy automata, coalgebras and dialgebras, Fuzzy Sets and Systems, 420:C, (1-28), Online publication date: 15-Sep-2021.
  8. ACM
    Abramsky S and Marsden D Comonadic semantics for guarded fragments Proceedings of the 36th Annual ACM/IEEE Symposium on Logic in Computer Science, (1-13)
  9. Healy M and Caudell T (2020). Episodic memory, Neural Networks, 120:C, (40-57), Online publication date: 1-Dec-2019.
  10. ACM
    Pamparà G and Engelbrecht A Evolutionary and swarm-intelligence algorithms through monadic composition Proceedings of the Genetic and Evolutionary Computation Conference Companion, (1382-1390)
  11. ACM
    Algehed M A Perspective on the Dependency Core Calculus Proceedings of the 13th Workshop on Programming Languages and Analysis for Security, (24-28)
  12. Schiendorfer A, Knapp A, Anders G and Reif W (2018). MiniBrass, Constraints, 23:4, (403-450), Online publication date: 1-Oct-2018.
  13. ACM
    Gibbons J, Henglein F, Hinze R and Wu N (2018). Relational algebra by way of adjunctions, Proceedings of the ACM on Programming Languages, 2:ICFP, (1-28), Online publication date: 30-Jul-2018.
  14. ACM
    Johnson M and Rosebrugh R Cospans and symmetric lenses Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming, (21-29)
  15. ACM
    AbdelGawad M Towards a Java Subtyping Operad Proceedings of the 19th Workshop on Formal Techniques for Java-like Programs, (1-6)
  16. Batory D and Azanza M (2017). Teaching model-driven engineering from a relational database perspective, Software and Systems Modeling (SoSyM), 16:2, (443-467), Online publication date: 1-May-2017.
  17. Chiriźăź C, Fiadeiro J and Orejas F Many-Valued Institutions for Constraint Specification Proceedings of the 19th International Conference on Fundamental Approaches to Software Engineering - Volume 9633, (359-376)
  18. Tiwari S and Gautam V (2016). On a category of fuzzy automata with relations, Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology, 30:6, (3301-3309), Online publication date: 1-Jan-2016.
  19. Tiwari S, Yadav V and Dubey M (2016). Minimal realization for fuzzy behaviour, Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology, 30:2, (1057-1065), Online publication date: 1-Jan-2016.
  20. ACM
    Batory D A theory of modularity for automated software development (keynote) Companion Proceedings of the 14th International Conference on Modularity, (1-10)
  21. Guan X (2015). Two Cartesian closed categories of information algebras, Journal of Computer and System Sciences, 81:2, (376-382), Online publication date: 1-Mar-2015.
  22. ACM
    Bonelli N, Giordano S, Procissi G and Abeni L A purely functional approach to packet processing Proceedings of the tenth ACM/IEEE symposium on Architectures for networking and communications systems, (219-230)
  23. ACM
    Zhu M, Grogono P, Ormandjieva O and Kamthan P Using Category Theory and Data Flow Analysis for Modeling and Verifying Properties of Communications in the Process-Oriented Language Erasmus Proceedings of the 2014 International C* Conference on Computer Science & Software Engineering, (1-4)
  24. Bach Poulsen C and Mosses P Deriving Pretty-Big-Step Semantics from Small-Step Semantics Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410, (270-289)
  25. ACM
    Erwig M, Walkingshaw E and Chen S An abstract representation of variational graphs Proceedings of the 5th International Workshop on Feature-Oriented Software Development, (25-32)
  26. Batory D, Latimer E and Azanza M Teaching Model Driven Engineering from a Relational Database Perspective Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems - Volume 8107, (121-137)
  27. ACM
    Riché T, Gonçalves R, Marker B and Batory D (2012). Pushouts in software architecture design, ACM SIGPLAN Notices, 48:3, (84-92), Online publication date: 10-Apr-2013.
  28. ACM
    Riché T, Gonçalves R, Marker B and Batory D Pushouts in software architecture design Proceedings of the 11th International Conference on Generative Programming and Component Engineering, (84-92)
  29. Marchand J, Combemale B and Baudry B A categorical model of model merging and weaving Proceedings of the 4th International Workshop on Modeling in Software Engineering, (70-76)
  30. Jurack S and Taentzer G (2012). Transformation of Typed Composite Graphs with Inheritance and Containment Structures, Fundamenta Informaticae, 118:1-2, (97-134), Online publication date: 1-Jan-2012.
  31. Heindel T (2012). Adhesivity with Partial Maps instead of Spans, Fundamenta Informaticae, 118:1-2, (1-33), Online publication date: 1-Jan-2012.
  32. Heindel T Hereditary pushouts reconsidered Proceedings of the 5th international conference on Graph transformations, (250-265)
  33. Castro P, Aguirre N, Pombo C and Maibaum T Towards managing dynamic reconfiguration of software systems in a categorical setting Proceedings of the 7th International colloquium conference on Theoretical aspects of computing, (306-321)
  34. Hinze R Generic programming with adjunctions Proceedings of the 2010 international spring school conference on Generic and Indexed Programming, (47-129)
  35. Arkoudas K and Bringsjord S (2009). Vivid, Artificial Intelligence, 173:15, (1367-1405), Online publication date: 1-Oct-2009.
  36. Andras P Modeling living systems Proceedings of the 10th European conference on Advances in artificial life: Darwin meets von Neumann - Volume Part II, (208-215)
  37. Healy M, Olinger R, Young R, Taylor S, Caudell T and Larson K (2009). Applying category theory to improve the performance of a neural architecture, Neurocomputing, 72:13-15, (3158-3173), Online publication date: 1-Aug-2009.
  38. Schreckling D and Dini P Distributed online evolution Proceedings of the Eleventh conference on Congress on Evolutionary Computation, (1430-1439)
  39. Heath L and Sioson A (2009). Multimodal Networks, IEEE/ACM Transactions on Computational Biology and Bioinformatics, 6:2, (321-332), Online publication date: 1-Apr-2009.
  40. Batory D A Modeling Language for Program Design and Synthesis Advances in Software Engineering, (39-58)
  41. ACM
    Batory D Using modern mathematics as an FOSD modeling language Proceedings of the 7th international conference on Generative programming and component engineering, (35-44)
  42. ACM
    Kim C, Kästner C and Batory D On the modularity of feature interactions Proceedings of the 7th international conference on Generative programming and component engineering, (23-34)
  43. Johnson M and Rosebrugh R (2007). Fibrations and universal view updatability, Theoretical Computer Science, 388:1-3, (109-129), Online publication date: 1-Dec-2007.
  44. Chu D and Ho W (2007). Computational Realizations of Living Systems, Artificial Life, 13:4, (369-381), Online publication date: 1-Oct-2007.
  45. ACM
    Uzuncaova E, Garcia D, Khurshid S and Batory D A specification-based approach to testing software product lines Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (525-528)
  46. ACM
    Uzuncaova E, Garcia D, Khurshid S and Batory D A specification-based approach to testing software product lines The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers, (525-528)
  47. Zheng Y, Shi H and Xue J From Mathematics to Software Engineering Proceedings of the 7th international conference on Computational Science, Part III: ICCS 2007, (469-476)
  48. Trujillo S, Batory D and Diaz O Feature Oriented Model Driven Development Proceedings of the 29th international conference on Software Engineering, (44-53)
  49. Batory D Program refactoring, program synthesis, and model-driven development Proceedings of the 16th international conference on Compiler construction, (156-171)
  50. ACM
    Schorlemmer M and Kalfoglou Y Progressive ontology alignment for meaning coordination Proceedings of the fourth international joint conference on Autonomous agents and multiagent systems, (737-744)
  51. Goguen J What is a concept? Proceedings of the 13th international conference on Conceptual Structures: common Semantics for Sharing Knowledge, (52-77)
  52. Kodituwakku S and Bertok P Pattern categories Proceedings of the 2002 conference on Pattern languages of programs - Volume 13, (63-73)
  53. Pfalzgraf J (2002). Modeling Connectionist Network Structures, Annals of Mathematics and Artificial Intelligence, 36:3, (279-301), Online publication date: 25-Nov-2002.
  54. ACM
    PašaliΕ E, Taha W and Sheard T Tagless staged interpreters for typed languages Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, (218-229)
  55. ACM
    PašaliΕ E, Taha W and Sheard T (2002). Tagless staged interpreters for typed languages, ACM SIGPLAN Notices, 37:9, (218-229), Online publication date: 17-Sep-2002.
  56. Engelfriet J and Treur J (2002). Linear, Branching Time and Joint ClosureSemantics for Temporal Logic, Journal of Logic, Language and Information, 11:4, (389-425), Online publication date: 1-Sep-2002.
  57. Martin W, White P and Taylor F (2002). Creating High Confidence in a Separation Kernel, Automated Software Engineering, 9:3, (263-284), Online publication date: 1-Aug-2002.
  58. Gibbons J Calculating functional programs Algebraic and coalgebraic methods in the mathematics of program construction, (149-201)
  59. ACM
    Wendorff P A formal approach to the assessment and improvement of terminological models used in information systems engineering Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, (83-87)
  60. ACM
    Wendorff P (2001). A formal approach to the assessment and improvement of terminological models used in information systems engineering, ACM SIGSOFT Software Engineering Notes, 26:5, (83-87), Online publication date: 1-Sep-2001.
  61. Williamson K, Healy M and Barker R (2001). Industrial Applications of Software Synthesis via Category Theory—Case Studies Using Specware, Automated Software Engineering, 8:1, (7-30), Online publication date: 1-Jan-2001.
  62. ACM
    Martin W, White P and Vanfleet W Government, industry, and academia Proceedings of the third workshop on Formal methods in software practice, (37-47)
  63. Bertoli P, Calmet J, Giunchiglia F and Homann K (1999). Specification and Integration of Theorem Provers and Computer Algebra Systems, Fundamenta Informaticae, 39:1,2, (39-57), Online publication date: 1-Apr-1999.
  64. Wermelinger M and Fiadeiro J (1998). Connectors for Mobile Programs, IEEE Transactions on Software Engineering, 24:5, (331-341), Online publication date: 1-May-1998.
  65. Wermelinger M and Fiadeiro J Towards an Algebra of Architectural Connectors Proceedings of the 9th international workshop on Software specification and design
  66. Fokkinga M (1992). Calculate categorically!, Formal Aspects of Computing, 4:Suppl 1, (673-692), Online publication date: 1-Nov-1992.
Contributors
  • University of Pennsylvania

Recommendations

Reviews

David B. Benson

About 35 years ago I had a discussion with some graduate students at my alma mater about problems I was having formulating questions about function composition in relationship to Algol. They said that little was understood about such general compositions. At that time hardly anyone knew about category theory and Kan had only just published his seminal paper on adjoint functors [1]. Today the effectiveness of category theory in explicating concepts based upon composition is widely recognized. The applications range from dynamical systems through rewrite rules and programming languages to structures within logic that profoundly alter our conceptions of constructive foundations. As computation is so deeply intertwined with the very conception of composition, the universals that arise in the study of categories apply to all technical aspects of computer science, computer engineering, software engineering, and all other technical forms of computer practice. In any discipline, appropriate theory codifies the experimentation and practice. We now understand the role of categories and category theory in providing a clean, uniform, cohesive framework giving great insight into appropriate computational structures. Lawvere and Schanuel F. William Lawvere's Ph.D. dissertation originated the categorical view of algebras that strongly influenced the development of abstract data types. He invented distributive categories as an explication for aspects of computation. His work with Myles Tierney gave rise to the great foundational explorations of toposes. Written by masters, Conceptual mathematics is for all of us who want to learn a new, clear, clean, crisp, and wonderfully refreshing way of looking at the world. Not specifically just for computer scientists, this elementary text could serve as the lecture notes for a freshman course. It offers a perspective upon the world that, provided you persevere, will enable you to see order and beauty where previously there was none. The book is full of the beginnings of topics that are ordinarily considered advanced but are not actually that difficult, as this book demonstrates. These topics include the important notions of inverse images and fibers, but also factorizations and a touch of toposes. Categories of structured sets and universal mapping properties are introduced. All of this is done for beginners with small, well-motivated examples. The book has lots of discourse with students, plenty of repetition, and ample examples. This gem is suitable for self-study or the classroom, and for the sheer joy of discovery I had trouble putting it down. Walters Many years ago, Alfred North Whitehead wrote in The aims of education [2] that the step in learning after discovery was to build toward mastery. Walters's text, a reworking of lecture notes for a junior course at the University of Sydney, continues the discovery of the applicability of categories in computer science and begins building toward mastery. The examples are drawn from elementary topics in circuits and flowcharts and also in automata and formal languages. They build toward the distributive categories just touched upon in Lawvere and Schanuel's work. Within the setting of distributive categories, nicely explained here, one sees data structure abstractions done properly. The example of queues is the most compelling in that all of the structure of distributive categories is used. The concept of freedom is central to the understanding of many matters in category theory and in computer science. This concept, closely akin to generating graphs, is explicated well here. Perhaps one needs to carefully remember the distinction between a category and the presentation of a category via multidigraphs and relations. The automata and formal language concepts fit in beautifully here. Kleene's theorem requires but a page for statement and proof after the categorical background perfectly sets the stage. The concluding chapter takes on two procedures of great import: Knuth-Bendix and the left Kan extension. Both are explained well. The left Kan extension has many important uses within computer science as well as computer and software engineering—vastly more than the text hints at. Programs in the book and correction details for the book are available by anonymous ftp from maths.su.oz.au:pub/sydcat. Conceptual mathematics and Categories and computer science have been used together for an upperclass or graduate course for computer scientists to good effect. I strongly recommend both books. Pierce The next volume for our growing mastery of the subject is Basic category theory for computer scientists . This pleasant little volume introduces more of the universal constructions than the previous two books, as well as introducing adjoints. There are many examples of adjoints. For example, the two books reviewed above contain many instances of adjoints without defining the concept. The applications discussed in this volume are all closely related to programming language semantics, but even if this topic does not particularly appeal to you, I recommend this book; the uses of Cartesian closed categories and recursive domain equations, both treated here, extend throughout computation studies and will amply repay the effort. The book closes with an extremely useful chapter about other textbooks, introductory articles, reference books, and some selected research papers. Pierce writes in the preface that he wrote this book as a graduate student, and I think that is an appropriate audience for this friendly, helpful book with lots of examples. This book is also recommended as an introduction for all computer scientists who want to read either of the next two books in this review. Barr and Wells Rather more mature as a text, and so requiring greater maturity and thought from readers, is Category theory for computing science . Here one sees Cartesian closed categories from a different perspective, and is introduced to sketches and to locally Cartesian closed categories. The chapter on fibrations harkens back to ideas not seen in the volumes in this review since Conceptual mathematics , as does the chapter on toposes. This chapter provides a brief, clear introduction to the important concept of sheaf. For more on this subject, try MacLane and Moerdijk [3] or Barr and Wells [4]. Fibrations and the Grothendieck construction of fibrations are important ideas. A fibration is a generalization of the inverse of a function. The generalization occurs repeatedly in the structuring of data and programs. With mastery, obtainable by the study of this volume, you will recognize fibrations and the Grothendieck construction again and again in computational settings. This is the first book in this review to treat the concept of “triple,” also called “monad” by computer scientists following the usage in MacLane [5]. This concept is a vast generalization of the idea of an algebra, in the sense of universal algebra. So the “abstract data types” are often monads; various domain constructions are monads; certain topological concepts are monads; and so on. A more advanced discussion may be found in Barr and Wells [4]. This book lightly treats many other ideas having applications in software engineering and computer science. I consult it frequently for both areas. I recommend it highly for the more mature and patient readers who are ready to draw diagrams, do exercises, and otherwise attend to the discipline of learning a science from the writings of masters. The book is maintained with a list of errata and additions available by postal service or email from the authors via [email protected] or [email protected]. Asperti and Longo This text is the most advanced of these five books. It treats, with thorough rigor, all the previously mentioned topics except distributive categories and sketches. This text uses indexed categories rather than fibrations. As this book is a semantically and foundationally oriented advanced text, readers should be aware that, in an important foundational sense, indexed categories need to be replaced by fibrations. Making this (not difficult) mental change as one reads will make the close relationship between indexed categories and fibrations completely clear. The authors emphasize internal category theory, that is, categories within categories as foundations. This beautiful idea from topos theory helps to build the deep and interesting understanding of types as objects. This is the purpose of the second half of this book. Finally, at the end, we see internal models for types-as-objects done in a way that appears to provide satisfying closure about this aspect of expressibility. Once one has read the book, there is more food for thought, including predicates as fibrations (see Pavlovic [6]) and subtyping judgments for object languages and databases. Comparison Having fully mastered this part of conceptual mathematics, we can bring our mastery to bear upon important, practical questions of the day. For some, the first two volumes of this review series will suffice. Others may want to continue further with MacLane and Moerdijk [3], Lambek and Scott [7], and Barr and Wells [4], perhaps contributing to applications of categories by writing their own book, exemplified for the purposes of this review by Gunter [8], Manes [9], and Bloom and Esik [10]. Many topics in object databases, distributed computation, logic programming, and document preparation systems exist for which such books could be written. I will conclude with a word about errors and notations. Every one of these books surely contains errors. Every one contains a few quirks of notation or terminology peculiar to the author or authors. The closest thing to a standard in this field is MacLane [5], and even that volume has a few mistakes. The important thing about categories is the concepts; they are what makes studying categories so refreshing.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.