![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > Computer programming > Object-oriented programming (OOP)
by Luea Cardelli Ever since Strachey's work in the 1960's, polymorphism has been classified into the parametric and overloading varieties. Parametric polymorphism has been the subject of extensive study for over two decades. Overloading, on the other hand, has often been considered too ad hoc to deserve much attention even though it has been, in some form, an ingredient of virtually every programming lan guage (much more so than parametric polymorphism). With the introduction of object-oriented languages, and in particular with multiple-dispatch object-oriented languages, overloading has become less of a programming convenience and more of a fundamental feature in need of proper explanation. This book provides a compelling framework for the study of run-time over loading and of its interactions with subtyping and with parametric polymorphism. The book also describes applications to object-oriented programming. This new framework is motivated by the relatively recent spread of programming languages that are entirely based on run-time overloading; this fact probably explains why this subject was not investigated earlier. Once properly understood, overloading reveals itself relevant also to the study of older and more conventional (single dispatch) object-oriented languages, clarifying delicate issues of covariance and contravariance of method types, and of run-time type analysis. In the final chapters, a synthesis is made between parametric and overloading polymorphism."
Access the power of bare-metal systems programming with Scala Native, an ahead-of-time Scala compiler. Without the baggage of legacy frameworks and virtual machines, Scala Native lets you re-imagine how your programs interact with your operating system. Compile Scala code down to native machine instructions; seamlessly invoke operating system APIs for low-level networking and IO; control pointers, arrays, and other memory management techniques for extreme performance; and enjoy instant start-up times. Skip the JVM and improve your code performance by getting close to the metal. Developers generally build systems on top of the work of those who came before, accumulating layer upon layer of abstraction. Scala Native provides a rare opportunity to remove layers. Without the JVM, Scala Native uses POSIX and ANSI C APIs to build concise, expressive programs that run unusually close to bare metal. Scala Native compiles Scala code down to native machine instructions instead of JVM bytecode. It starts up fast, without the sluggish warm-up phase that's common for just-in-time compilers. Scala Native programs can seamlessly invoke operating system APIs for low-level networking and IO. And Scala Native lets you control pointers, arrays, and other memory layout types for extreme performance. Write practical, bare-metal code with Scala Native, step by step. Understand the foundations of systems programming, including pointers, arrays, strings, and memory management. Use the UNIX socket API to write network client and server programs without the sort of frameworks higher-level languages rely on. Put all the pieces together to design and implement a modern, asynchronous microservice-style HTTP framework from scratch. Take advantage of Scala Native's clean, modern syntax to write lean, high-performance code without the JVM. What You Need: A modern Windows, Mac OS, or Linux system capable of running Docker. All code examples in the book are designed to run on a portable Docker-based build environment that runs anywhere. If you don't have Docker yet, see the Appendix for instructions on how to get it.
A Perl expert can solve a problem in a few lines of well-tested code. Now you can unlock these powers for yourself. Modern Perl teaches you how Perl really works. It's the only book that explains Perl thoroughly, from its philosophical roots to the pragmatic decisions that help you solve real problems--and keep them solved. You'll understand how the language fits together and discover the secrets used by the global Perl community. This beloved guide is now completely updated for Perl 5.22. When you have to solve a problem now, reach for Perl. When you have to solve a problem right, reach for Modern Perl. Discover how to scale your skills from one-liners to asynchronous Unicode-aware web services and everything in between. Modern Perl will take you from novice to proficient Perl hacker. You'll see which features of modern Perl will make you more productive, and which features of this well-loved language are best left in the past. Along the way, you'll take advantage of Perl to write well-tested, clear, maintainable code that evolves with you.Learn how the language works, how to take advantage of the CPAN's immense trove of time-tested solutions, and how to write clear, concise, powerful code that runs everywhere. Specific coverage explains how to use Moose, how to write testable code, and how to deploy and maintain real-world Perl applications. This new edition covers the new features of Perl 5.20 and Perl 5.22, including all the new operators, standard library changes, bug and security fixes, and productivity enhancements. It gives you what you need to use the most up-to-date Perl most effectively, all day, every day. What You Need: Perl 5.16 or newer (Perl 5.20 or 5.22 preferred). Installation/upgrade instructions included.
Validation of computer systems is the process that assures the formal assessment and report of quality and performance measures for all the life-cycle stages of software and system development, its implementation, qualification and acceptance, operation, modification, requalification, maintenance and retirement (PICS CSV PI 011-3). It is a process that demonstrates the compliance of computer systems functional and non-functional requirements, data integrity, regulated company procedures and safety requirements, industry standards, and applicable regulatory authority's requirements. Compliance is a state of being in adherence to application-related standards or conventions or regulations in laws and similar prescriptions. This book, which is relevant to the pharmaceutical and medical devices regulated operations, provides practical information to assist in the computer validation to production systems, while highlighting and efficiently integrating worldwide regulation into the subject. A practical approach is presented to increase efficiency and to ensure that the validation of computer systems is correctly achieved.
This book is the follow-up of the Boost Volume I book and it has been written for software developers who use Boost C++ libraries to create flexible applications. We discuss approximately 20 advanced libraries that can be classified into the following major categories: Mathematics: special functions, statistical distributions, interval arithmetic and matrix algebra. Special data structures: date and time, circular buffer, UUID, dynamic bitsets, pool memory. TCP and UDP portable network programming using the software interface. Interprocess communication and shared memory programming models. Three chapters on graphs, graph algorithms and their implementation in Boost. The focus is hands-on and each library is discussed in detail and numerous working examples are given to get the reader up to speed as soon as possible. Each library is described in a step-by-step fashion and you can use the corresponding code as a basis for more advanced applications. These libraries are the ideal basis for new applications. We shall use them in Volume III of the current series when we discuss applications to engineering, science and computational finance. About the Authors Robert Demming is software designer, developer and trainer and he has been involved with software projects in the areas of optical technology, process control, CAD and order processing systems since 1993. He has a BSc degree in technical computerscience from Amsterdam Hogeschool. Daniel J. Duffy is founder of Datasim Education BV and has been working with C++ and its applications since 1989 and with software development since 1979. He is designer, algorithm builder and trainer. He has a PhD in numerical analysis from Trinity College, Dublin. One of the projects that he is involved in is applying the Boost libraries to computational finance."
Handbook of Neuroevolution Through Erlang presents both the theory behind, and the methodology of, developing a neuroevolutionary-based computational intelligence system using Erlang. With a foreword written by Joe Armstrong, this handbook offers an extensive tutorial for creating a state of the art Topology and Weight Evolving Artificial Neural Network (TWEANN) platform. In a step-by-step format, the reader is guided from a single simulated neuron to a complete system. By following these steps, the reader will be able to use novel technology to build a TWEANN system, which can be applied to Artificial Life simulation, and Forex trading. Because of Erlang's architecture, it perfectly matches that of evolutionary and neurocomptational systems. As a programming language, it is a concurrent, message passing paradigm which allows the developers to make full use of the multi-core & multi-cpu systems. Handbook of Neuroevolution Through Erlang explains how to leverage Erlang's features in the field of machine learning, and the system's real world applications, ranging from algorithmic financial trading to artificial life and robotics.
Attacks against computer systems can cause considerable economic or physical damage. High-quality development of security-critical systems is difficult, mainly because of the conflict between development costs and verifiable correctness. JA1/4rjens presents the UML extension UMLsec for secure systems development. It uses the standard UML extension mechanisms, and can be employed to evaluate UML specifications for vulnerabilities using a formal semantics of a simplified fragment of UML. Established rules of security engineering can be encapsulated and hence made available even to developers who are not specialists in security. As one example, JA1/4rjens uncovers a flaw in the Common Electronic Purse Specification, and proposes and verifies a correction. With a clear separation between the general description of his approach and its mathematical foundations, the book is ideally suited both for researchers and graduate students in UML or formal methods and security, and for advanced professionals writing critical applications.
Requirements Modeling and Coding attempts to bridge the gap between modeling and coding and serves the growing trend of agile development better than existing textbooks in the area. Instead of using toy tools to create modeling and coding examples, the author teaches IBM Rational Rhapsody as a modeling tool and Microsoft Visual C# as a programming tool. C# is the purest object-oriented programming language and the best tool for developing graphical user interfaces, while Rhapsody is a visual development environment that real software developers use to create real-time or embedded systems.This book serves as a text for a capstone course on Systems Analysis and Design in Information Systems programs. It conceptualizes business objects and functions, develops business models and software architectures, and enriches the models and the architectures by storyboarding use cases along with user interface designs.Instructor's resources are provided for free to instructors who adopt the book as textbook. Please send your request to [email protected].
Requirements Modeling and Coding attempts to bridge the gap between modeling and coding and serves the growing trend of agile development better than existing textbooks in the area. Instead of using toy tools to create modeling and coding examples, the author teaches IBM Rational Rhapsody as a modeling tool and Microsoft Visual C# as a programming tool. C# is the purest object-oriented programming language and the best tool for developing graphical user interfaces, while Rhapsody is a visual development environment that real software developers use to create real-time or embedded systems.This book serves as a text for a capstone course on Systems Analysis and Design in Information Systems programs. It conceptualizes business objects and functions, develops business models and software architectures, and enriches the models and the architectures by storyboarding use cases along with user interface designs.Instructor's resources are provided for free to instructors who adopt the book as textbook. Please send your request to [email protected].
Data Structures and Abstractions with Java is suitable for one- or two-semester courses in data structures (CS-2) in the departments of Computer Science, Computer Engineering, Business, and Management Information Systems. This book is also useful for programmers and software engineers interested in learning more about data structures and abstractions. This is the most student-friendly data structures text available that introduces ADTs in individual, brief chapters - each with pedagogical tools to help students master each concept. Using the latest features of Java, this unique object-oriented presentation makes a clear distinction between specification and implementation to simplify learning, while providing maximum classroom flexibility. Teaching and Learning Experience This book will provide a better teaching and learning experience-for you and your students. It will help: Aid comprehension and facilitate teaching with an approachable format and content organization: Material is organized into small segments that focus a reader's attention and provide greater instructional flexibility. Support learning with student-friendly pedagogy: In-text and online features help students master the material.
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively - so that your software is correct, efficient, maintainable, and portable. That's where this practical book comes in. It describes how to write truly great software using C++11 and C++14 - i.e. using modern C++. Topics include: The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functions The relationships among std::move, std::forward, rvalue references, and universal references Techniques for writing clear, correct, effective lambda expressions How std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API How best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++ Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
C++ is one of the most important and influential programming languages for application development. It supports the modular, object- oriented and generic programming models and its flexibility has been one of the main reasons why it has been so successful. With the emergence of the Boost Libraries (www.boost.org) we see that C++ is brought to a new level, namely a set of reusable and modular template libraries that C++ developers can use in their applications. This book is dedicated to a number of Boost libraries for higher-order functions, data types and data structures, libraries for text and string processing, multi-threading, random number generation and more. We also discuss how Boost and design patterns are used to promote the flexibility of code. Each library is described in a step-by-step manner. Numerous examples are given to show the functionality of each library. The full source code is freely available to purchasers of the book. Coverage Includes Understanding and using 30 major Boost libraries. Learn about higher-order functions, data structures, memory management, multi-threading and more. Using Boost in new and existing applications. Integrating Boost and the Gang-Of-Four design patterns. Ready-to-run projects for Visual Studio. Appendices and exercises."
If you program in C++ you've been neglected. Test-driven
development (TDD) is a modern software development practice that
can dramatically reduce the number of defects in systems, produce
more maintainable code, and give you the confidence to change your
software to meet changing needs. But C++ programmers have been
ignored by those promoting TDD--until now. In this book, Jeff Langr
gives you hands-on lessons in the challenges and rewards of doing
TDD in C++.
The Unified Process methodology for object-oriented component-based development has taken the information technology community by storm. This first volume in a four-book series addresses the Inception Phase, in which developers focus on the initial requirements for a system, determining its scope and organizing the project. These articles from "Software Development" magazine have been written by industry luminaries.
"Today's challenges" need "Today's solutions". The way this applies to real-word, it equally applies to programming world. To create solutions that meet today's expectations, one needs to use a modern language like Java. Learning Java can be challenging for anyone. This is where you would find this book immensely useful. It follows simple and easy narration style. It doesn't assume any programming background. It begins with the basics and steadily builds the pace so that the reader finds it easy to handle complex topics towards the end. Each chapter has been designed to create a deep and lasting impression on reader's mind. Object Oriented Programming has been covered in detail to give a strong foundation for Java programming. Well thought out & fully working example programs and carefully crafted exercises of this book, cover every aspect of Java programming. Some of the highlighting features of this book are: Data types & Control Instructions; Object Oriented Programming; Classes & Objects; Arrays & Strings; Interfaces; Packages; Inheritance & Polymorphism; Exception Handling; Effective I/O; and, Bitwise Operators.
Create your first 2D, 3D, and AR/VR games with the awesome Unity game platform. With this hands-on beginner's guide, you'll start building games fast! In Unity in Action, Third Edition, you will learn how to: Create characters that run, jump, and bump into things Build 3D first-person shooters and third-person action games Construct 2D card games and side-scrolling platformers Script enemies with AI Improve game graphics by importing models and images Design an intuitive user interface for your games Play music and spatially-aware sound effects Connect your games to the internet for online play Deploy your games to desktop, mobile, and the web Thousands of new game developers have chosen Joe Hocking's Unity in Action as their first step toward Unity mastery. This fully updated third edition comes packed with fully refreshed graphics, Unity's latest features, and coverage of the augmented and virtual reality toolkits. Using your existing coding skills, you'll write custom code instead of just clicking together premade scripts. You'll master the Unity toolset from the ground up, adding the skills you need to go from application coder to game developer. Build your next game without sweating the low-level details. The Unity game engine handles the heavy lifting, so you can focus on game play, graphics, and user experience. With support for C#, a huge ecosystem of production-quality prebuilt assets, and a strong dev community, Unity will get your game idea off the drawing board and onto the screen! You can even use Unity for more than game development, with new tools for VR and augmented reality that are perfect for developing useful apps.
For a variety of reasons, the MATLAB(r)-Java interface was never fully documented. This is really quite unfortunate: Java is one of the most widely used programming languages, having many times the number of programmers and programming resources as MATLAB. Also unfortunate is the popular claim that while MATLAB is a fine programming platform for prototyping, it is not suitable for real-world, modern-looking applications. Undocumented Secrets of MATLAB(r)-Java Programming aims to correct this misconception. This book shows how using Java can significantly improve MATLAB program appearance and functionality, and that this can be done easily and even without any prior Java knowledge. Readers are led step-by-step from simple to complex customizations. Code snippets, screenshots, and numerous online references are provided to enable the utilization of this book as both a sequential tutorial and as a random-access reference suited for immediate use. Java-savvy readers will find it easy to tailor code samples for their particular needs; for Java newcomers, an introduction to Java and numerous online references are provided. This book demonstrates how
This book successfully balances the introduction of object-oriented
concepts with data structures in C++.
Presents a novel metrics-based approach for detecting design problems in object-oriented software. Introduces an important suite of detection strategies for the identification of different well-known design flaws as well as some rarely mentioned ones.
Our industry is moving toward functional programming, but your object-oriented experience is still valuable. Scala combines the power of OO and functional programming, and Pragmatic Scala shows you how to work effectively with both. Updated to Scala 2.11, with in-depth coverage of new features such as Akka actors, parallel collections, and tail call optimization, this book will show you how to create stellar applications. This thorough introduction to Scala will get you coding in this powerful language right away. You'll start from the familiar ground of Java and, with easy-to-follow examples, you'll learn how to create highly concise and expressive applications with Scala. You'll find out when and how to mix both imperative and functional style, and how to use parallel collections and Akka actors to create high-performance concurrent applications that effectively use multicore processors. Scala has evolved since the first edition of this book, and Pragmatic Scala is a significant update. We've revised each chapter, and added three new chapters and six new sections to explore the new features in Scala. You'll learn how to: * Safely manage concurrency with parallel collections and Akka actors * Create expressive readable code with value classes and improved implicit conversions * Create strings from data with no sweat using string interpolation * Create domain-specific languages * Optimize your recursions with tail call optimization Whether you're interested in creating concise, robust single-threaded applications or highly expressive, thread-safe concurrent programs, this book has you covered. What You Need: The Scala compiler (2.x) and the JDK are required to make use of the concepts and the examples in this book.
Practical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, event-driven infrastructure, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++ without big tools. This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications. Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts. The lightweight QP event-driven infrastructure goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microprocessor, microcontroller, or DSP completely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware. The accompanying website to this book contains complete open source code for QP, ports to popular processors and operating systems, including 80x86, ARM Cortex-M3, MSP430, and Linux, as well as all examples described in the book.
For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming. Written for software engineers "in the trenches," this text focuses on the technology-the principles, patterns, and process-that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.
Data-Oriented Programming teaches you to design and implement software using the data-oriented programming paradigm. In it, you'll learn author Yehonathan Sharvit's unique approach to DOP that he has developed over a decade of experience. Every chapter contains a new light bulb moment that will change the way you think about programming. As you read, you'll build a library management system using the DOP paradigm. You'll design data models for business entities, manipulate immutable data collections, and write unit tests for data-oriented systems. About the Technology Data-oriented programming is an exciting new paradigm that eliminates the usual complexity caused by combining data and code into objects and classes. In DOP, you maintain application data in persistent generic data structures separated from the program's code. You use general-purpose functions to manipulate the data without mutating it. This approach rids your applications of state-related bugs and makes your code much easier to understand and maintain.
UML, the Universal Modeling Language, was the first programming
language designed to fulfill the requirement for "universality."
However, it is a software-specific language, and does not support
the needs of engineers designing from the broader systems-based
perspective. Therefore, SysML was created. It has been steadily
gaining popularity, and many companies, especially in the
heavily-regulated Defense, Automotive, Aerospace, Medical Device
and Telecomms industries, are already using SysML, or are plannning
to switch over to it in the near future. |
You may like...
Object-oriented Design Knowledge…
Mario Piattini, Javier Garzas
Hardcover
R2,507
Discovery Miles 25 070
Agile Scrum Implementation and Its…
Kenneth R Walsh, Sathiadev Mahesh, …
Hardcover
R5,994
Discovery Miles 59 940
UML 2 Certification Guide - Fundamental…
Tim Weilkiens, Bernd Oestereich
Paperback
R1,260
Discovery Miles 12 600
Object-Oriented Analysis and Design for…
Raul Sidnei Wazlawick
Paperback
R1,120
Discovery Miles 11 200
|