![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Compilers & interpreters
The control and data flow of a program can be represented using continuations, a concept from denotational semantics that has practical application in real compilers. This book shows how continuation-passing style is used as an intermediate representation on which to perform optimisations and program transformations. Continuations can be used to compile most programming languages. The method is illustrated in a compiler for the programming language Standard ML. However, prior knowledge of ML is not necessary, as the author carefully explains each concept as it arises. This is the first book to show how concepts from the theory of programming languages can be applied to the producton of practical optimising compilers for modern languages like ML. This book will be essential reading for compiler writers in both industry and academe, as well as for students and researchers in programming language theory.
Die Entwicklung digitaler Moeglichkeiten fuhrt zu neuen Translationsformen. Sie verlangt eine UEberprufung von Ansatzen und Theorien und schafft neue Moeglichkeiten fur (sprachvergleichende) theoretische und korpusbasierte Studien. Die Beitrage dieses Bandes gehen den Auswirkungen der technischen Veranderungen auf die Translation selbst sowie auf die sich stetig verandernden bzw. erweiternden Moeglichkeiten der Translationsforschung im digitalen Zeitalter auf den Grund. Dabei decken sie Themenbereiche wie UEbersetzung und Dolmetschen, Untertitelung und Synchronisierung sowie Ausbildung mit neuen Lehrwerken und Tools ab. Der Band geht auf den 10. Internationalen Kongress zu Grundfragen der Translatologie (LICTRA X) zum Thema Translation 4.0 - Translation im digitalen Zeitalter zuruck.
This new, expanded textbook describes all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes good coverage of current techniques in code generation and register allocation, as well as functional and object-oriented languages, that are missing from most books. In addition, more advanced chapters are now included so that it can be used as the basis for two-semester or graduate course. The most accepted and successful techniques are described in a concise way, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual C header files. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the advanced chapters, covers the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.
This exciting and practical book for compiler construction combines history and development of several early programming languages together with sufficient theory to develop a compiler for an extensive language. The book reflects the author's views that compiler construction can best be learned by the actual implementation of a compiler. A source language, equivalent to early translating languages, is developed. An object language consisting entirely of numbers is also developed. The student will learn to write programs in the developed source and object language. Using the language C++, the author gently leads the student through the steps which are necessary to complete a working compiler in a one-semester effort. Extensive exercises at the end of each chapter keep the student's focus on the big project - the implementation of a working compiler.
Create stunning 3D games in a short amount of time using Amazon Lumberyard, a free and exciting game development platform. This book is a ground-up, out-of-the-box tutorial on 3D game development and programming with Lua and Amazon Lumberyard with little or no game development experience required. Beginning Game Development with Amazon Lumberyard walks you through the user interface of the Amazon Lumberyard engine; teaches you how to develop detailed terrain using heightmaps, megatextures, weather, and vegetation; and takes you through exporting the game for distribution. The book will show you how to create a player as well as enemies while not getting bogged down with third-party tools for animation or model creation. You will also work with simple physics, colliders, meshes, weather generation, Lua scripting, user interface development, and much more. By the end of the book, you will be able to create many different types of video games using the Amazon Lumberyard engine and even have a completed project ready to release or put in your portfolio. What You Will Learn Discover the mechanics and terminology of game development Familiarize yourself with the Amazon Lumberyard game engine in detail Modify game scripts using the Lua language Discover how to optimally structure game layers Who This Book is For Developers, programmers, and would-be game designers who have long wanted to dip their toes into the world of game development but have found other game engines and platforms to have too high a barrier to entry.
This textbook describes all phases of a compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes thorough coverage of current techniques in code generation and register allocation, and the compilation of functional and object-oriented languages. The most accepted and successful techniques are described and illustrated with actual Java^TM® classes. The first part is suitable for a one-semester first course in compiler design. The second part; which includes the compilation of object-oriented and functional languages, garbage collection, loop optimization, SSA form, instruction scheduling, and optimization for cache-memory hierarchies; can be used for a second-semester or graduate course. This new edition includes more discussion of Java and object-oriented programming concepts such as visitor patterns plus a new Mini-Java programming project. A unique feature is the newly redesigned compiler project in Java for a subset of Java itself. The project includes both front-end and back-end phases.
Harness the power of Quarkus, the supersonic subatomic cloud-native Java platform from Red Hat. This book covers everything you need to know to get started with the platform, which has been engineered from the ground up for superior performance and cloud-native deployment. You'll start with an overview of the Quarkus framework and its features. Next, you'll dive into building your first microservice using Quarkus, including the use of JAX-RS, Swagger, Microprofile, REST, reactive programming, and more. You'll see how to seamlessly add Quarkus to existing Spring framework projects. The book continues with a dive into the dependency injection pattern and how Quarkus supports it, working with annotations and facilities from both Jakarta EE CDI and the Spring framework. You'll also learn about dockerization and serverless technologies to deploy your microservice. Next you'll cover how data access works in Quarkus with Hibernate, JPA, Spring Boot, MongoDB, and more. This will also give you an eye for efficiency with reactive SQL, microservices, and many more reactive components. You'll also see tips and tricks not available in the official documentation for Quarkus. Lastly, you'll test and secure Quarkus-based code and use different deployment scenarios to package and deploy your Quarkus-based microservice for the cloud, using Amazon Web Services as a focus. After reading and using Beginning Quarkus Framework, you'll have the essentials to build and deploy cloud-native microservices and full-fledged applications. Author Tayo Koleoso goes to great lengths to ensure this book has up to date material including brand new and some unreleased features! What You Will Learn Build and deploy cloud-native Java applications with Quarkus Create Java-based microservices Integrate existing technologies such as the Spring framework and vanilla Java EE into the Quarkus framework Work with the Quarkus data layer on persistence with SQL, reactive SQL, and NoSQL Test code in Quarkus with the latest versions of JUnit and Testcontainers Secure your microservices with JWT and other technologies Package your microservices with Docker containers and GraalVM native image tooling Tips and techniques you won't find in the official Quarkus documentation Who This Book Is For Intermediate Java developers familiar with microservices, the cloud in general, and REST web services, but interested in modern approaches.
This book constitutes the refereed post-conference proceedings of the 26th International Workshop on Functional and Constraint Logic Programming, WFLP 2018, held in Frankfurt/Main, Germany, in September 2018. From the 19 full papers submitted,12 were accepted for presentation at the workshop. During a second review after the workshop, 10 papers were accepted for inclusion in this volume. The papers cover different programming areas of functional and logic programming, including code generation, verification, and debugging. They are organized in the following topical sections: compilers and code generation; debugging and testing; and foundations of functional logic programming.
There are many good Java programming books on the market, but it's not easy to find one fit for a beginner. This book simplifies the complexity of Java programming and guides you through the journey to effectively work under the hood. You'll start with the fundamentals of Java programming and review how it integrates with basic mathematical concepts through many practical examples. You'll witness firsthand how Java can be a powerful tool or framework in your experimentation work. Learn Java with Math reveals how a strong math foundation is key to learning programming design. Using this as your motivation, you'll be programming in Java in no time. What You'll Learn Explore Java basics Program with Java using fun math-inspired examples Work with Java variables and algorithms Review I/O, loops, and control structures Use projects such as the Wright brothers coin flip game Who This Book Is For Those new to programming and Java but have some background in mathematics and are at least comfortable with using a computer.
Learn programming using the Commodore 16/Plus 4 system. Following this book, you and your children will not only learn BASIC programming, but also have fun emulating a retro Commodore system. There are many ways to bring the fun of learning to program in the 1980s back to life. For example, downloading the VICE emulator to a Raspberry Pi allows for the classic "turn on and program" experience and also provides some retro computing project fun. Many parents learned programming in this same way and can have fun helping their children follow the same path. You can also use this book as an opportunity to dust off your computing skills or learn programming concepts for the first time on a system that's easy, approachable, and fun with a nostalgic twist. Commodore computers were the most sold computing devices before the iPhone. Nowadays, the Commodore system can be run using freely available emulation on modern computers. This book uses VICE, which is available for PC, Mac, Linux, as an online app, and on the Raspberry Pi. Beginning Programming Using Retro Computing offers simple programming concepts to give children and adults alike a sense of wonder in seeing that words they write have the power to do things, like play sounds, draw graphics, or finish math homework.
The Most Complete, Real-World Guide to Compiler Development--and the Principles of Trustworthy Compilers Drawing on the author's over thirty years of expertise in compiler development, research, and instruction, Trustworthy Compilers introduces and analyzes the concept of trustworthy compilers and the principles of trustworthy compiler development, and provides analytical overview of other promising research works in this area. Vladimir Safonov shares the benefit of his long experience as a teacher and compiler development professional to explain that--even in such a well-studied area as compilers--there is still an opportunity for original results, efficient algorithms, and promising research and development. Beginning with a definition of the trustworthy compiler and a review of the history of compiler development, Trustworthy Compilers features: A complete overview of all essential compiler topics, including lexical analysis, parsing, semantic analysis, compiler optimization, code generation, and traditional and modern approaches to runtime Efficient, ready-to-apply algorithms for various phases of compilation, especially for semantic analysis, developed by the author and used in his real compilers High-yield coverage of graph compilers--a novel compiler development area--plus related concepts such as graph grammars and graph compilers, and editor development tools such as DiaGen Real projects--using examples of real compilers--that cover the key topics related to compiler development and compiling methods A survey of novel kinds of compilation, including just-in-time (JIT) and ahead-of-time (AOT) compilation, which are characteristic of modern software development platforms Java and .NET Sections on modern compiler tools--such as ANTLR, CoCo/R, and SableCC Covering both classical techniques and innovative ones not covered by other books, Trustworthy Compilers helps both practicing professionals and students meet the challenge of?making compilers more trustworthy. The book's companion Web page (www.vladimirsafonov.org/trustworthycompilers) provides an overview of the book and related resources for compiler teachers and students.
Explore the new Java programming language features and APIs introduced in Java 10 through Java 13. Java 13 Revealed is for experienced Java programmers looking to migrate to Java 13. Author Kishori Sharan begins by covering how to use local variable type inference to improve readability of your code and time-based release versioning of the Java platform to understand the Java release strategy. This book provides extensive coverage of the new HTTP Client APIs, which were introduced in Java 9 as a preview and was made a standard feature in Java 11. New Java features such as launching a single-file source code program and new switch syntax are discussed in detail. What You Will Learn Use local variable type inference to declare local variables using the var restricted type name introduced in Java 10 Take advantage of application class data sharing among JVMs for faster application startup Create HTTP requests, responses, and web sockets with the new HTTP Client APIs Run a single-file Java source code program using the java command without compiling it Apply the new switch statement and expressions to write compact and less error-prone code Work with text blocks in Java code About new APIs, deprecated APIs, and deprecated tools Who This Book Is For Java developers who want to update their Java skills from Java 9 to Java 13.
If you think "Modern" and "C" don't belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more! Modern C teaches you to take your C programming skills to new heights, whether you're just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits. Key Features Fundamentals of C programming Operators and functions Performance techniques C library functions For more than four decades, C has proved its usefulness and staying power for everything from massive systems for mainframes, satellites, and internet browsers to tiny embedded systems in vending machines, credit card readers, and alarm clocks. Today you'll find lightning-fast, elegant C programs running in smartphone kernels, databases, 3D movies, video games, and scores of other modern applications. For programmers comfortable writing simple programs in a language like Java, Python, Ruby, C#, C++, or C. Jens Gustedt has been a senior scientist at the French National Institute for Computer Science and Control (INRIA) since 1998, working in areas including algorithms, scientific experimentation, models for coarse-grained parallelism, and distributed locking. Currently, he's conducting the Modular C project, which has given rise to libraries such as arbogast and EiLck. |
![]() ![]() You may like...
Evolutionary Data Clustering: Algorithms…
Ibrahim Aljarah, Hossam Faris, …
Hardcover
R5,106
Discovery Miles 51 060
Advances in Telemedicine for Health…
Tarik a. Rashid, Chinmay Chakraborty, …
Hardcover
Stream Ecosystems in a Changing…
Jeremy B. Jones, Emily Stanley
Hardcover
SIMD Programming Manual for Linux and…
Paul Cockshott, Kenneth Renfrew
Hardcover
R3,191
Discovery Miles 31 910
Lost Sex - The Evolutionary Biology of…
Isa Schoen, Koen Martens, …
Hardcover
R5,729
Discovery Miles 57 290
Time Series Analysis - With Applications…
Jonathan D. Cryer, Kung-Sik Chan
Hardcover
R2,742
Discovery Miles 27 420
|