Skip to main content

Books in Software

    • Theory of Structured Parallel Programming

      • 1st Edition
      • April 26, 2024
      • Yong Wang
      • English
      • Paperback
        9 7 8 0 4 4 3 2 4 8 1 4 6
      • eBook
        9 7 8 0 4 4 3 2 4 8 1 5 3
      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.
    • Antivirus Engines

      • 1st Edition
      • October 21, 2024
      • Paul A. Gagniuc
      • English
      • Paperback
        9 7 8 0 4 4 3 3 2 9 5 2 4
      • eBook
        9 7 8 0 4 4 3 3 2 9 5 3 1
      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.
    • Truly Concurrent Process Algebra With Localities

      • 1st Edition
      • August 20, 2024
      • Yong Wang
      • English
      • Paperback
        9 7 8 0 4 4 3 3 3 0 6 8 1
      • eBook
        9 7 8 0 4 4 3 3 3 0 6 9 8
      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

      • 2nd Edition
      • July 11, 2024
      • Gregory Ruetsch + 1 more
      • English
      • Paperback
        9 7 8 0 4 4 3 2 1 9 7 7 1
      • eBook
        9 7 8 0 4 4 3 2 1 9 7 6 4
      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-inte... 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.
    • Perspective of DNA Computing in Computer Science

      • 1st Edition
      • Volume 129
      • February 21, 2023
      • English
      • Hardback
        9 7 8 0 3 2 3 8 5 5 4 6 4
      • eBook
        9 7 8 0 3 2 3 8 5 5 4 7 1
      DNA or Deoxyribonucleic Acid computing is an emerging branch of computing that uses DNA sequence, biochemistry, and hardware for encoding genetic information in computers. Here, information is represented by using the four genetic alphabets or DNA bases, namely A (Adenine), G (Guanine), C (Cytosine), and T (Thymine), instead of the binary representation (1 and 0) used by traditional computers. This is achieved because short DNA molecules of any arbitrary sequence of A, G, C, and T can be synthesized to order. DNA computing is mainly popular for three reasons: (i) speed (ii) minimal storage requirements, and (iii) minimal power requirements. There are many applications of DNA computing in the field of computer science. Nowadays, DNA computing is widely used in cryptography for achieving a strong security technique, so that unauthorized users are unable to retrieve the original data content. In DNA-based encryption, data are encrypted by using DNA bases (A, T, G, and C) instead of 0 and 1. As four DNA bases are used in the encryption process, DNA computing supports more randomness and makes it more complex for attackers or malicious users to hack the data. DNA computing is also used for data storage because a large number of data items can be stored inside the condensed volume. One gram of DNA holds approx DNA bases or approx 700 TB. However, it takes approx 233 hard disks to store the same data on 3 TB hard disks, and the weight of all these hard disks can be approx 151 kilos. In a cloud environment, the Data Owner (DO) stores their confidential encrypted data outside of their own domain, which attracts many attackers and hackers. DNA computing can be one of the best solutions to protect the data of a cloud server. Here, the DO can use DNA bases to encrypt the data by generating a long DNA sequence. Another application of DNA computing is in Wireless Sensor Network (WSN). Many researchers are trying to improve the security of WSN by using DNA computing. Here, DNA cryptography is used along with Secure Socket Layer (SSL) that supports a secure medium to exchange information. However, recent research shows some limitations of DNA computing. One of the critical issues is that DNA cryptography does not have a strong mathematical background like other cryptographic systems. This edited book is being planned to bring forth all the information of DNA computing. Along with the research gaps in the currently available books/literature, this edited book presents many applications of DNA computing in the fields of computer science. Moreover, research challenges and future work directions in DNA computing are also provided in this edited book.
    • Principles of Big Graph: In-depth Insight

      • 1st Edition
      • Volume 128
      • January 24, 2023
      • English
      • Hardback
        9 7 8 0 3 2 3 8 9 8 1 0 2
      • eBook
        9 7 8 0 3 2 3 8 9 8 1 1 9
      Principles of Big Graph: In-depth Insight, Volume 128 in the Advances in Computer series, highlights new advances in the field with this new volume presenting interesting chapters on a variety of topics, including CESDAM: Centered subgraph data matrix for large graph representation, Bivariate, cluster and suitability analysis of NoSQL Solutions for big graph applications, An empirical investigation on Big Graph using deep learning, Analyzing correlation between quality and accuracy of graph clustering, geneBF: Filtering protein-coded gene graph data using bloom filter, Processing large graphs with an alternative representation, MapReduce based convolutional graph neural networks: A comprehensive review. Fast exact triangle counting in large graphs using SIMD acceleration, A comprehensive investigation on attack graphs, Qubit representation of a binary tree and its operations in quantum computation, Modified ML-KNN: Role of similarity measures and nearest neighbor configuration in multi label text classification on big social network graph data, Big graph based online learning through social networks, Community detection in large-scale real-world networks, Power rank: An interactive web page ranking algorithm, GA based energy efficient modelling of a wireless sensor network, The major challenges of big graph and their solutions: A review, and An investigation on socio-cyber crime graph.
    • Embedded Systems

      • 2nd Edition
      • October 28, 2023
      • Jason D. Bakos
      • English
      • Paperback
        9 7 8 0 1 2 8 2 2 5 7 5 2
      • eBook
        9 7 8 0 3 2 3 9 0 3 0 2 8
      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.
    • Handbook of Truly Concurrent Process Algebra

      • 1st Edition
      • December 1, 2023
      • Yong Wang
      • English
      • Paperback
        9 7 8 0 4 4 3 2 1 5 1 5 5
      • eBook
        9 7 8 0 4 4 3 2 1 5 1 6 2
      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.Patter... 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.
    • MATLAB

      • 6th Edition
      • May 4, 2022
      • Dorothy C. Attaway
      • English
      • Paperback
        9 7 8 0 3 2 3 9 1 7 5 0 6
      • eBook
        9 7 8 0 3 2 3 9 8 6 1 1 3
      MATLAB: A Practical Introduction to Programming and Problem Solving, winner of TAA’s 2017 Textbook Excellence Award ("Texty"), guides the reader through both programming and built-in functions to easily exploit MATLAB’s extensive capabilities for tackling engineering and scientific problems. Assuming no knowledge of programming, this book starts with programming concepts, such as variables, assignments, and selection statements, moves on to loops, and then solves problems using both the programming concept and the power of MATLAB. The sixth edition has been updated to reflect the functionality of the current version of MATLAB (R2021a), including the introduction of machine learning concepts and the Machine Learning Toolbox, and new sections on data formats and data scrubbing.
    • Multicore and GPU Programming

      • 2nd Edition
      • February 9, 2022
      • Gerassimos Barlas
      • English
      • Paperback
        9 7 8 0 1 2 8 1 4 1 2 0 5
      • eBook
        9 7 8 0 1 2 8 1 4 1 2 1 2
      Multicore and GPU Programming: An Integrated Approach, Second Edition offers broad coverage of key parallel computing tools, essential for multi-core CPU programming and many-core "massively parallel" computing. Using threads, OpenMP, MPI, CUDA and other state-of-the-art tools, the book teaches the design and development of software capable of taking advantage of modern computing platforms that incorporate CPUs, GPUs and other accelerators. Presenting material refined over more than two decades of teaching parallel computing, author Gerassimos Barlas minimizes the challenge of transitioning from sequential programming to mastering parallel platforms with multiple examples, extensive case studies, and full source code. By using this book, readers will better understand how to develop programs that run over distributed memory machines using MPI, create multi-threaded applications with either libraries or directives, write optimized applications that balance the workload between available computing resources, and profile and debug programs targeting parallel machines.