The approach in this book is based on typed technologies, and the core notions fit mainstream object-oriented languages such as Java and C#. The book promotes object-oriented constraints (assertions), their specification and verification. Object-oriented constraints apply to specification and verification of object-oriented programs, specification of the object-oriented platform, more advanced concurrent models, database integrity constraints and object-oriented transactions, their specification and verification.
Suad Alagić holds a PhD in Computer Science from the University of Massachusetts at Amherst. He has been a Computer Science Professor at multiple universities for many years. His research areas are Object-Oriented Systems, Database Systems, and Programming Languages and Systems. Suad Alagić previously published three books with Springer. His first book on assertions was translated into Japanese, Russian and Polish. Suad Alagić is the lead author of numerous papers, object-oriented in particular, that were published in the proceedings of highly visible conferences and in prestigious journals. He has had research grants from NSF and DOD and was an invited staff member of ODMG. Suad Alagić held visiting research positions at Microsoft Research and University of Tokyo. His extensive teaching experience includes a variety of object-oriented courses.
Object Oriented Technologies: Opportunities and Challenges addresses concerns, opportunities and technology trends in the application of object oriented technologies. The chapters of this book were selected to represent a variety of perspectives concerning the present and future of this broad sub-field of software development.
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.
This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work