Lecture Slides for the Clang Libraries [LLVM/Clang 15] (Edition 0.1.0)

Lecture Slides for the Clang Libraries [LLVM/Clang 15] (Edition 0.1.0) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 199070705X
Category : Computers
Languages : en
Pages : 419

Book Description


Lecture Slides for the Clang Libraries (Edition 0.2.0)

Lecture Slides for the Clang Libraries (Edition 0.2.0) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1990707068
Category : Computers
Languages : en
Pages : 424

Book Description


Lecture Slides for the Clang Libraries (Edition 0.0)

Lecture Slides for the Clang Libraries (Edition 0.0) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1990707041
Category : Computers
Languages : en
Pages : 296

Book Description


Lecture Slides for Programming in C++ (Version 2020-02-29)

Lecture Slides for Programming in C++ (Version 2020-02-29) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1550586645
Category : Computers
Languages : en
Pages : 2543

Book Description
This document, which consists of approximately 2500 lecture slides, offers a wealth of information on many topics relevant to programming in C++, including coverage of the C++ language itself, the C++ standard library and a variety of other libraries, numerous software tools, and an assortment of other programming-related topics. The coverage of the C++ language and standard library is current with the C++17 standard.

Lecture Slides for Programming in C++ (Version 2017-02-24)

Lecture Slides for Programming in C++ (Version 2017-02-24) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1550586092
Category :
Languages : en
Pages : 1139

Book Description
This document constitutes a detailed set of lecture slides on programming using the C++ programming language. The topics covered are quite broad, including the history of C++, the C++ language itself, the C++ standard library and various other libraries, and software tools, as well as numerous other programming-related topics. Coverage of C++ is current with the C++14 standard. Many aspects of the C++ language are covered from introductory to more advanced. This material includes: language basics (objects, types, values, operators, expressions, control-flow constructs, functions, and namespaces), classes, templates (function, class, alias, and variable templates; template specialization; and variadic templates), lambda expressions, inheritance and run-time polymorphism, exceptions (exception safety, RAII, and smart pointers), rvalue references (move semantics and perfect forwarding), concurrency (sequential consistency, atomic memory operations, data races; threads, mutexes, condition variables, promises and futures, atomics, and fences; happens-before and synchronizes-with relationships; and sequentially-consistent and other memory models). A number of best practices, tips, and idioms regarding the use of the language are also presented. Some aspects of the C++ standard library are covered, including: containers, iterators, and algorithms; the std::vector and std::basic_string classes; I/O streams; time measurement; and smart pointers. Various general programming-related topics are also presented, such as material on: good programming practices, finite-precision arithmetic, software documentation, software build tools (such as CMake and Make), and version control systems (such as Git).

Signals and Systems (Edition 5.0)

Signals and Systems (Edition 5.0) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1990707009
Category : Technology & Engineering
Languages : en
Pages : 748

Book Description
This book is intended for use in teaching undergraduate courses on continuous-time and/or discrete-time signals and systems in engineering (and related) disciplines. It provides a detailed introduction to continuous-time and discrete-time signals and systems, with a focus on both theory and applications. The mathematics underlying signals and systems is presented, including topics such as: signal properties, elementary signals, system properties, continuous-time and discrete-time linear time-invariant systems, convolution, continuous-time and discrete-time Fourier series, the continuous-time and discrete-time Fourier transforms, frequency spectra, and the bilateral and unilateral Laplace and z transforms. Applications of the theory are also explored, including: filtering, equalization, amplitude modulation, sampling, feedback control systems, circuit analysis, Laplace-domain techniques for solving differential equations, and z-domain techniques for solving difference equations. Other supplemental material is also included, such as: a detailed introduction to MATLAB, a review of complex analysis, an introduction to partial fraction expansions, an exploration of time-domain techniques for solving differential equations, and information on online video-lecture content for material covered in the book. Throughout the book, many worked-through examples are provided. Problem sets are also provided for each major topic covered.

Lecture Slides for the C++ Programming Language (Version: 2016-01-18)

Lecture Slides for the C++ Programming Language (Version: 2016-01-18) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1550585835
Category :
Languages : en
Pages : 903

Book Description
This document constitutes a detailed set of lecture slides on the C++ programming language and is current with the C++14 standard. Many aspects of the language are covered from introductory to more advanced. This material includes: language basics (objects, types, values, operators, expressions, control-flow constructs, functions, and namespaces), classes, templates (function, class, alias, and variable templates; template specialization; and variadic templates), lambda expressions, inheritance and run-time polymorphism, exceptions (exception safety, RAII, and smart pointers), rvalue references (move semantics and perfect forwarding), concurrency (sequential consistency, atomic memory operations, data races; threads, mutexes, condition variables, promises and futures, atomics, and fences; happens-before and synchronizes-with relationships; and sequentially-consistent and other memory models). A number of best practices, tips, and idioms regarding the use of the language are also presented. Some aspects of the C++ standard library are covered, including: containers, iterators, and algorithms; the std::vector and std::basic_string classes; I/O streams; and time measurement. Various general programming-related topics are also presented, such as material on: good programming practices, finite-precision arithmetic, and software documentation.

Getting Started with LLVM Core Libraries

Getting Started with LLVM Core Libraries PDF Author: Bruno Cardoso Lopes
Publisher: Packt Publishing Ltd
ISBN: 1782166939
Category : Computers
Languages : en
Pages : 314

Book Description
This book is intended for enthusiasts, computer science students, and compiler engineers interested in learning about the LLVM framework. You need a background in C++ and, although not mandatory, should know at least some compiler theory. Whether you are a newcomer or a compiler expert, this book provides a practical introduction to LLVM and avoids complex scenarios. If you are interested enough and excited about this technology, then this book is definitely for you.

Exercises for Programming in C++ (Version 2021-04-01)

Exercises for Programming in C++ (Version 2021-04-01) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 098791975X
Category : Computers
Languages : en
Pages : 162

Book Description
This book presents a large collection of exercises for learning to program in C++. A study plan for learning C++ based on a collection of video lectures and supplemental reading is also provided.

LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries

LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries PDF Author: Min-Yih Hsu
Publisher: Packt Publishing Ltd
ISBN: 1838829725
Category : Computers
Languages : en
Pages : 370

Book Description
Learn how you can build the next big programming language, compiler, or source code analyzer using LLVM and Clang Key FeaturesExplore Clang, LLVM’s middle-end and backend, in a pragmatic wayDevelop your LLVM skillset and get to grips with a variety of common use casesEngage with real-world LLVM development through various coding examplesBook Description Every programmer or engineer, at some point in their career, works with compilers to optimize their applications. Compilers convert a high-level programming language into low-level machine-executable code. LLVM provides the infrastructure, reusable libraries, and tools needed for developers to build their own compilers. With LLVM’s extensive set of tooling, you can effectively generate code for different backends as well as optimize them. In this book, you’ll explore the LLVM compiler infrastructure and understand how to use it to solve different problems. You’ll start by looking at the structure and design philosophy of important components of LLVM and gradually move on to using Clang libraries to build tools that help you analyze high-level source code. As you advance, the book will show you how to process LLVM IR – a powerful way to transform and optimize the source program for various purposes. Equipped with this knowledge, you’ll be able to leverage LLVM and Clang to create a wide range of useful programming language tools, including compilers, interpreters, IDEs, and source code analyzers. By the end of this LLVM book, you’ll have developed the skills to create powerful tools using the LLVM framework to overcome different real-world challenges. What you will learnFind out how LLVM’s build system works and how to reduce the building resourceGet to grips with running custom testing with LLVM’s LIT frameworkBuild different types of plugins and extensions for ClangCustomize Clang’s toolchain and compiler flagsWrite LLVM passes for the new PassManagerDiscover how to inspect and modify LLVM IRUnderstand how to use LLVM’s profile-guided optimizations (PGO) frameworkCreate custom compiler sanitizersWho this book is for This book is for software engineers of all experience levels who work with LLVM. If you are an academic researcher, this book will help you learn useful LLVM skills in a short time and enable you to build your prototypes and projects quickly. Programming language enthusiasts will also find this book useful for building a new programming language with the help of LLVM.