![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > Computer programming > Programming languages
Level up your skills by taking advantage of Clojure's powerful macro system. Macros make hard things possible and normal things easy. They can be tricky to use, and this book will help you deftly navigate the terrain. You'll discover how to write straightforward code that avoids duplication and clarifies your intentions. You'll learn how and why to write macros. You'll learn to recognize situations when using a macro would (and wouldn't!) be helpful. And you'll use macros to remove unnecessary code and build new language features. Clojure offers some sharp tools in its toolbox, and one of the sharpest is its macro system. This book will help you write macros using Clojure, and more importantly, recognize when you should be using macros in the first place. The Lisp "code-as-data" philosophy gives tremendous advantages to macro authors and users. You can use macros to evaluate code in other contexts, move computations to compile time, and create beautiful API layers. You don't need to wait on the Clojure language itself to add new features, you'll learn how to implement even the lowest-level features as macros. You'll step through representative samples of how to use macros in production libraries and applications, find clear details on how to construct macros, and learn pointers to avoid obstacles that often trip up macro amateurs. Clojure macros are more straightforward to use than metaprogramming features in many other languages, but they're different enough from normal programming to present challenges of their own. Mastering Clojure Macros examines some of these issues, along with alternatives to macros where they exist. By the time you finish this book, you'll be thinking like a macro professional. What You Need: The book examples have been developed under Clojure 1.6.0, although earlier and later versions of Clojure may work as well. You'll want to use Leiningen 2.x in order to follow along with the examples that use external projects.
Floating-point arithmetic is the most widely used way of implementing real-number arithmetic on modern computers. However, making such an arithmetic reliable and portable, yet fast, is a very difficult task. As a result, floating-point arithmetic is far from being exploited to its full potential. This handbook aims to provide a complete overview of modern floating-point arithmetic. So that the techniques presented can be put directly into practice in actual coding or design, they are illustrated, whenever possible, by a corresponding program. The handbook is designed for programmers of numerical applications, compiler designers, programmers of floating-point algorithms, designers of arithmetic operators, and more generally, students and researchers in numerical analysis who wish to better understand a tool used in their daily work and research.
This book constitutes the refereed proceedings of the 6th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z, ABZ 2016, held in Southampton, UK, in June 2018. The 20 full and 11 short papers presented in this volume were carefully reviewed and selected from 60 submissions. They record the latest research developments in state-based formal methods Abstract State Machines, Alloy, B, Circus, Event-B, TLS+, VDM and Z.
The two-book set LNCS 10205 + 10206 constitutes the proceedings of the 23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2017, which took place in Uppsala, Sweden in April 2017, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017.The 48 full papers, 4 tool demonstration papers, and 12 software competition papers presented in these volumes were carefully reviewed and selected from 181 submissions to TACAS and 32 submissions to the software competition. They were organized in topical sections named: verification techniques; learning; synthesis; automata; concurrency and bisimulation; hybrid systems; security; run-time verification and logic; quantitative systems; SAT and SMT; and SV COMP.
Bringing together idiomatic Python programming, foundational numerical methods, and physics applications, this is an ideal standalone textbook for courses on computational physics. All the frequently used numerical methods in physics are explained, including foundational techniques and hidden gems on topics such as linear algebra, differential equations, root-finding, interpolation, and integration. The second edition of this introductory book features several new codes and 140 new problems (many on physics applications), as well as new sections on the singular-value decomposition, derivative-free optimization, Bayesian linear regression, neural networks, and partial differential equations. The last section in each chapter is an in-depth project, tackling physics problems that cannot be solved without the use of a computer. Written primarily for students studying computational physics, this textbook brings the non-specialist quickly up to speed with Python before looking in detail at the numerical methods often used in the subject.
For courses in Java Programming. Effective step-by-step Java education Building Java Programs: A Back to Basics Approach introduces new concepts and syntax using a spiral approach, ensuring students are thoroughly prepared as they work through CS1 material. Through the first four editions, Building Java Programs and its back-to-basics approach have proven remarkably effective. The 5th Edition has been extensively updated with incorporation of JShell integration, improved loop coverage, rewritten and revised case studies, examples, updated collection syntax and idioms, expanded self-check and programming exercising sections, and new programming projects. Also available with MyLab Programming MyLab (TM) is the teaching and learning platform that empowers you to reach every student. By combining trusted author content with digital tools and a flexible platform, MyLab personalizes the learning experience and improves results for each student.With MyLab Programming, students work through hundreds of short, auto-graded coding exercises and receive immediate and helpful feedback based on their work. If you would like to purchase both the physical text and MyLab Programming, search for: 0135862353 / 9780135862353 Building Java Programs: A Back to Basics Approach Plus MyLab Programming with Pearson eText -- Access Card Package, 5/e Package consists of: 0135472466 / 9780135472460 MyLab Programming Standalone Access Card 013547194X / 9780135471944 Building Java Programs: A Back to Basics Approach
Gain the basics of Ruby's map, reduce, and select functions and discover how to use them to solve data-processing problems. This compact hands-on book explains how you can encode certain complex programs in 10 lines of Ruby code, an astonishingly small number. You will walk through problems and solutions which are effective because they use map, reduce, and select. As you read Ruby Data Processing, type in the code, run the code, and ponder the results. Tweak the code to test the code and see how the results change. After reading this book, you will have a deeper understanding of how to break data-processing problems into processing stages, each of which is understandable, debuggable, and composable, and how to combine the stages to solve your data-processing problem. As a result, your Ruby coding will become more efficient and your programs will be more elegant and robust. What You Will Learn Discover Ruby data processing and how to do it using the map, reduce, and select functions Develop complex solutions including debugging, randomizing, sorting, grouping, and more Reverse engineer complex data-processing solutions Who This Book Is For Those who have at least some prior experience programming in Ruby and who have a background and interest in data analysis and processing using Ruby.
Enter a world of hardcore back-end, server-side enterprise programming on the .NET platform. This book presents some of the important aspects of the C++/CLI language that often become a barrier preventing programmers from exploring further. The C++/CLI Primer is a powerful but compact book that will guide you through that barrier. Many of today's complex transactions and enterprise applications count on C++/CLI. Visual Studio 2015 and earlier versions support C++/CLI if you program using an IDE. C++/CLI is unattractive, clumsy, and hard when compared to other modern languages that run on the .NET platform. That's because it is powerful. Like light that can be viewed as a wave or particle, C++/CLI can be exercised as an unmanaged or managed or actually as the sandwich language to do mixed mode programming, which is its real power. That's also why it is unique. What You'll Learn Discover C++/CLI and why is it used in .NET programming Work with types, primitive types, object creation, and managed and abstract classes Use abstract classes in C++/CLI Harness the power of nullptre Implement code that uses boxing/unboxing Use equality/identity, properties, enums, strings, arrays, and more Who This Book Is For Experienced Microsoft .NET application developers, familiar with .NET framework and C++.
Quickly obtain solutions to common Java image processing problems, learn best practices, and understand everything OpenCV has to offer for image processing. You will work with a JVM image wrapper to make it very easy to run image transformation through pipelines and obtain instant visual feedback. This book makes heavy use of the Gorilla environment where code can be executed directly in the browser, and image transformation results can also be visualized directly in the browser. Java Image Processing Recipes includes recipes on more advanced image manipulation techniques, such as image smoothing, cartooning, sketching, and mastering masks to apply changes only to parts of the image. You'll see how OpenCV features provide instant solutions to problems such as edges detection and shape finding. Finally, the book contains practical recipes dealing with webcams and various video streams, giving you ready-made code with which to do real-time video analysis. What You Will Learn Create your personal real-time image manipulation environment Manipulate image characteristics with OpenCV Work with the Origami image wrapper Apply manipulations to webcams and video streams Who This Book Is For Developers that want to manipulate images and use other advanced imaging techniques, through code running in the JVM.
This book constitutes the refereed proceedings of the 4th International Conference on Tools and Methods for Program Analysis, TMPA 2017, Moscow, Russia, March 3-4, 2017. The 12 revised full papers and 5 revised short papers presented together with three abstracts of keynote talks were carefully reviewed and selected from 51 submissions. The papers deal with topics such as software test automation, static program analysis, verification, dynamic methods of program analysis, testing and analysis of parallel and distributed systems, testing and analysis of high-load and high-availability systems, analysis and verification of hardware and software systems, methods of building quality software, tools for software analysis, testing and verification.
Prepare for Microsoft Certification Exam 70-483: Programming in C#. The "What, Why, and How" of each concept is presented along with quick summaries, code challenges, and exam questions to review and practice key concepts. You will learn how to use: Lambda expressions to write LINQ query expressions Asynchronous programming with the Async and Await keywords to maximize performance of slow applications Regular expressions to validate user input Reflection to create and handle types at runtime and much more The source code in the book will be available in the form of iCanCSharp notebooks and scripts that allow you to try out examples and extend them in interesting ways. What You Will Learn Understand the necessary knowledge and skill set to prepare for Microsoft Exam 70-483 Study the code challenges and practice questions on C# that are relevant to the exam Master the C# programming language Who This Book Is For Experienced C# and .NET programmers and developers who are ready to take and pass the exam in order to get certified
Learn to write test-driven microservices, REST APIs, and web service APIs with PHP using the Lumen micro-framework, from the now popular Laravel family. This book shows you how testing APIs can help you write bullet-proof web application services and microservices. In the Lumen Programming Guide you will learn how to use Lumen-a micro-framework by Laravel-to write bullet-proof APIs. Lumen helps you write productive, maintainable APIs using modern application design. You will learn how to write fully-tested APIs and understand essential Lumen concepts used to build a solid foundation for writing API projects. What You Will Learn Maintain your API's database structure through built-in database migrations Write tests with factory data in a test database Respond with consistent data output in JSON Deal with PHP exceptions by using JSON responses Create, read, update, and delete REST resources Represent model associations in API responses Build a solid foundation for writing tests with PHPUnit and Mockery Validate data Who This Book Is For PHP developers with no Laravel experience. Only a basic understanding of HTTP and writing PHP applications is needed to get started.
This book constitutes the refereed post-conference proceedings of the 4th International Workshop on Accelerator Programming Using Directives, WACCPD 2017, held in Denver, CO, USA, in November 2017. The 9 full papers presented have been carefully reviewed and selected from 14 submissions. The papers share knowledge and experiences to program emerging complex parallel computing systems. They are organized in the following three sections: applications; environments; and program evaluation.
This text develops a comprehensive theory of programming languages based on type systems and structural operational semantics. Language concepts are precisely defined by their static and dynamic semantics, presenting the essential tools both intuitively and rigorously while relying on only elementary mathematics. These tools are used to analyze and prove properties of languages and provide the framework for combining and comparing language features. The broad range of concepts includes fundamental data types such as sums and products, polymorphic and abstract types, dynamic typing, dynamic dispatch, subtyping and refinement types, symbols and dynamic classification, parallelism and cost semantics, and concurrency and distribution. The methods are directly applicable to language implementation, to the development of logics for reasoning about programs, and to the formal verification language properties such as type safety. This thoroughly revised second edition includes exercises at the end of nearly every chapter and a new chapter on type refinements.
This course-tested textbook describes the design and implementation of operating systems, and applies it to the MTX operating system, a Unix-like system designed for Intel x86 based PCs. Written in an evolutional style, theoretical and practical aspects of operating systems are presented as the design and implementation of a complete operating system is demonstrated. Throughout the text, complete source code and working sample systems are used to exhibit the techniques discussed. The book contains many new materials on the design and use of parallel algorithms in SMP. Complete coverage on booting an operating system is included, as well as, extending the process model to implement threads support in the MTX kernel, an init program for system startup and a sh program for executing user commands. Intended for technically oriented operating systems courses that emphasize both theory and practice, the book is also suitable for self-study.
This book gives developers - both the experienced and those who have only taken their first few steps - a small, fast-paced primer that will kick-start them into the world of C++/CLI. In twenty no-fluff chapters Microsoft insiders take readers into the heart of the C++/CLI language and explain both how the language elements work and how Microsoft intends them to be used. At the end of this short book readers will have a deep thorough grounding in the core language elements and the confidence to explore further that comes from a solid understanding of a language's syntax and grammar.
Arising from a special session held at the 2010 North American Annual Meeting of the Association for Symbolic Logic, this volume is an international cross-disciplinary collaboration with contributions from leading experts exploring connections across their respective fields. Themes range from philosophical examination of the foundations of physics and quantum logic, to exploitations of the methods and structures of operator theory, category theory, and knot theory in an effort to gain insight into the fundamental questions in quantum theory and logic. The book will appeal to researchers and students working in related fields, including logicians, mathematicians, computer scientists, and physicists. A brief introduction provides essential background on quantum mechanics and category theory, which, together with a thematic selection of articles, may also serve as the basic material for a graduate course or seminar.
Diagramming and process are important topics in today's software development world, as the UML diagramming language has come to be almost universally accepted. Yet process is necessary; by themselves, diagrams are of little use. Use Case Driven Object Modeling with UML - Theory and Practice combines the notation of UML with a lightweight but effective process - the ICONIX process - for designing and developing software systems. ICONIX has developed a growing following over the years. Sitting between the free-for-all of Extreme Programming and overly rigid processes such as RUP, ICONIX offers just enough structure to be successful.
This book constitutes the proceedings of the 12th European Conference on Modelling Foundations and Applications, ECMFA 2016, held as part of STAF 2016, in Vienna, Austria, in July 2016. The 16 papers presented in this volume were carefully reviewed and selected from 47 submissions. The committee decided to accept 16 papers, 12 papers for the Foundations Track and 4 papers for the Applications Track. Papers on a wide range of MBE aspects were accepted, including topics such as multi- and many models, language engineering, UML and meta-modeling, experience reports and case studies, and variability and uncertainty.
Quickly find solutions to dozens of common programming problems encountered while building Java applications, with recipes presented in the popular problem-solution format. Look up the programming problem that you want to resolve. Read the solution. Apply the solution directly in your own code. Problem solved! Java 17 Recipes is updated to reflect changes in specification and implementation since the Java 9 edition of this book. Java 17 is the next long-term support release (LTS) of the core Java Standard Edition (SE) version 17 which also includes some of the features from previous short term support (STS) releases of Java 16 and previous versions. This new edition covers of some of the newest features, APIs, and more such as pattern matching for switch, Restore Always-Strict-Floating-Point-Semantics, enhanced pseudo-random number generators, the vector API, sealed classes, and enhancements in the use of String. Source code for all recipes is available in a dedicated GitHub repository. This must-have reference belongs in your library. What You Will Learn Look up solutions to everyday problems involving Java SE 17 LTS and other recent releases Develop Java SE applications using the latest in Java SE technology Incorporate Java major features introduced in versions 17, 16, and 15 into your code Who This Book Is For Programmers and developers with some prior Java experience.
Threats to application security continue to evolve just as quickly as the systems that protect against cyber-threats. In many instances, traditional firewalls and other conventional controls can no longer get the job done. The latest line of defense is to build security features into software as it is being developed. Drawing from the author's extensive experience as a developer, Secure Software Development: Assessing and Managing Security Risks illustrates how software application security can be best, and most cost-effectively, achieved when developers monitor and regulate risks early on, integrating assessment and management into the development life cycle. This book identifies the two primary reasons for inadequate security safeguards: Development teams are not sufficiently trained to identify risks; and developers falsely believe that pre-existing perimeter security controls are adequate to protect newer software. Examining current trends, as well as problems that have plagued software security for more than a decade, this useful guide: Outlines and compares various techniques to assess, identify, and manage security risks and vulnerabilities, with step-by-step instruction on how to execute each approach Explains the fundamental terms related to the security process Elaborates on the pros and cons of each method, phase by phase, to help readers select the one that best suits their needs Despite decades of extraordinary growth in software development, many open-source, government, regulatory, and industry organizations have been slow to adopt new application safety controls, hesitant to take on the added expense. This book improves understanding of the security environment and the need for safety measures. It shows readers how to analyze relevant threats to their applications and then implement time- and money-saving techniques
If you have a working knowledge of Haskell, this hands-on book shows you how to use the language's many APIs and frameworks for writing both parallel and concurrent programs. You'll learn how parallelism exploits multicore processors to speed up computation-heavy programs, and how concurrency enables you to write programs with threads for multiple interactions. Author Simon Marlow walks you through the process with lots of code examples that you can run, experiment with, and extend. Divided into separate sections on Parallel and Concurrent Haskell, this book also includes exercises to help you become familiar with the concepts presented: Express parallelism in Haskell with the Eval monad and Evaluation Strategies Parallelize ordinary Haskell code with the Par monad Build parallel array-based computations, using the Repa library Use the Accelerate library to run computations directly on the GPU Work with basic interfaces for writing concurrent code Build trees of threads for larger and more complex programs Learn how to build high-speed concurrent network servers Write distributed programs that run on multiple machines in a network
* Targests readers with a background in programming, interested in an introduction/refresher in statistical hypothesis testing * Uses Python throughout * Provides the reader with the opportunity of using the book whenever needed rather than following a sequential path.
This short early adopter book details both how you'll upgrade existing web applications from Rails 4.2 to 5 and how to create new applications in Rails 5. The headline features, Rails API and Action Cable are each looked at in detail, building small example projects to demonstrate how to build a JSON API and add real-time interactions in order to create a single-page application. All the breaking changes are shown, along with how to fix your app to work with the new release. The improvements to ActiveRecord and the testing framework are fully detailed. After reading and using Rails 5 Revealed, you'll be poised to move forward with building your apps with the latest major release of Ruby on Rails. What You'll Learn Discover the new features in Rails 5 and how to upgrade your application from Rails 4.2 Gain knowledge about the changes to ActiveRecord See the improvements to the Rails testing framework Build API servers using Rails API Create WebSocket applications using Action Cable Who This Book Is For Existing Rails developers who are looking to quickly get up to speed with the changes in the new Rails 5 framework.
Software is pervasive in our lives. We are accustomed to dealing with the failures of much of that software - restarting an application is a very familiar solution. Such solutions are unacceptable when the software controls our cars, airplanes and medical devices or manages our private information. These applications must run without error. SPARK provides a means, based on mathematical proof, to guarantee that a program has no errors. SPARK is a formally defined programming language and a set of verification tools specifically designed to support the development of software used in high integrity applications. Using SPARK, developers can formally verify properties of their code such as information flow, freedom from runtime errors, functional correctness, security properties and safety properties. Written by two SPARK experts, this is the first introduction to the just-released 2014 version. It will help students and developers alike master the basic concepts for building systems with SPARK. |
You may like...
Smart Sensors and MEMS - Intelligent…
S. Nihtianov, A. Luque
Paperback
ZnO Nanocrystals and Allied Materials
M S Ramachandra Rao, Tatsuo Okada
Hardcover
Apache HTTP Server Documentation Version…
Apache Software Foundation
Hardcover
R1,660
Discovery Miles 16 600
Quadrupoles in Electron Lens Design…
Martin Hytch, Peter W. Hawkes
Hardcover
R5,223
Discovery Miles 52 230
|