![]() |
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 > General
Model-Based Systems Engineering (MBSE), which tackles architecting and design of complex systems through the use of formal models, is emerging as the most critical component of systems engineering. This textbook specifies the two leading conceptual modeling languages, OPM-the new ISO 19450, composed primarily by the author of this book, and OMG SysML. It provides essential insights into a domain-independent, discipline-crossing methodology of developing or researching complex systems of any conceivable kind and size. Combining theory with a host of industrial, biological, and daily life examples, the book explains principles and provides guidelines for architecting complex, multidisciplinary systems, making it an indispensable resource for systems architects and designers, engineers of any discipline, executives at all levels, project managers, IT professional, systems scientists, and engineering students.
Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you'll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You'll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. Metaprogramming is one of Elixir's greatest features. Maybe you've played with the basics or written a few macros. Now you want to take it to the next level. This book is a guided series of metaprogramming tutorials that take you step by step to metaprogramming mastery. You'll extend Elixir with powerful features and write faster, more maintainable programs in ways unmatched by other languages. You'll start with the basics of Elixir's metaprogramming system and find out how macros interact with Elixir's abstract format. Then you'll extend Elixir with your own first-class features, write a testing framework, and discover how Elixir treats source code as building blocks, rather than rote lines of instructions. You'll continue your journey by using advanced code generation to create essential libraries in strikingly few lines of code. Finally, you'll create domain-specific languages and learn when and where to apply your skills effectively. When you're done, you will have mastered metaprogramming, gained insights into Elixir's internals, and have the confidence to leverage macros to their full potential in your own projects.
A fun, hands-on guide to writing your own compiler for a real-world programming language. Compilers are at the heart of everything programmers do, yet even experienced developers find them intimidating. For those eager to truly grasp how compilers work, Writing a C Compiler dispels the mystery. This book guides you through a fun and engaging project where you’ll learn what it takes to compile a real-world programming language to actual assembly code. Writing a C Compiler will take you step by step through the process of building your own compiler for a significant subset of C—no prior experience with compiler construction or assembly code needed. Once you’ve built a working compiler for the simplest C program, you’ll add new features chapter by chapter. The algorithms in the book are all in pseudocode, so you can implement your compiler in whatever language you like. Along the way, you’ll explore key concepts like:
Compilers aren’t terrifying beasts—and with help from this hands-on, accessible guide, you might even turn them into your friends for life.
Python Workout presents 50 exercises designed to deepen the reader's skill with Python. Readers will not only tackle exercises using built-in data structures, but also more advanced techniques, such as functional programming, object-oriented programming, iterators, and generators. With each engaging challenge, readers will practice a new skill and learn how to apply it to everyday coding tasks. Key Features 50 hands-on exercises and solutions Basic Python sequence types Python dictionaries and sets Functional programming in Python Creating your own classes Working with Python objects Generator functions Intended for readers with basic Python skills. About the technology Python is a versatile, elegant, general purpose programming language. Essential for data analysis, web development, artificial intelligence, games, desktop apps, and more, Python skills are a hot commodity. Reuven M. Lerner, an independent consultant for more than two decades, teaches Python, data science, and Git to companies around the world. His Better developers newsletter and blog are read by thousands of Python developers each week. Reuven has written a monthly column, "At the Forge," for Linux Journal since 1996 and is a panellist on the weekly Freelancers Show podcast. Reuven lives with his wife and three children in Modi'in, Israel, and can be reached at https://lerner.co.il/ or on Twitter at @reuvenmlerner.
This work provides a short "getting started" guide to Fortran 90/95. The main target audience consists of newcomers to the field of numerical computation within Earth system sciences (students, researchers or scientific programmers). Furthermore, readers accustomed to other programming languages may also benefit from this work, by discovering how some programming techniques they are familiar with map to Fortran 95. The main goal is to enable readers to quickly start using Fortran 95 for writing useful programs. It also introduces a gradual discussion of Input/Output facilities relevant for Earth system sciences, from the simplest ones to the more advanced netCDF library (which has become a de facto standard for handling the massive datasets used within Earth system sciences). While related works already treat these disciplines separately (each often providing much more information than needed by the beginning practitioner), the reader finds in this book a shorter guide which links them. Compared to other books, this work provides a much more compact view of the language, while also placing the language-elements in a more applied setting, by providing examples related to numerical computing and more advanced Input/Output facilities for Earth system sciences. Naturally, the coverage of the programming language is relatively shallow, since many details are skipped. However, many of these details can be learned gradually by the practitioner, after getting an overview and some practice with the language through this book.
Learn how to program in modern C, from the basics through the advanced topics required for proficiency. This book is the fastest path to C fluency for anyone experienced in a general-purpose programming language. From start to finish, code examples highlight the idioms and best practices behind efficient, robust programs in a variety of areas. The book opens with a thorough coverage of syntax, built-in data types and operations, and program structure. C has quirks and presents challenges, which are covered in detail. The coverage of advanced features is what sets this book apart from others. Among the advanced topics covered are floating-point representation in the IEEE 754 standard; embedded assembly language in C code for overflow detection; regular expressions, assertions, and internationalization; WebAssembly through C; and software libraries for C and other clients. Memory efficiency and safety are the two major challenges in C programming, and you'll explore these challenges through a series of C examples. Arrays and structures, which are the means to high-level data representation, are covered in connection with pointers, which provide efficiency. The book again uses code examples in covering networking and wire-level security; concurrency (multiprocessing and multithreading); instruction-level parallelism; and interprocess communication through shared memory and files, pipes, message queues, and signals. Many books introduce C, but few also explain how to use it properly and optimally. Essential C does just that. What You'll Learn Accelerate your path to C mastery with this book for experienced programmers Refresh your approach to program structure and data types Dive into aggregates and pointers using modern C language Revisit storage classes and scope Dive into concurrency (multiprocessing and multithreading) and instruction-level parallelism Finish with regular expressions, assertions, signals, locales and more Who This Book Is For Professional programmers or software developers who has prior experience with C or in general wanting an accelerated learning guide to modern C programming language.
PHP is gaining positive reputation for its system administration and client-side application development capabilities. This administration and development is accomplished using the PHP-GTK extension. You can take advantage of client-side applications by implementing language bindings for the GTK (the GIMP Toolkit) library for creating cross-platform graphical user interfaces. "Pro PHP-GTK" acts as both a definitive reference and a hands-on tutorial to the PHP-GTK extension. The book couples the extension's key topics with practical examples to guide you through a real-world project: developing a database-driven client-side inventory manager. You'll also learn how to integrate this feature with other emerging technologies like SOAP and RSS, and how to generate XML-based interfaces.
A system for statistical computing and dynamic graphics, based on the LISP language, is described in this book, which shows how to use the system for statistical calculations and graphs. The computations supported range from summary statistics through fitting linear and nonlinear regression models to general maximum likelihood estimation and approximate Bayesian computations. Standard graphs include scatter plots, rotatable plots and scatterplot matrices. No prior knowledge of LISP is assumed; the basics are introduced as they are needed. Several chapters include extensive examples.
Unlike other resources that target only programming communities, this book targets both programming and business communities. With programming models shifting more towards no-code and low-code, citizen programmers from the business side will welcome this book as a guide for how to design and optimize their information pipeline while lowering costs for infrastructure. Programmers, on the other hand, will welcome this book's business-centric programming view, which will get them a step closer to fulfilling real business requirements. Practical Spring Cloud Function touches on the themes of portability, scalability, high performance and high availability. Each theme is explored via a real enterprise use case and code. The use cases target industries including energy (oil pipeline sensors), automotive (event-driven connected vehicles), and retail (conversational AI). After reading this book, you'll come away with the know-how to build and deploy cloud-native Java applications effectively and efficiently. What You Will Learn Write functions and deploy to Amazon Web Services, Microsoft Azure, Google Cloud, IBM Cloud, and on-prem clouds such as VMWare Tanzu and RedHat OpenShift Set up locally with KNative on Kubernetes, as well as on AWS, Azure, GCP, Tanzu, and others Build, test, and deploy a simple example with Spring Cloud Function Develop an event-driven data pipeline with Spring Cloud Function Integrate with AI and machine learning models Apply Spring Cloud Function to the Internet of Things (IoT) Get industry-specific examples of Spring Cloud Function in action Who This Book Is For Software and cloud-native application developers with prior programming experience in the cloud and/or Spring Framework. DevOps professionals may find this book beneficial as well.
Written by two very experienced instructors, with more than thirty years of teaching experience between them; Presents material that is grounded in practical applications that are representative of the problems researchers encounter in real life; Teaches readers the core features of modern JavaScript; Covers programming with callbacks and promises; Describes how to build data services and data visualization;
DLP denotes a dynamic-linear modeling and optimization approach to computational decision support for resource planning problems that arise, typically, within the natural resource sciences and the disciplines of operations research and operational engineering. It integrates techniques of dynamic programming (DP) and linear programming (LP) and can be realized in an immediate, practical and usable way. Simultaneously DLP connotes a broad and very general modeling/ algorithmic concept that has numerous areas of application and possibilities for extension. Two motivating examples provide a linking thread through the main chapters, and an appendix provides a demonstration program, executable on a PC, for hands-on experience with the DLP approach.
This text is intended for a 1-semester CS1 course sequence. The Brief Version contains the first 18 chapters of the Comprehensive Version. The first 13 chapters are appropriate for preparing the AP Computer Science exam. For courses in Java Programming. A fundamentals-first introduction to basic programming concepts and techniques Designed to support an introductory programming course, Introduction to Java Programming and Data Structures, Brief Version teaches concepts of problem-solving and object-orientated programming using a fundamentals-first approach. Beginner programmers learn critical problem-solving techniques then move on to grasp the key concepts of object-oriented, GUI programming, advanced GUI and Web programming using JavaFX. This course approaches Java GUI programming using JavaFX, which has replaced Swing as the new GUI tool for developing cross-platform-rich Internet applications and is simpler to learn and use. The 11th edition has been completely revised to enhance clarity and presentation, and includes new and expanded content, examples, and exercises.
This textbook covers R data analysis related to environmental science, starting with basic examples and proceeding up to advanced applications of the R programming language. The main objective of the textbook is to serve as a guide for undergraduate students, who have no previous experience with R, but part of the textbook is dedicated to advanced R applications, and will also be useful for Masters and PhD students, and professionals. The textbook deals with solving specific programming tasks in R, and tasks are organized in terms of gradually increasing R proficiency, with examples getting more challenging as the chapters progress. The main competencies students will acquire from this textbook are: manipulating and processing data tables performing statistical tests creating maps in R This textbook will be useful in undergraduate and graduate courses in Advanced Landscape Ecology, Analysis of Ecological and Environmental Data, Ecological Modeling, Analytical Methods for Ecologists, Statistical Inference for Applied Research, Elements of Statistical Methods, Computational Ecology, Landscape Metrics and Spatial Statistics.
A practical guide to data mining using SQL and Excel Data Analysis Using SQL and Excel, 2nd Edition shows you how to leverage the two most popular tools for data query and analysis SQL and Excel to perform sophisticated data analysis without the need for complex and expensive data mining tools. Written by a leading expert on business data mining, this book shows you how to extract useful business information from relational databases. You'll learn the fundamental techniques before moving into the "where" and "why" of each analysis, and then learn how to design and perform these analyses using SQL and Excel. Examples include SQL and Excel code, and the appendix shows how non-standard constructs are implemented in other major databases, including Oracle and IBM DB2/UDB. The companion website includes datasets and Excel spreadsheets, and the book provides hints, warnings, and technical asides to help you every step of the way. Data Analysis Using SQL and Excel, 2nd Edition shows you how to perform a wide range of sophisticated analyses using these simple tools, sparing you the significant expense of proprietary data mining tools like SAS. * Understand core analytic techniques that work with SQL and Excel * Ensure your analytic approach gets you the results you need * Design and perform your analysis using SQL and Excel Data Analysis Using SQL and Excel, 2nd Edition shows you how to best use the tools you already know to achieve expert results.
Developed from the author's many years of teaching computing courses, Programming in C++ for Engineering and Science guides students in designing programs to solve real problems encountered in engineering and scientific applications. These problems include radioactive decay, pollution indexes, digital circuits, differential equations, Internet addresses, data analysis, simulation, quality control, electrical networks, data encryption, beam deflection, and many other areas. To make it easier for novices to develop programs, the author uses an object-centered design approach that helps students identify the objects in a problem and the operations needed; develop an algorithm for processing; implement the objects, operations, and algorithm in a program; and test, correct, and revise the program. He also revisits topics in greater detail as the text progresses. By the end of the book, students will have a solid understanding of how C++ can be used to process complex objects, including how classes can be built to model objects. Web ResourceThe book's website at http://cs.calvin.edu/books/c++/engr-sci provides source code, expanded presentations, links to relevant sites, reference materials, lab exercises, and projects. For instructors, solutions to exercises and PowerPoint slides for classroom use are available upon qualifying course adoption.
With multicore processors now in every computer, server, and embedded device, the need for cost-effective, reliable parallel software has never been greater. By explaining key aspects of multicore programming, Fundamentals of Multicore Software Development helps software engineers understand parallel programming and master the multicore challenge. Accessible to newcomers to the field, the book captures the state of the art of multicore programming in computer science. It covers the fundamentals of multicore hardware, parallel design patterns, and parallel programming in C++, .NET, and Java. It also discusses manycore computing on graphics cards and heterogeneous multicore platforms, automatic parallelization, automatic performance tuning, transactional memory, and emerging applications. As computing power increasingly comes from parallelism, software developers must embrace parallel programming. Written by leaders in the field, this book provides an overview of the existing and up-and-coming programming choices for multicores. It addresses issues in systems architecture, operating systems, languages, and compilers.
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.
Writing reliable and maintainable C++ software is hard. Designing such software at scale adds a new set of challenges. Creating large-scale systems requires a practical understanding of logical design - beyond the theoretical concepts addressed in most popular texts. To be successful on an enterprise scale, developers must also address physical design, a dimension of software engineering that may be unfamiliar even to expert developers. Drawing on over 30 years of hands-on experience building massive, mission-critical enterprise systems, John Lakos shows how to create and grow Software Capital. This groundbreaking volume lays the foundation for projects of all sizes and demonstrates the processes, methods, techniques, and tools needed for successful real-world, large-scale development. Up to date and with a solid engineering focus, Large-Scale C++, Volume I: Process and Architecture, demonstrates fundamental design concepts with concrete examples. Professional developers of all experience levels will gain insights that transform their approach to design and development by understanding how to Raise productivity by leveraging differences between infrastructure and application development Achieve exponential productivity gains through feedback and hierarchical reuse Embrace the component's role as the fundamental unit of both logical and physical design Analyze how fundamental properties of compiling and linking affect component design Discover effective partitioning of logical content in appropriately sized physical aggregates Internalize the important differences among sufficient, complete, minimal, and primitive software Deliver solutions that simultaneously optimize encapsulation, stability, and performance Exploit the nine established levelization techniques to avoid cyclic physical dependencies Use lateral designs judiciously to avoid the "heaviness" of conventional layered architectures Employ appropriate architectural insulation techniques for eliminating compile-time coupling Master the multidimensional process of designing large systems using component-based methods This is the first of John Lakos's three authoritative volumes on developing large-scale systems using C++. This book, written for fellow software practitioners, uses familiar C++ constructs to solve real-world problems while identifying (and motivating) modern C++ alternatives. Together with the forthcoming Volume II: Design and Implementation and Volume III: Verification and Testing, Large-Scale C++ offers comprehensive guidance for all aspects of large-scale C++ software development. If you are an architect or project leader, this book will empower you to solve critically important problems right now - and serve as your go-to reference for years to come. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Let there be code! Beginning Programming All-in-One For Dummies offers one guide packed with 7 books to teach you programming across multiple languages. Coding can seem complex and convoluted, but Dummies makes it simple and easy to understand. You'll learn all about the principles of programming, algorithms, data structures, debugging programs, unique applications of programming and more while learning about some of the most popular programming languages used today. Move confidently forward in your computer science coursework or straight into the workforce. You'll come away with a rock-solid foundation in the programming basics, using data, coding for the web, and building killer apps. Learn the basics of coding, including writing and compiling code, using algorithms, and data structures Get comfortable with the syntax of several different programming languages Wrap your mind around interesting programming opportunities such as conducting biological experiments within a computer or programming a video game engine Develop cross-platform applications for desktop and mobile devices This essential guide takes the complexity and convolution out of programming for beginners and arms you with the knowledge you need to follow where the code takes you.
Get started quickly with Qt, the popular open source C++ framework for building C++-based applications and games. This book will have you building both fully functional desktop and mobile applications in no time, including some simple game applications. Introducing Qt 6 begins by guiding you in setting up your tools and environment, and then walks you through the first "baby steps" of Qt framework. Next, you'll learn the basics of how project and app structure are set up using Qt. Then, you'll begin your first real hands-on projects using Qt, including a task and problem management application and two games. As you progress, you can enhance these apps and games using additional Qt components and features. The book then delves into advanced topics in Qt, learning above and beyond what the Qt docs can offer, including local storage, C++ integration, deployment to Windows and Android, custom components and how to work with them. Upon completing this book, you'll come away knowing how to build a C++ application from design to deployment, top to bottom. And, you'll have actual application and game examples that you can apply to your own work or hobby. What You Will Learn Learn to build your first applications and games using Qt 6 framework Design, create, build and deploy your first Qt applications or games as finished products Explore local storage integration in theory and practice Cover deployment on Windows and on Android Integrate with C++ language to leverage additional functionality Dive into Custom Components and how to work with them Explore different project structures and more Who This Book Is For Software programmers, developers who are new to C++ or the Qt framework. Some prior programming experience though may be helpful.
Rust is a new systems programming language that gives you the low-level power of C with the elegance and ease of languages like Ruby and Python. Rust is thread safe, enabling "fearless concurrency". Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You'll be learning Rust by delving into how computers work under the hood. You'll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You'll also discover parallel and concurrent programming. * Concurrent and parallel programming Sharing resources with locks or atomic operations Avoiding programming with global state Message passing inside your applications Memory management and garbage collection Readers need intermediate programming skills and familiarity with general computer science concepts, the command line, and networking.
VerilogA(R) Quickstart is a basic, practical, introductory textbook for professionals and students alike. This book explains how a designer can be more effective through the use of the Verilog hardware description language to simulate and document a design. By understanding simulation, a designer can simulate a design to see if a design works before it is built. This gives the designer an opportunity to try different ideas. Documentation allows a designer to maintain and reuse a design more easily. Verilog's intrinsic hierarchical modularity enables the designer to easily reuse portions of the design as intellectual property' or macro-cells'. VerilogA(R) Quickstart presents some of the formal Verilog syntax and definitions and then shows practical uses. This book does not oversimplify the Verilog language nor does it emphasize theory. VerilogA(R) Quickstart has over 100 examples that are used to illustrate aspects of the language. In the later chapters the focus is on working with modeling style and explaining why and when one would use different elements of the language. Another feature of the book is the chapter on state machine modeling. There is also a chapter on test benches and testing strategy as well as a chapter on debugging. VerilogA(R) Quickstart is designed to teach the Verilog language, to show the designer how to model in Verilog and to explain the basics of using Verilog simulators.
Currently, we see a variety of tools and techniques for specifying and implementing business processes. The problem is that there are still gaps and tensions between the different disciplines needed to improve business process execution and improvement in enterprises. Business process modeling, workflow execution and application programming are examples of disciplines that are hosted by different communities and that emerged separately from each other. In particular, concepts have not yet been fully elaborated at the system analysis level. Therefore, practitioners are faced again and again with similar questions in concrete business process projects: Which decomposition mechanism to use? How to find the correct granularity for business process activities? Which implementing technology is the optimal one in a given situation? This work offers an approach to the systematization of the field. The methodology used is explicitly not a comparative analysis of existing tools and techniques - although a review of existing tools is an essential basis for the considerations in the book. Rather, the book tries to provide a landscape of rationales and concepts in business processes with a discussion of alternatives.
The art, craft, discipline, logic, practice and science of developing large-scale software products needs a professional base. The textbooks in this three-volume set combine informal, engineeringly sound approaches with the rigor of formal, mathematics-based approaches. This volume covers the basic principles and techniques of specifying systems and languages. It deals with modelling the semiotics (pragmatics, semantics and syntax of systems and languages), modelling spatial and simple temporal phenomena, and such specialized topics as modularity (incl. UML class diagrams), Petri nets, live sequence charts, statecharts, and temporal logics, including the duration calculus. Finally, the book presents techniques for interpreter and compiler development of functional, imperative, modular and parallel programming languages. This book is targeted at late undergraduate to early graduate university students, and researchers of programming methodologies. Vol. 1 of this series is a prerequisite text. |
You may like...
Advanced Visual Basic 6 - Power…
Matthew Curland, Gary Clarke
Paperback
R1,273
Discovery Miles 12 730
|