Certified Programming with Dependent TypesThe technology of mechanized program verification can play a supporting role in many kinds of research projects in computer science, and related tools for formal proof-checking are seeing increasing adoption in mathematics and engineering. This book provides an introduction to the Coq software for writing and checking mathematical proofs. It takes a practical engineering focus throughout, emphasizing techniques that will help users to build, understand, and maintain large Coq developments and minimize the cost of code change over time.
Two topics, rarely discussed elsewhere, are covered in detail: effective dependently typed programming (making productive use of a feature at the heart of the Coq system) and construction of domain-specific proof tactics. Almost every subject covered is also relevant to interactive computer theorem proving in general, not just program verification, demonstrated through examples of verified programs applied in many different sorts of formalizations. Th ...
The Unix WorkbenchLearning the command line can be a difficult and intimidating task, but this book is designed to be your lighthouse in the modern computational storm. Unix is a 40 year old operating system that powers the internet, your phone, and the latest scientific research. This book aims to be a gateway to the world of computer programming, providing you with a set of tools that will allow you to scale your ideas. Even if you have no prior programming experience The Unix Workbench can help you build a solid foundation which you can use to build the next great business, discover a new innovation, or choreograph a ovation-inducing ballet.
This book begins by helping you get access to Unix, followed by an introduction to how you can use the command line to navigate your computer just like you normally would with your mouse and keyboard. We will then discuss more advanced topics including how to do complex searches with regular expressions, how to configure your programming environment, and how t ...
The Little Book of SemaphoresThe Little Book of Semaphores is a free textbook that introduces the principles of synchronization for concurrent programming.
In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.
The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.
The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invite ...
PHP 8 RevealedDiscover the new and updated features of PHP 8, such as the JIT compiler, union types, and attributes, with code examples of each. For each feature, the author includes real-life cases for its use and explains its benefits.
Utilize the new features of PHP 8 and modern development technologies; Work with the JIT compiler in PHP 8; Discover PHP 8 using real-life cases; Increase your available resources to become more valuable in your development team. ...
Modern C for Absolute BeginnersLearn the C programming language easily and in a straightforward way. This book teaches the basics of C, the C Standard Library, and modern C standards. No previous programming experience is required.
C is a language that is as popular today as it was decades ago. C covers a wide variety of domains. It can be used to program a microcontroller, or to develop an entire operating system. This book is an effort to introduce the reader to the C programming language in a concise and easy to follow manner.
The author takes you through the C programming language, the Standard Library, and the C standards basics. Each chapter is the right balance of theory and code examples.
After reading and using this book, you'll have the essentials to start programming in modern C. ...
The Linux Commands HandbookThe Linux Commands Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic. The author find this approach gives a well-rounded overview.
This book does not try to cover everything under the sun related to Linux and its commands. It focuses on the small core commands that you will use the 80% or 90% of the time, trying to simplify the usage of the more complex ones. All those commands work on Linux, macOS, WSL, and anywhere you have a UNIX environment. The author hopes the contents of this book will help you achieve what you want: get comfortable with Linux. ...
Flow ArchitecturesSoftware development today is embracing events and streaming data, which optimizes not only how technology interacts but also how businesses integrate with one another to meet customer needs. This phenomenon, called flow, consists of patterns and standards that determine which activity and related data is communicated between parties over the internet.
This book explores critical implications of that evolution: What happens when events and data streams help you discover new activity sources to enhance existing businesses or drive new markets? What technologies and architectural patterns can position your company for opportunities enabled by flow? James Urquhart, global field CTO at VMware, guides enterprise architects, software developers, and product managers through the process.
Learn the benefits of flow dynamics when businesses, governments, and other institutions integrate via events and data streams; Understand the value chain for flow integration through Wardley mapping vi ...
The Node.js HandbookNode.js is built on top of the Google Chrome V8 JavaScript engine, and it's mainly used to create web servers - but it's not limited to that.
The Node.js Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic. The author find this approach gives a well-rounded overview. ...
Building Custom Tasks for SQL Server Integration Services, 2nd EditionBuild custom SQL Server Integration Services (SSIS) tasks using Visual Studio Community Edition and C#. Bring all the power of Microsoft .NET to bear on your data integration and ETL processes, and for no added cost over what you've already spent on licensing SQL Server. New in this edition is a demonstration deploying a custom SSIS task to the Azure Data Factory (ADF) Azure-SSIS Integration Runtime (IR).
All examples in this new edition are implemented in C#. Custom task developers are shown how to implement custom tasks using the widely accepted and default language for .NET development.
Why are custom components necessary? Because even though the SSIS catalog of built-in tasks and components is a marvel of engineering, gaps remain in the available functionality. One such gap is a constraint of the built-in SSIS Execute Package Task, which does not allow SSIS developers to select SSIS packages from other projects in the SSIS Catalog. Examples in this book show how to create a c ...
Patterns in the MachineDiscover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors' experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.
This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today's embedded projects.
After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating ...