Antivirus Engines: From Methods to Innovations, Design, and Applications offers an in-depth exploration of the core techniques employed in modern antivirus software. It provides a thorough technical analysis of detection methods, algorithms, and integration strategies essential for the development and enhancement of antivirus solutions. The examples provided are written in Python, showcasing foundational, native implementations of key concepts, allowing readers to gain practical experience with the underlying mechanisms of antivirus technology.The text covers a wide array of scanning techniques, including heuristic and smart scanners, hexadecimal inspection, and cryptographic hash functions such as MD5 and SHA for file integrity verification. These implementations highlight the crucial role of various scanning engines, from signature-based detection to more advanced models like behavioral analysis and heuristic algorithms. Each chapter provides clear technical examples, demonstrating the integration of modules and methods required for a comprehensive antivirus system, addressing both common and evolving threats.Beyond simple virus detection, the content illustrates how polymorphic malware, ransomware, and state-sponsored attacks are tackled using multi-layered approaches. Through these examples, students, researchers, and security professionals gain practical insight into the operation of antivirus engines, enhancing their ability to design or improve security solutions in a rapidly changing threat environment.
Performance Computing: Modern Systems and Practices is a fully comprehensive and easily accessible treatment of high performance computing, covering fundamental concepts and essential knowledge while also providing key skills training. With this book, students will begin their careers with an understanding of possible directions for future research and development in HPC, domain scientists will learn how to use supercomputers as a key tool in their quest for new knowledge, and practicing engineers will discover how supercomputers can employ HPC systems and methods to the design and simulation of innovative products.This new edition has been fully updated, and has been reorganized and restructured to improve accessibility for undergraduate students while also adding trending content such as machine learning and a new chapter on CUDA.
Truly Concurrent Process Algebra with Localities introduces localities into truly concurrent process algebras. The book explores all aspects of localities in truly concurrent process algebras, such as Calculus for True Concurrency (CTC), which is a generalization of CCS for true concurrency, Algebra of Parallelism for True Concurrency (APTC), which is a generalization of ACP for true concurrency, and Î Calculus for True Concurrency (Î ). Together, these approaches capture the so-called true concurrency based on truly concurrent bisimilarities, such as pomset bisimilarity, step bisimilarity, history-preserving (hp-) bisimilarity and hereditary history-preserving (hhp-) bisimilarity.This book provides readers with all aspects of algebraic theory for localities, including the basis of semantics, calculi for static localities, axiomatization for static localities, as well as calculi for dynamic localities and axiomatization for dynamic localities.
CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming shows how high-performance application developers can leverage the power of GPUs using Fortran, the familiar language of scientific computing and supercomputer performance benchmarking. The authors presume no prior parallel computing experience, and cover the basics along with best practices for efficient GPU computing using CUDA Fortran. In order to add CUDA Fortran to existing Fortran codes, they explain how to understand the target GPU architecture, identify computationally-intensive parts of the code, and modify the code to manage the data and parallelism and optimize performance – all in Fortran, without having to rewrite in another language.Each concept is illustrated with actual examples so you can immediately evaluate the performance of your code in comparison.This second edition provides much needed updates on how to efficiently program GPUs in CUDA Fortran. It can be used either as a tutorial on GPU programming in CUDA Fortran as well as a reference text.
API Design for C++, Second Edition provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long-term. It presents patterns and practices that provide real value to individual developers as well as organizations.The Second Edition includes all new material fully updated for the latest versions of C++, including a new chapter on concurrency and multithreading, as well as a new chapter discussing how Objective C++ and C++ code can co-exist and how a C++ API can be accessed from Swift programs. In addition, it explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that produce high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing.
Theory of Structured Parallel Programming is a comprehensive guide to structured parallel programming corresponding to traditional structured sequential programming. The book provides readers with comprehensive coverage of theoretical foundations of structured parallel programming, including analyses of parallelism and concurrency, truly concurrent process algebras, building block-based structured parallel programming, modelling and verification of parallel programming language, modelling and verification of parallel programming patterns, as well as modeling and verification of distributed systems.There have been always two ways to approach parallel computing: one is the structured way, and the other is the graph-based (true concurrent) way. The structured way is often based on the interleaving semantics, such as process algebra CCS. Since the parallelism in interleaving semantics is not a fundamental computational pattern (the parallel operator can be replaced by alternative composition and sequential composition), the parallel operator often does not occur as an explicit operator, such as in the mainstream programming languages C, C++, Java, et al.
Artificial Intelligence and Machine Learning for Open-world Novelty, Volume 134 in the Advances in Computers series presents innovations in computer hardware, software, theory, design and applications, with this updated volume including new chapters on AI and Machine Learning for Real-world problems, Graph Neural Network for learning complex problems, Adaptive Software platform architecture for Aerial Vehicle Safety Levels in real-world applications, OODA Loop for Learning Open-world Novelty Problems, Privacy-Aware Crowd Counting Methods for Real-World Environment, AI and Machine Learning for 3D Computer Vision Applications in Open-world, and PIM Hardware accelerators for real-world problems.Other sections cover Irregular Situations in Real-World Intelligent Systems, Offline Reinforcement Learning Methods for Real-world Problems, Addressing Uncertainty Challenges for Autonomous Driving in Real-World Environments, and more.
Internet of Things: Architectures for Enhanced Living Environments, Volume 133 presents interesting chapters on a variety of timely topics, including Explainable Artificial Intelligence for Enhanced Living Environments: A Study on User Perspective, Human behavioral anomaly pattern mining within an IoT environment: an exploratory study, Indoor Activity Localization Technologies for Assisted Living: Opportunities, Challenges, and Future Directions, Smart Indoor Air Quality Monitoring for Enhanced Living Environments and Ambient Assisted Living, Usability evaluation for the IoT use in Enhanced Living Environments, Roadmap to the elderly enhanced living and care environments: applications and challenges on the Internet of Things domain, and much more.
Handbook of Truly Concurrent Process Algebra provides readers with a detailed and in-depth explanation of the algebra used for concurrent computing. This complete handbook is divided into five Parts: Algebraic Theory for Reversible Computing, Probabilistic Process Algebra for True Concurrency, Actors – A Process Algebra-Based Approach, Secure Process Algebra, and Verification of Patterns. The author demonstrates actor models which are captured using the following characteristics: Concurrency, Asynchrony, Uniqueness, Concentration, Communication Dependency, Abstraction, and Persistence. Every pattern is detailed according to a regular format to be understood and utilized easily, which includes introduction to a pattern and its verifications.Patterns of the vertical domains are also provided, including the domains of networked objects and resource management. To help readers develop and implement the software patterns scientifically, the pattern languages are also presented.
Embedded Systems: ARM Programming and Optimization, Second Edition combines an exploration of the ARM architecture with an examination of the facilities offered by the Linux operating system to explain how various features of program design can influence processor performance. The book demonstrates methods by which a programmer can optimize program code in a way that does not impact its behavior but instead improves its performance. Several applications, including image transformations, fractal generation, image convolution, computer vision tasks, and now machine learning are used to describe and demonstrate these methods. From this, the reader will gain insight into computer architecture and application design, as well as practical knowledge in embedded software design for modern embedded systems. The second edition has been expanded to include more topics of interest to upper level undergraduate courses in embedded systems.