|
|
Books > Computing & IT > Computer programming > Compilers & interpreters
The Austrian Center for Parallel Computation (ACPC) is a
cooperative research organization founded in 1989 to promote
research and education in the field of software for parallel
computer systems. The areas in which the ACPC is active include
algorithms, languages, compilers, programming environments, and
applications for parallel and high-performance computing systems.
This volume contains the proceedings of the First International
Conference of the SCPC, held in Salzburg, Austria, September 30 -
October 2, 1991. Authors from 15 countries submitted 66 papers,
from which 28 were selected and presented at the conference. They
appear in this volume together with 8 invited papers by
distinguished researchers. Based on the quality of the papers
presented and the response of the participants, the ACPC has
decided to organize a conference every other year. The second ACPC
conference will take place in Vienna in June 1993.
The International Workshop on Compiler Construction provides a
forum for thepresentation and discussion of recent developments in
the area of compiler construction. Its scope ranges from
compilation methods and tools to implementation techniques for
specific requirements of languages and target architectures. This
volume contains the papers selected for presentation at the 4th
International Workshop on Compiler Construction, CC '92, held in
Paderborn, Germany, October 5-7, 1992. The papers present recent
developments on such topics as structural and semantic analysis,
code generation and optimization, and compilation for parallel
architectures and for functional, logical, and application
languages.
Advances and problems in the field of compiler compilers are
considered in this volume, which presents the proceedings of the
third in a series of biannual workshops on compiler compilers.
Selected papers address the topics of requirements, properties, and
theoretical aspects of compiler compilers as well as tools and
metatools for software engineering. The 23 papers cover a wide
spectrum in the field of compiler compilers, ranging from overviews
of new compiler compilers for generating quality compilers to
special problems of code generation and optimization. Aspects of
compilers for parallel systems and knowledge-based development
tools are also discussed.
The book is devoted to a simplified set-theoretic version of
denotational semantics where sets are used in place of Scott's
reflexive domains and where jumps are described without
continuations. This approach has emerged as a reaction to the
sophisticated model of traditional semantics. It was also strongly
stimulated by the applications of denotational semantics and
especially by its software-industry oriented version known as VDM
(Vienna Development Method). The new approach was successfully
tested on several examples. Based on this approach the Polish
Academy of Sciences created the project MetaSoft aimed at the
development of a definitional metalanguage for software
engineering. The approach has also been chosen in the project RAISE
(ESPRIT) which aims at a similar goal. The book consists of two
parts. Part One is devoted to the mathematical foundations of the
future definitional metalanguage of MetaSoft. This part also
introduces an appropriate notation. Part Two shows the applications
of this metalanguage. There the denotational definition of a subset
of Pascal is discussed with particular emphasis on Pascal types.
Build domain specific languages (DSLs) using Java's most popular
functional programming language: Scala. This book introduces the
basics of Scala and DSLs using a series of practical examples. In
Practical Scala DSLs, you'll learn to create pragmatic and complete
code examples that explain the actual use of DSLs with Scala: a web
API and microservices; a custom language; a mobile app; a Forex
system; a game; and cloud applications. At the end of this unique
book, you'll be able to describe the differences between external
and internal DSLs; understand when and how to apply DSLs; create
DSLs using Scala; and even create a DSL using another programming
language. What You'll Learn Build DSLs in Scala Write a web API and
microservices Create a custom language Apply DSLs to mobile apps
development, a Forex trading system, game development, and more
Discover the role of DSLs in cloud development Integrate DSLs as
part of a DevOps program or structure Build internal and external
DSLs Who This Book Is For Experienced Java coders with at least
some prior experience with Scala. You may be new to DSLs.
This quick reference is a condensed guide to the essential data
structures, algorithms, and functions provided by the C++17
Standard Library. It does not explain the C++ language or syntax,
but is accessible to anyone with basic C++ knowledge or programming
experience. Even the most experienced C++ programmer will learn a
thing or two from it and find it a useful memory-aid. It is hard to
remember all the possibilities, details, and intricacies of the
vast and growing Standard Library. This handy reference guide is
therefore indispensable to any C++ programmer. It offers a
condensed, well-structured summary of all essential aspects of the
C++ Standard Library. No page-long, repetitive examples or obscure,
rarely used features. Instead, everything you need to know and
watch out for in practice is outlined in a compact, to-the-point
style, interspersed with practical tips and well-chosen, clarifying
examples. This new edition is updated to include all Standard
Library changes in C++17, including the new vocabulary types
std::string_view, any, optional, and variant; parallel algorithms;
the file system library; specialized mathematical functions; and
more. What You Will Learn Gain the essentials that the C++ Standard
Library has to offer Use containers to efficiently store and
retrieve your data Inspect and manipulate your data with algorithms
See how lambda expressions allow for elegant use of algorithms
Discover what the standard string class provides and how to use it
Write localized applications Work with file and stream-based I/O
Prevent memory leaks with smart pointers Write safe and efficient
multi-threaded code using the threading libraries Who This Book Is
For All C++ programmers, irrespective of their proficiency with the
language or the Standard Library. A secondary audience is
developers who are new to C++, but not new to programming, and who
want to learn more about the C++ Standard Library in a quick,
condensed manner.
Separation Logic is the twenty-first-century variant of Hoare Logic
that permits verification of pointer-manipulating programs. This
book covers practical and theoretical aspects of Separation Logic
at a level accessible to beginning graduate students interested in
software verification. On the practical side it offers an
introduction to verification in Hoare and Separation logics, simple
case studies for toy languages, and the Verifiable C program logic
for the C programming language. On the theoretical side it presents
separation algebras as models of separation logics; step-indexed
models of higher-order logical features for higher-order programs;
indirection theory for constructing step-indexed separation
algebras; tree-shares as models for shared ownership; and the
semantic construction (and soundness proof) of Verifiable C. In
addition, the book covers several aspects of the CompCert verified
C compiler, and its connection to foundationally verified software
analysis tools. All constructions and proofs are made rigorous and
accessible in the Coq developments of the open-source Verified
Software Toolchain.
Learn how to automate processes, visualize your data, and improve
productivity using Power Apps, Power Automate, Power BI,
SharePoint, Forms, Teams, and more. This book will help you build
complete solutions that often involve storing data in SharePoint,
creating a front-end application in Power Apps or Forms, adding
additional functionality with Power Automate, and effective reports
and dashboards in Power BI. This new edition greatly expands the
focus on Power Apps, Power BI, Power Automate, and Teams, along
with SharePoint and Microsoft Forms. It starts with the basics of
programming and shows how to build a simple email application in
.NET, HTML/JavaScript, Power Apps on its own, and Power Apps and
Power Automate in combination. It then covers how to connect Power
Apps to SharePoint, create an approval process in Power Automate,
visualize surveys in Power BI, and create your own survey solution
with the combination of a number of Microsoft 365 tools. You'll
work with an extended example that shows how to use Power Apps and
SharePoint together to create your own help ticketing system. This
book offers a deep dive into Power BI, including working with JSON,
XML, and Yes/No data, as well as visualizing learning data and
using it to detect inconsistencies between Excel files. You'll also
see how to connect to Remedy and to the help system you will have
created. Under author Jeffrey Rhodes's guidance, you'll delve into
the Power Apps collection to learn how to avoid dreaded
"delegation" issues with larger data sets. Back on applications,
you will create a training class sign-up solution to only allow
users to choose classes with available seats. Digging deeper into
Teams, you'll learn how to send chats, posts, and "adaptive cards"
from Power Automate. Rounding things out, you'll save Forms
attachments to SharePoint with Power Automate, create your own
"Employee Recognition" app with all of the Power Platform and
Teams, add or edit weekly status reports, and learn how to create
reservation and scoring applications. After reading the book, you
will be able to build powerful applications using Power Apps, Power
Automate, Power BI, SharePoint, Forms, and Teams. What You Will
Learn Create productivity-enhancing applications with Power Apps,
Power Automate, SharePoint, Forms, and/or Teams Transform and
visualize data with Power BI to include custom columns, measures,
and pivots Avoid delegation issues and tackle complicated Power
Apps issues like complex columns, filtering, and ForAll loops Build
scheduled or triggered Power Automate flows to schedule Teams
Meetings, send emails, launch approvals, and much more Who This
Book Is For Business and application developers.
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 a 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.
Why just get by in F# when you can program in style. This book goes
beyond syntax and into design. It provides F# developers with best
practices, guidance, and advice to write beautiful, maintainable,
and correct code. This second edition, fully updated for .NET 6 and
F# 6, includes all new coverage of anonymous records, the task {}
computation expression, and the relationship between types and
modules. Stylish F# 6 covers every design decision that a developer
makes in constructing F# programs, helping you make the most
educated and valuable design choices at every stage of code
development. You will learn about the design of types and function
signatures, the benefits of immutability, and the uses of partial
function application. You will understand best practices for
writing APIs to be used by F#, C#, and other languages. Each
carefully vetted design choice is supported with compelling
examples, illustrations, and rationales. What You Will Learn Know
why, when, and how to code in immutable style Use collection
functions, piping, and function composition to build working
software quickly Be aware of the techniques available to bring
error handling into the mainstream of program logic Optimize F#
code for maximum performance Identify and implement opportunities
to use function injection to improve program design Appreciate the
methods available to handle unknown data values Understand
asynchronous and parallel programming in F#, and how it differs
from C# asynchronous programming Exploit records and anonymous
records as low-overhead, easily comparable containers for
structured data Who This Book Is For Any developer who writes F#
code and wants to write it better
Master the Java EE 8 and JSF (JavaServer Faces) APIs and web
framework with this practical, projects-driven guide to web
development. This book combines theoretical background with a
practical approach by building four real-world applications. By
developing these JSF web applications, you'll take a tour through
the other Java EE technologies such as JPA, CDI, Security,
WebSockets, and more. In Practical JSF in Java EE 8, you will learn
to use the JavaServer Faces web framework in Java EE 8 to easily
construct a web-based user interface from a set of reusable
components. Next, you add JSF event handling and then link to a
database, persist data, and add security and the other bells and
whistles that the Java EE 8 platform has to offer. After reading
this book you will have a good foundation in Java-based web
development and will have increased your proficiency in
sophisticated Java EE 8 web development using the JSF framework.
What You Will Learn Use the Java EE 8 and the JavaServer Faces APIs
to build Java-based web applications through four practical
real-world case studies Process user input with JSF and the
expression language by building a calculator application Persist
data using JSF templating and Java Persistence to manage an
inventory of books Create and manage an alumni database using JSF,
Ajax, web services and Java EE 8's security features. Who This Book
Is For Those new to Java EE 8 and JSF. Some prior experience with
Java is recommended.
Learn from state-of-the-art examples in robotics, motors, detection
filters, chemical processes, aircraft, and spacecraft. With this
book you will review contemporary MATLAB coding including the
latest MATLAB language features and use MATLAB as a software
development environment including code organization, GUI
development, and algorithm design and testing. Features now covered
include the new graph and digraph classes for charts and networks;
interactive documents that combine text, code, and output; a new
development environment for building apps; locally defined
functions in scripts; automatic expansion of dimensions; tall
arrays for big data; the new string type; new functions to
encode/decode JSON; handling non-English languages; the new class
architecture; the Mocking framework; an engine API for Java; the
cloud-based MATLAB desktop; the memoize function; and heatmap
charts. MATLAB Recipes: A Problem-Solution Approach, Second Edition
provides practical, hands-on code snippets and guidance for using
MATLAB to build a body of code you can turn to time and again for
solving technical problems in your work. Develop algorithms, test
them, visualize the results, and pass the code along to others to
create a functional code base for your firm. What You Will Learn
Get up to date with the latest MATLAB up to and including MATLAB
2020b Code in MATLAB Write applications in MATLAB Build your own
toolbox of MATLAB code to increase your efficiency and
effectiveness Who This Book Is For Engineers, data scientists, and
students wanting a book rich in examples using MATLAB.
Utilize web scraping at scale to quickly get unlimited amounts of
free data available on the web into a structured format. This book
teaches you to use Python scripts to crawl through websites at
scale and scrape data from HTML and JavaScript-enabled pages and
convert it into structured data formats such as CSV, Excel, JSON,
or load it into a SQL database of your choice. This book goes
beyond the basics of web scraping and covers advanced topics such
as natural language processing (NLP) and text analytics to extract
names of people, places, email addresses, contact details, etc.,
from a page at production scale using distributed big data
techniques on an Amazon Web Services (AWS)-based cloud
infrastructure. It book covers developing a robust data processing
and ingestion pipeline on the Common Crawl corpus, containing
petabytes of data publicly available and a web crawl data set
available on AWS's registry of open data. Getting Structured Data
from the Internet also includes a step-by-step tutorial on
deploying your own crawlers using a production web scraping
framework (such as Scrapy) and dealing with real-world issues (such
as breaking Captcha, proxy IP rotation, and more). Code used in the
book is provided to help you understand the concepts in practice
and write your own web crawler to power your business ideas. What
You Will Learn Understand web scraping, its applications/uses, and
how to avoid web scraping by hitting publicly available rest API
endpoints to directly get data Develop a web scraper and crawler
from scratch using lxml and BeautifulSoup library, and learn about
scraping from JavaScript-enabled pages using Selenium Use AWS-based
cloud computing with EC2, S3, Athena, SQS, and SNS to analyze,
extract, and store useful insights from crawled pages Use SQL
language on PostgreSQL running on Amazon Relational Database
Service (RDS) and SQLite using SQLalchemy Review sci-kit learn,
Gensim, and spaCy to perform NLP tasks on scraped web pages such as
name entity recognition, topic clustering (Kmeans, Agglomerative
Clustering), topic modeling (LDA, NMF, LSI), topic classification
(naive Bayes, Gradient Boosting Classifier) and text similarity
(cosine distance-based nearest neighbors) Handle web archival file
formats and explore Common Crawl open data on AWS Illustrate
practical applications for web crawl data by building a similar
website tool and a technology profiler similar to builtwith.com
Write scripts to create a backlinks database on a web scale similar
to Ahrefs.com, Moz.com, Majestic.com, etc., for search engine
optimization (SEO), competitor research, and determining website
domain authority and ranking Use web crawl data to build a news
sentiment analysis system or alternative financial analysis
covering stock market trading signals Write a production-ready
crawler in Python using Scrapy framework and deal with practical
workarounds for Captchas, IP rotation, and more Who This Book Is
For Primary audience: data analysts and scientists with little to
no exposure to real-world data processing challenges, secondary:
experienced software developers doing web-heavy data processing who
need a primer, tertiary: business owners and startup founders who
need to know more about implementation to better direct their
technical team
Learn the principles behind object-oriented programming in Ruby and
within a few chapters create a fully functional Ruby 3-based
application. You'll gain a basic understanding of many ancillary
technologies such as databases, XML, web frameworks, and networking
- some of which will be needed for your first Ruby application.
Based on the bestselling first and second editions, Beginning Ruby
3, 4th Edition is a leading guide to learn Ruby from the ground up.
The new edition of this book provides the same excellent
introduction to Ruby as the previous editions plus updates for the
newest version of Ruby, including performance through an improved
allocator, decreased heap fragmentation and more. Also, added:
details on the just-in-time compiler, fewer limits on GIL (Global
Interpreter Lock), and a static type checker. You'll see why the
light and agile Ruby programming language remains a popular open
source scripting option for developers building today's web
applications. This book can also be used as a textbook or companion
to a textbook on beginning Ruby programming. After reading and
using this book, you'll have a firm handle to program in the Ruby
language. What You Will Learn Discover the fundamentals of Ruby and
its object-oriented building blocks Use the Ruby libraries, gems,
and documentation Work with files and databases Write and deploy
Ruby applications Harness the various Ruby web frameworks and use
them effectively Do network programming with Ruby Who This Book Is
For Beginning programmers, programmers new to Ruby, and web
developers interested in learning the foundations of the Ruby
programming language.
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.
Understand and work with the most important features of advanced C#
in different programming environments. This book teaches you the
fundamental features of advanced C# and how to incorporate them in
different programming techniques using Visual Studio 2019. The book
is divided into two parts. Part I covers the fundamentals and
essentials of advanced programming in C#. You will be introduced to
delegates and events and then move on to lambda expressions. Part
II teaches you how to implement these features in different
programming techniques, starting with generic programming. After
that, you will learn about thread programming and asynchronous
programming, to benefit from a multi-threaded environment. Finally,
you will learn database programming using ADO.NET to connect to a
MySQL database and you will know how to exercise SQL statements and
stored procedures through your C# applications. What You Will Learn
Use delegates, events, and lambda expressions in advanced
programming Make your application flexible by utilizing generics
Create a fast application with multi-threading and asynchronous
programming Work in Visual Studio Community Edition, which is the
most common IDE for using C# Understand alternative implementations
along with their pros and cons Who This Book Is For Developers and
programmers who are already working in C#
This book constitutes the refereed proceedings of the 21st
International Conference on Practical Aspects of Declarative
Languages, PADL 2019, held in Lisbon, Portugal, in January 2019.
The 14 revised full papers were carefully reviewed and selected
from 35 submissions. The papers present original work emphasizing
novel applications and implementation techniques for all forms of
declarative concepts, including logic, constraint, and functional
languages.
Discover a variety of data-mining algorithms that are useful for
selecting small sets of important features from among unwieldy
masses of candidates, or extracting useful features from measured
variables. As a serious data miner you will often be faced with
thousands of candidate features for your prediction or
classification application, with most of the features being of
little or no value. You'll know that many of these features may be
useful only in combination with certain other features while being
practically worthless alone or in combination with most others.
Some features may have enormous predictive power, but only within a
small, specialized area of the feature space. The problems that
plague modern data miners are endless. This book helps you solve
this problem by presenting modern feature selection techniques and
the code to implement them. Some of these techniques are: Forward
selection component analysis Local feature selection Linking
features and a target with a hidden Markov model Improvements on
traditional stepwise selection Nominal-to-ordinal conversion All
algorithms are intuitively justified and supported by the relevant
equations and explanatory material. The author also presents and
explains complete, highly commented source code. The example code
is in C++ and CUDA C but Python or other code can be substituted;
the algorithm is important, not the code that's used to write it.
What You Will Learn Combine principal component analysis with
forward and backward stepwise selection to identify a compact
subset of a large collection of variables that captures the maximum
possible variation within the entire set. Identify features that
may have predictive power over only a small subset of the feature
domain. Such features can be profitably used by modern predictive
models but may be missed by other feature selection methods. Find
an underlying hidden Markov model that controls the distributions
of feature variables and the target simultaneously. The memory
inherent in this method is especially valuable in high-noise
applications such as prediction of financial markets. Improve
traditional stepwise selection in three ways: examine a collection
of 'best-so-far' feature sets; test candidate features for
inclusion with cross validation to automatically and effectively
limit model complexity; and at each step estimate the probability
that our results so far could be just the product of random good
luck. We also estimate the probability that the improvement
obtained by adding a new variable could have been just good luck.
Take a potentially valuable nominal variable (a category or class
membership) that is unsuitable for input to a prediction model, and
assign to each category a sensible numeric value that can be used
as a model input. Who This Book Is For Intermediate to advanced
data science programmers and analysts.
Master the booting procedure of various operating systems with
in-depth analysis of bootloaders and firmware. The primary focus is
on the Linux booting procedure along with other popular operating
systems such as Windows and Unix. Hands-on Booting begins by
explaining what a bootloader is, starting with the Linux bootloader
followed by bootloaders for Windows and Unix systems. Next, you'll
address the BIOS and UEFI firmware by installing multiple operating
systems on one machine and booting them through the Linux
bootloader. Further, you'll see the kernel's role in the booting
procedure of the operating system and the dependency between
kernel, initramfs, and dracut. You'll also cover systemd, examining
its structure and how it mounts the user root filesystem. In the
final section, the book explains troubleshooting methodologies such
as debugging shells followed by live images and rescue mode. On
completing this book, you will understand the booting process of
major operating systems such as Linux, Windows, and Unix. You will
also know how to fix the Linux booting issues through various boot
modes. What You Will Learn Examine the BIOS and UEFI firmware
Understanding the Linux boot loader (GRUB) Work with initramfs,
dracut, and systemd Fix can't-boot issues on Linux Who This Book Is
For Linux users, administrators, and developers.
See how Domain-Driven Design (DDD) combines with Jakarta EE
MicroProfile or Spring Boot to offer a complete suite for building
enterprise-grade applications. In this book you will see how these
all come together in one of the most efficient ways to develop
complex software, with a particular focus on the DDD process.
Practical Domain-Driven Design in Enterprise Java starts by
building out the Cargo Tracker reference application as a
monolithic application using the Jakarta EE platform. By doing so,
you will map concepts of DDD (bounded contexts, language, and
aggregates) to the corresponding available tools (CDI, JAX-RS, and
JPA) within the Jakarta EE platform. Once you have completed the
monolithic application, you will walk through the complete
conversion of the monolith to a microservices-based architecture,
again mapping the concepts of DDD and the corresponding available
tools within the MicroProfile platform (config, discovery, and
fault tolerance). To finish this section, you will examine the same
microservices architecture on the Spring Boot platform. The final
set of chapters looks at what the application would be like if you
used the CQRS and event sourcing patterns. Here you'll use the Axon
framework as the base framework. What You Will Learn Discover the
DDD architectural principles and use the DDD design patterns Use
the new Eclipse Jakarta EE platform Work with the Spring Boot
framework Implement microservices design patterns, including
context mapping, logic design, entities, integration, testing, and
security Carry out event sourcing Apply CQRS Who This Book Is For
Junior developers intending to start working on enterprise Java;
senior developers transitioning from monolithic- to
microservices-based architectures; and architects transitioning to
a DDD philosophy of building applications.
Implement application programming interface (API) usability,
security, availability, reliability, and scalability to extend your
company's market and potentially generate revenue. Businesses know
they need to extend their markets into the digital world, and
expose internal data to the Internet. This book shows how
stakeholders within an organization can make it a successful
journey. Stakeholder needs are not identical and departments
experience difficulties discussing requirements with each other due
to their different fundamental understanding of the process. The
goal of this book is to introduce a common language for all
business groups-developers, security experts, architects, product
managers-around APIs and provide an overview of all aspects that
need to be considered when exposing internal data. Most of the
content in this book is based on feedback from real-world
enterprise customer questions, challenges, and business scenarios.
Practical guidance is provided on the business value of APIs, the
general requirements to know, and how to undertake an
audience-based implementation. You will learn how to protect access
to data, as well as API error handling, documentation, management,
integration, and more. What You'll Learn Know the types of APIs and
their business and technical requirements The main benefits of
APIs, including business value, loose coupling, and frequent
updates Protect access to APIs through role-based access,
attribute-based access, and rate limiting Distinguish between OAuth
and OpenID Connect, and know how they both work Manage API error
handling, including what should and should not be handled
Understand the distinction between runtime, dynamic data, and
static data Leverage external APIs as part of your own APIs Who
This Book Is For API developers, API security experts, software
architects, product owners, and business owners
|
|