Principles of Programming Languages
In this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, mutable state, exceptions, objects and classes, and types. We also study language implementations, both through language interpreters and language compilers. Throughout the book we write small interpreters for toy languages, and in Chapter 8 we write a principled compiler. We define type checkers to define which programs are well-typed and which are not. We also take a more precise, mathematical view of interpreters and type checkers, via the concepts of operational semantics and type systems. These last two concepts have historically evolved from the logician's view of programming.
The material has evolved from lecture notes used in a ...
Programming DSLs in Kotlin
Creating your own domain-specific languages (DSLs) is both challenging and exhilarating. DSLs give users a way to interact with your applications more effectively, and Kotlin is a fantastic language to serve as a host for internal DSLs, because it greatly reduces the pain and effort of design and development. But implementing DSLs on top of Kotlin requires understanding the key strengths of the language and knowing how to apply them appropriately. Learn to avoid the pitfalls and leverage the language while creating your own elegant, fluent, concise, and robust DSLs using Kotlin.
Internal DSLs remove the burdens of implementing a full blown language compiler. The host language quickly becomes your ally to creating DSLs, but the syntax you can choose for your DSLs is limited to what the host language allows. You can work around the limitations by tactfully bending the rules and exploiting the language capabilities. Learn the power of Kotlin and ways to design with it, in the context o ...
A Common-Sense Guide to Data Structures and Algorithms, 2nd Edition
If you thought that data structures and algorithms were all just theory, you're missing out on what they can do for your code. Learn to use Big O Notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. This new edition features practice exercises in every chapter, and new chapters on topics such as dynamic programming and heaps and tries. Get the hands-on info you need to master data structures and algorithms for your day-to-day work.
Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenari ...
Programming iOS 14
If you're grounded in the basics of Swift, Xcode, and the Cocoa framework, this book provides a structured explanation of all essential real-world iOS app components. Through deep exploration and copious code examples, you'll learn how to create views, manipulate view controllers, and add features from iOS frameworks.
Create, arrange, draw, layer, and animate views that respond to touch; Use view controllers to manage multiple screens of interface; Master interface classes for scroll views, table views, collection views, text, popovers, split views, web views, and controls; Dive into frameworks for sound, video, maps, and sensors; Access user libraries: music, photos, contacts, and calendar; Explore additional topics, including files, networking, and threads.
Stay up-to-date on iOS 14 innovations, such as: Control action closures and menus; Table view cell configuration objects; Collection view lists and outlines; New split view controller architecture; Pointer customization on i ...
iOS 14 Programming Fundamentals with Swift
Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode 12 IDE, Cocoa Touch, and the latest version of Apple's acclaimed programming language, Swift 5.3. With this thoroughly updated guide, you'll learn the Swift language, understand Apple's Xcode development tools, and discover the Cocoa framework.
Become familiar with built-in Swift types; Dive deep into Swift objects, protocols, and generics; Tour the life cycle of an Xcode project; Learn how nibs are loaded; Understand Cocoa's event-driven design; Communicate with C and Objective-C.
In this edition, catch up on the latest iOS programming features: Multiple trailing closures; Code editor document tabs; New Simulator features; Resources in Swift packages; Logging and testing improvements; And more! ...
Options and Derivatives Programming in C++20, 2nd Edition
Master the features of C++ that are frequently used to write financial software for options and derivatives, including the STL, templates, functional programming and numerical libraries. This book also covers new features introduced in C++20 and other recent standard releases: modules, concepts, spaceship operators, and smart pointers.
You will explore how-to examples covering all the major tools and concepts used to build working solutions for quantitative finance. These include advanced C++ concepts as well as the basic building libraries used by modern C++ developers, such as the STL and Boost, while also leveraging knowledge of object-oriented and template-based programming. Options and Derivatives Programming in C++ provides a great value for readers who are trying to use their current programming knowledge in order to become proficient in the style of programming used in large banks, hedge funds, and other investment institutions. The topics covere ...
The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era - covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems.
Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience.
You'll learn: How to identify and handle undefined behavior in a C program; The range and representations of integers and floating-point values; How dynamic memor ...
Beginning Ada Programming
Discover the Ada programming language by being gently guided through the various parts of the language and its latest available stable release. The goal in this book is to slowly ease you into the different topics. It is understood that you do not always have ample free time, so the text is easy to digest and concepts are spoon fed to the reader.
Starting with the simplest of topics, detailed explanations demonstrate the how and why of Ada. You are strongly encouraged to experiment and break things (without which the learning process is linear and quite dull). At the end of Beginning Ada Programming you will have an excellent understanding of the general topics that make up the Ada programming language and can tackle far more challenging topics.
Each chapter builds on what was previously described. Furthermore, each code example is independent of others and will run all by itself. Instructions are provided where you can obtain an Ada compiler and how to deb ...
Modern Programming Made Easy, 2nd Edition
Get up and running fast with the basics of programming using Java as an example language. This short book gets you thinking like a programmer in an easy and entertaining way. Modern Programming Made Easy teaches you basic coding principles, including working with lists, sets, arrays, and maps; coding in the object-oriented style; and writing a web application.
Hands-On C++ Game Animation Programming
Animation is one of the most important parts of any game. Modern animation systems work directly with track-driven animation and provide support for advanced techniques such as inverse kinematics (IK), blend trees, and dual quaternion skinning.
This book will walk you through everything you need to get an optimized, production-ready animation system up and running, and contains all the code required to build the animation system. You'll start by learning the basic principles, and then delve into the core topics of animation programming by building a curve-based skinned animation system. You'll implement different skinning techniques and explore advanced animation topics such as IK, animation blending, dual quaternion skinning, and crowd rendering. The animation system you will build following this book can be easily integrated into your next game development project. The book is intended to be read from start to finish, although each chapter is self-contained and can be read ...
Effective AWK Programming, 5th Edition
When processing text files, the awk language is ideal for handling data extraction, reporting, and data-reformatting jobs. This practical guide serves as both a reference and tutorial for POSIX-standard awk and for the GNU implementation, called gawk. This book is useful for novices and awk experts alike.
In this thoroughly revised 5th edition, author and gawk lead developer Arnold Robbins describes the awk language and gawk program in detail, shows you how to use awk and gawk for problem solving, and then dives into specific features of gawk. System administrators, programmers, webmasters, and other power users will find everything they need to know about awk and gawk. ...