[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
Skip header Section
Abstraction and specification in program developmentJune 1986
  • Author:
  • Barbara Liskov
Publisher:
  • MIT Press
  • 55 Hayward St.
  • Cambridge
  • MA
  • United States
ISBN:978-0-262-12112-5
Published:09 June 1986
Pages:
469
Reflects downloads up to 01 Mar 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Lourenço H, Ferreira C, Costa Seco J and Parreira J (2023). OSTRICH: a rich template language for low-code development (extended version), Software and Systems Modeling (SoSyM), 22:5, (1645-1663), Online publication date: 1-Oct-2023.
  2. ACM
    Crary K (2017). Modules, abstraction, and parametric polymorphism, ACM SIGPLAN Notices, 52:1, (100-113), Online publication date: 11-May-2017.
  3. ACM
    Crary K Modules, abstraction, and parametric polymorphism Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, (100-113)
  4. Ming H and Chang C Can Situations Help with Reusability of Software? Proceedings, Part I, of the 18th International Conference on Human-Computer Interaction. Theory, Design, Development and Practice - Volume 9731, (598-609)
  5. Amighi A, Blom S, Darabi S, Huisman M, Mostowski W and Zaharieva-Stojanovski M Verification of Concurrent Systems with VerCors Advanced Lectures of the 14th International School on Formal Methods for Executable Software Models - Volume 8483, (172-216)
  6. ACM
    Noble J and Drossopoulou S Rationally Reconstructing the Escrow Example Proceedings of 16th Workshop on Formal Techniques for Java-like Programs, (1-6)
  7. Demirezen Z, Tanik M, Aksit M and Skjellum A (2014). A communication-channel-based representation system for software, Integrated Computer-Aided Engineering, 21:3, (235-247), Online publication date: 1-Jul-2014.
  8. Potanin A, Damitio M and Noble J Are your incoming aliases really necessary? counting the cost of object ownership Proceedings of the 2013 International Conference on Software Engineering, (742-751)
  9. ACM
    Perez De Rosso S and Jackson D What's wrong with git? Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software, (37-52)
  10. ACM
    Alpuente M, Feliú M and Villanueva A Automatic inference of specifications using matching logic Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation, (127-136)
  11. ACM
    Hatcliff J, Leavens G, Leino K, Müller P and Parkinson M (2012). Behavioral interface specification languages, ACM Computing Surveys, 44:3, (1-58), Online publication date: 1-Jun-2012.
  12. Nelson S, Pearce D and Noble J Understanding the impact of collection contracts on design Proceedings of the 48th international conference on Objects, models, components, patterns, (61-78)
  13. ACM
    Roberson M and Boyapati C Efficient modular glass box software model checking Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (4-21)
  14. ACM
    Roberson M and Boyapati C (2010). Efficient modular glass box software model checking, ACM SIGPLAN Notices, 45:10, (4-21), Online publication date: 17-Oct-2010.
  15. ACM
    Bloom B, Field J, Nystrom N, Östlund J, Richards G, Strniša R, Vitek J and Wrigstad T Thorn Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, (117-136)
  16. ACM
    Bloom B, Field J, Nystrom N, Östlund J, Richards G, Strniša R, Vitek J and Wrigstad T (2009). Thorn, ACM SIGPLAN Notices, 44:10, (117-136), Online publication date: 25-Oct-2009.
  17. ACM
    Zhang J, Goldsby H and Cheng B Modular verification of dynamically adaptive systems Proceedings of the 8th ACM international conference on Aspect-oriented software development, (161-172)
  18. Rayside D, Benjamin Z, Singh R, Near J, Milicevic A and Jackson D Equality and hashing for (almost) free Proceedings of the 31st International Conference on Software Engineering, (342-352)
  19. ACM
    Rayside D, Milicevic A, Yessenov K, Dennis G and Jackson D Agile specifications Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (999-1006)
  20. ACM
    Hazzan O and Kramer J The role of abstraction in software engineering Companion of the 30th international conference on Software engineering, (1045-1046)
  21. ACM
    Nogueira P and Moreno-Navarro J Bialgebra views Proceedings of the ACM SIGPLAN workshop on Generic programming, (61-73)
  22. ACM
    Biering B, Birkedal L and Torp-Smith N (2007). BI-hyperdoctrines, higher-order separation logic, and abstraction, ACM Transactions on Programming Languages and Systems, 29:5, (24-es), Online publication date: 2-Aug-2007.
  23. Naumann D (2007). On assertion-based encapsulation for object invariants and simulations, Formal Aspects of Computing, 19:2, (205-224), Online publication date: 1-Jun-2007.
  24. ACM
    Kramer J and Hazzan O The role of abstraction in software engineering Proceedings of the 2006 international workshop on Role of abstraction in software engineering, (1-2)
  25. ACM
    Leavens G, Abrial J, Batory D, Butler M, Coglio A, Fisler K, Hehner E, Jones C, Miller D, Peyton-Jones S, Sitaraman M, Smith D and Stump A Roadmap for enhanced languages and methods to aid verification Proceedings of the 5th international conference on Generative programming and component engineering, (221-236)
  26. ACM
    Kramer J and Hazzan O (2006). The Role of Abstraction in Software Engineering, ACM SIGSOFT Software Engineering Notes, 31:6, (38-39), Online publication date: 1-Nov-2006.
  27. Le Traon Y, Baudry B and Jezequel J (2006). Design by Contract to Improve Software Vigilance, IEEE Transactions on Software Engineering, 32:8, (571-586), Online publication date: 1-Aug-2006.
  28. Gibbons J Datatype-generic programming Proceedings of the 2006 international conference on Datatype-generic programming, (1-71)
  29. Müller P, Poetzsch-Heffter A and Leavens G (2006). Modular invariants for layered object structures, Science of Computer Programming, 62:3, (253-286), Online publication date: 15-Oct-2006.
  30. ACM
    Clarke L and Rosenblum D (2006). A historical perspective on runtime assertion checking in software development, ACM SIGSOFT Software Engineering Notes, 31:3, (25-37), Online publication date: 1-May-2006.
  31. ACM
    Darga P and Boyapati C Efficient software model checking of data structure properties Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (363-382)
  32. ACM
    Darga P and Boyapati C (2006). Efficient software model checking of data structure properties, ACM SIGPLAN Notices, 41:10, (363-382), Online publication date: 16-Oct-2006.
  33. ACM
    Siek J and Lumsdaine A (2005). Essential language support for generic programming, ACM SIGPLAN Notices, 40:6, (73-84), Online publication date: 12-Jun-2005.
  34. ACM
    van Dooren M and Steegmans E (2005). Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations, ACM SIGPLAN Notices, 40:10, (455-471), Online publication date: 12-Oct-2005.
  35. ACM
    van Dooren M and Steegmans E Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (455-471)
  36. ACM
    Siek J and Lumsdaine A Essential language support for generic programming Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, (73-84)
  37. Leino K and Müller P Modular verification of static class invariants Proceedings of the 2005 international conference on Formal Methods, (26-42)
  38. Niculescu V (2004). On Data Distributions in the Construction of Parallel Programs, The Journal of Supercomputing, 29:1, (5-25), Online publication date: 1-Jul-2004.
  39. Naumann D Assertion-based encapsulation, object invariants and simulations Proceedings of the Third international conference on Formal Methods for Components and Objects, (251-273)
  40. Barnett M, Leino K and Schulte W The spec# programming system Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, (49-69)
  41. Ramsey N (2003). Pragmatic aspects of reusable program generators, Journal of Functional Programming, 13:3, (601-646), Online publication date: 1-May-2003.
  42. ACM
    Dreyer D, Crary K and Harper R (2003). A type system for higher-order modules, ACM SIGPLAN Notices, 38:1, (236-249), Online publication date: 15-Jan-2003.
  43. ACM
    Dreyer D, Crary K and Harper R A type system for higher-order modules Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (236-249)
  44. ACM
    Fähndrich M and Leino K Declaring and checking non-null types in an object-oriented language Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, (302-312)
  45. Leino K and Nelson G Abstraction dependencies Programming methodology, (269-289)
  46. ACM
    Fähndrich M and Leino K (2003). Declaring and checking non-null types in an object-oriented language, ACM SIGPLAN Notices, 38:11, (302-312), Online publication date: 26-Nov-2003.
  47. Müller P (2002). Modular specification and verification of object-oriented programs, 10.5555/1767748, Online publication date: 1-Jan-2002.
  48. Wonnacott D Using accessory functions to generalize dynamic dispatch in single-dispatch object-oriented languages Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6, (7-7)
  49. ACM
    Hazzan O (2001). Teaching the human aspect of software engineering - a case study, ACM SIGCSE Bulletin, 33:1, (124-128), Online publication date: 1-Mar-2001.
  50. ACM
    Hazzan O Teaching the human aspect of software engineering - a case study Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, (124-128)
  51. ACM
    Ruby C Safely creating correct subclasses without seeing superclass code Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum), (155-156)
  52. ACM
    Ruby C and Leavens G (2000). Safely creating correct subclasses without seeing superclass code, ACM SIGPLAN Notices, 35:10, (208-228), Online publication date: 1-Oct-2000.
  53. ACM
    Ruby C and Leavens G Safely creating correct subclasses without seeing superclass code Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (208-228)
  54. Jackson D and Chapin J (2000). Redesigning Air Traffic Control, IEEE Software, 17:3, (63-70), Online publication date: 1-May-2000.
  55. Alexander R, Bieman J and Viega J (2000). Coping with Java Programming Stress, Computer, 33:4, (30-38), Online publication date: 1-Apr-2000.
  56. Egenhofer M and Andrea Rodríguez M (1999). Relation algebras over containers and surfaces, Spatial Cognition and Computation, 1:2, (155-180), Online publication date: 14-Mar-1999.
  57. Lillibridge M (1999). Unchecked Exceptions Can Be Strictly More Powerful Than Call/CC, Higher-Order and Symbolic Computation, 12:1, (75-104), Online publication date: 1-Apr-1999.
  58. ACM
    Diwan A, McKinley K and Moss J (1998). Type-based alias analysis, ACM SIGPLAN Notices, 33:5, (106-117), Online publication date: 1-May-1998.
  59. Dutoit A and Bruegge B (1998). Communication Metrics for Software Development, IEEE Transactions on Software Engineering, 24:8, (615-628), Online publication date: 1-Aug-1998.
  60. ACM
    Diwan A, McKinley K and Moss J Type-based alias analysis Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, (106-117)
  61. ACM
    Steere D (1997). Exploiting the non-determinism and asynchrony of set iterators to reduce aggregate file I/O latency, ACM SIGOPS Operating Systems Review, 31:5, (252-263), Online publication date: 1-Dec-1997.
  62. ACM
    Steere D Exploiting the non-determinism and asynchrony of set iterators to reduce aggregate file I/O latency Proceedings of the sixteenth ACM symposium on Operating systems principles, (252-263)
  63. ACM
    Lo W and Hadzilacos V All of us are smarter than any of us Proceedings of the twenty-ninth annual ACM symposium on Theory of computing, (579-588)
  64. ACM
    Bogoiavlenski I, Clear A, Davies G, Flack H, Myers J, Rasala R, Goldweber M and Impagliazzo J (1997). Historical perspectives on the computing curriculum, ACM SIGCUE Outlook, 25:4, (94-111), Online publication date: 1-Oct-1997.
  65. ACM
    Bruegge B and Dutoit A Communication metrics for software development Proceedings of the 19th international conference on Software engineering, (271-281)
  66. ACM
    Goldweber M, Impagliazzo J, Bogoiavlenski I, Clear A, Davies G, Flack H, Myers J and Rasala R Historical perspectives on the computing curriculum (report of the ITiCSE '97 working group on historical perspectives in computing education) The supplemental proceedings of the conference on Integrating technology into computer science education: working group reports and supplemental proceedings, (94-111)
  67. Edwards S (1997). Representation Inheritance, IEEE Transactions on Software Engineering, 23:2, (83-92), Online publication date: 1-Feb-1997.
  68. ACM
    Liskov B A history of CLU History of programming languages---II, (471-510)
  69. Wang P and Weihl W (1996). Scalable Concurrent B-Trees Using Multi-Version Memory, Journal of Parallel and Distributed Computing, 32:1, (28-48), Online publication date: 10-Jan-1996.
  70. Ozcan M Integration of Software Tools in Software Engineering Education Proceedings of the 9th Conference on Software Engineering Education
  71. ACM
    Weide B, Heym W and Hollingsworth J Reverse engineering of legacy code exposed Proceedings of the 17th international conference on Software engineering, (327-331)
  72. ACM
    Khrabrov A (1995). An Ada-like separate compilation style in C, ACM SIGAda Ada Letters, XV:2, (23-30), Online publication date: 1-Mar-1995.
  73. ACM
    Kim M (1995). A new iteration mechanism for the C++ programming language, ACM SIGPLAN Notices, 30:1, (20-26), Online publication date: 3-Jan-1995.
  74. Leavens G and Weihl W (1995). Specification and verification of object-oriented programs using supertype abstraction, Acta Informatica, 32:8, (705-778), Online publication date: 1-Aug-1995.
  75. Granville R Building underlying structures for multiparagraph texts Proceedings of the Seventh International Workshop on Natural Language Generation, (21-27)
  76. ACM
    Návrat P (1994). Hierarchies of programming concepts, ACM SIGCSE Bulletin, 26:3, (17-21), Online publication date: 1-Sep-1994.
  77. ACM
    Tan Y (1994). Interface language for supporting programming styles, ACM SIGPLAN Notices, 29:8, (74-83), Online publication date: 1-Aug-1994.
  78. ACM
    Tan Y Interface language for supporting programming styles Proceedings of the Workshop on Interface Definition Languages, (74-83)
  79. ACM
    Bar-David T (1994). Object oriented librarianship, ACM SIGPLAN OOPS Messenger, 5:1, (1-5), Online publication date: 1-Jan-1994.
  80. Kumar S, Aylor J, Johnson B and Wulf W (1994). Object-Oriented Techniques in Hardware Design, Computer, 27:6, (64-70), Online publication date: 1-Jun-1994.
  81. ACM
    Jenks R and Trager B How to make AXIOM into a scratchpad Proceedings of the international symposium on Symbolic and algebraic computation, (32-40)
  82. ACM
    Harper R and Lillibridge M A type-theoretic approach to higher-order modules with sharing Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (123-137)
  83. ACM
    Bahsoun J, Merz S and Servieres C A framework for programming and formalizing concurrent objects Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, (126-137)
  84. ACM
    Jiang Q and Kopec D (1993). Societal and technological problems of computer use in industry, ACM SIGCAS Computers and Society, 23:1-2, (21-25), Online publication date: 1-Jul-1993.
  85. ACM
    Bahsoun J, Merz S and Servieres C (1993). A framework for programming and formalizing concurrent objects, ACM SIGSOFT Software Engineering Notes, 18:5, (126-137), Online publication date: 1-Dec-1993.
  86. ACM
    Beidler J A role for iterators as a tool for software reuse Proceedings of the ninth Washington Ada symposium on Ada: Empowering software users and developers, (156-163)
  87. ACM
    Cheng J (1992). Parameterized specifications for software reuse, ACM SIGSOFT Software Engineering Notes, 17:4, (53-59), Online publication date: 1-Oct-1992.
  88. ACM
    Wiederhold G, Wegner P and Ceri S (1992). Toward megaprogramming, Communications of the ACM, 35:11, (89-99), Online publication date: 1-Nov-1992.
  89. Lee J Extending the Potts and Bruns model for recording design rationale Proceedings of the 13th international conference on Software engineering, (114-125)
  90. ACM
    Dewhurst S and Stark K (1991). Programming in C++, ACM SIGPLAN OOPS Messenger, 2:4, (54-56), Online publication date: 1-Oct-1991.
  91. ACM
    Kilian M (1991). A note on type composition and reusability, ACM SIGPLAN OOPS Messenger, 2:3, (24-32), Online publication date: 1-Jul-1991.
  92. ACM
    Render H and Campbell R An object-oriented model of software configuration management Proceedings of the 3rd international workshop on Software configuration management, (127-139)
  93. Denney R (1991). Test-Case Generation from Prolog-Based Specifications, IEEE Software, 8:2, (49-57), Online publication date: 1-Mar-1991.
  94. ACM
    Hogg J Islands Conference proceedings on Object-oriented programming systems, languages, and applications, (271-285)
  95. ACM
    Hogg J (1991). Islands, ACM SIGPLAN Notices, 26:11, (271-285), Online publication date: 1-Nov-1991.
  96. ACM
    Korson T and McGregor J (1990). Understanding object-oriented: a unifying paradigm, Communications of the ACM, 33:9, (40-60), Online publication date: 1-Sep-1990.
  97. ACM
    Hoffman D and Brealey C (1989). Module test case generation, ACM SIGSOFT Software Engineering Notes, 14:8, (97-102), Online publication date: 1-Dec-1989.
  98. ACM
    Hoffman D and Brealey C Module test case generation Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification, (97-102)
  99. ACM
    Heytens M and Nikhil R (1989). GESTALT, ACM SIGMOD Record, 18:1, (54-67), Online publication date: 1-Mar-1989.
  100. Lieberherr K and Holland I (1989). Assuring Good Style for Object-Oriented Programs, IEEE Software, 6:5, (38-48), Online publication date: 1-Sep-1989.
  101. Hager J (1989). Software Cost Reduction Methods in Practice, IEEE Transactions on Software Engineering, 15:12, (1638-1644), Online publication date: 1-Dec-1989.
  102. ACM
    Potts C A generic model for representing design methods Proceedings of the 11th international conference on Software engineering, (217-226)
  103. Goel V and Pirolli P (1989). Motivating the Notion of Generic Design within Information‐Processing Theory, AI Magazine, 10:1, (18-36), Online publication date: 1-Mar-1989.
  104. Potts C and Bruns G Recording the reasons for design decisions Proceedings of the 10th international conference on Software engineering, (418-427)
  105. Embley D and Woodfield S Assessing the quality of abstract data types written in ADA Proceedings of the 10th international conference on Software engineering, (144-153)
  106. ACM
    Liskov B (1987). Keynote address - data abstraction and hierarchy, ACM SIGPLAN Notices, 23:5, (17-34), Online publication date: 1-May-1988.
  107. ACM
    Lieberherr K, Holland I and Riel A (1988). Object-oriented programming: an objective sense of style, ACM SIGPLAN Notices, 23:11, (323-334), Online publication date: 1-Nov-1988.
  108. ACM
    Lieberherr K, Holland I and Riel A Object-oriented programming: an objective sense of style Conference proceedings on Object-oriented programming systems, languages and applications, (323-334)
  109. ACM
    Zimmer J (1988). We need a discipline of software composing, ACM SIGSOFT Software Engineering Notes, 13:2, (39-40), Online publication date: 1-Apr-1988.
  110. ACM
    Liskov B (1988). Distributed programming in Argus, Communications of the ACM, 31:3, (300-312), Online publication date: 1-Mar-1988.
  111. ACM
    Shumate K Layered virtual machine/object-oriented design Proceedings of the fifth Washington Ada symposium on Ada, (177-190)
  112. ACM
    Liskov B Keynote address - data abstraction and hierarchy Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum), (17-34)
  113. ACM
    Herlihy M and Wing J Axioms for concurrent objects Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (13-26)
  114. ACM
    Liskov B, Curtis D, Johnson P and Scheifer R Implementation of Argus Proceedings of the eleventh ACM Symposium on Operating systems principles, (111-122)
  115. ACM
    Liskov B, Curtis D, Johnson P and Scheifer R (1987). Implementation of Argus, ACM SIGOPS Operating Systems Review, 21:5, (111-122), Online publication date: 1-Nov-1987.
  116. ACM
    Nuutila E, Kuusela J, Tamminen M, Veilhti J and Arkko J (1987). XC- A language for embedded rule based systems, ACM SIGPLAN Notices, 22:9, (23-32), Online publication date: 1-Sep-1987.
  117. ACM
    Pattis R Abstraction in Pascal: data and control Proceedings of the eighteenth SIGCSE technical symposium on Computer science education, (44-57)
  118. ACM
    Pattis R (1987). Abstraction in Pascal: data and control, ACM SIGCSE Bulletin, 19:1, (44-57), Online publication date: 1-Feb-1987.
  119. ACM
    Jacky J and Kalet I (1987). An object-oriented programming discipline for standard Pascal, Communications of the ACM, 30:9, (772-776), Online publication date: 1-Sep-1987.
Contributors
  • MIT Computer Science & Artificial Intelligence Laboratory

Reviews

Jiri Horejs

The growing importance of abstraction (neglecting details as long as possible) and specification (“what” as opposed to “how”) in modular program development is widely recognized. However, the gap between advanced theory (of algebraic specifications, particularly) in a corresponding programming environment (languages and exact methodologies) and everyday programming practices is still considerable. This book significantly helps to fill the gap. After a brief description of CLU, an object-oriented language that supports the outlined methodology, three forms of abstraction—procedural, data, and iteration—are discussed in about one-third of the book. A thorough treatment of exceptions and formal specifications constitutes another part, which covers material difficult to find elsewhere in a well-arranged textbook form. The rest is dedicated to topics which are more standard: testing and debugging, verification, design, and implementation. All of the 15 chapters are supplied with examples, exercises, summaries, and hints on further reading. An appendix displays the CLU Reference Manual implementation of a program (a text formatter) that is specified and designed in the text, as well as five programming assignments. The following are possible shortcomings: (1)The presentation is not homogeneous. It ranges from profound discussions of basic programming concepts and precise techniques (surely new for some readers) to a general narrative of well-known topics which could have been made more concise, thus saving some of the 450 pages. However, even here a lot of useful ideas can be found or recalled. (2)To get the full benefit of the book, you have to learn a new programming language; if you are already familiar with CLU, you surely know most of the facts the book is conveying. Nonetheless, it is worth getting acquainted with CLU philosophy. The book shows how to apply the discussed methodology in conjunction with other languages as well. (3)While the book addresses the problem of writing complex programs, most of the examples deal with simple traditional structures like sets, strings, and stacks. However, the authors were fairly inventive in finding good examples; at least one, the text formatter, is not so simple. (4)There are minor flaws in presentation: (a) some constructs are used before being introduced (x:int:= . . . on p. 18, for example); (b) some are denoted differently (e.g., R for rep on p. 72, reversed order of arguments in IS_IN on p. 193); and (c) the definition of sufficient-completeness is perhaps not sufficiently and completely justified. However, these little bugs can hardly cause any serious misunderstanding. Summarizing, the book promotes a highly promising programming approach and presents a lot of useful design suggestions. Although in some parts brevity is not the book's distinguishing feature, it is worth inclusion in your library.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations

Skip Bibliometrics Section