Catalogue Search | MBRL
Search Results Heading
Explore the vast range of titles available.
MBRLSearchResults
-
DisciplineDiscipline
-
Is Peer ReviewedIs Peer Reviewed
-
Series TitleSeries Title
-
Reading LevelReading Level
-
YearFrom:-To:
-
More FiltersMore FiltersContent TypeItem TypeIs Full-Text AvailableSubjectCountry Of PublicationPublisherSourceTarget AudienceDonorLanguagePlace of PublicationContributorsLocation
Done
Filters
Reset
7,368
result(s) for
"Compilers"
Sort by:
The indolent lambdification of Java
by
Bacchelli, Alberto
,
Sawant, Anand Ashok
,
Petrulio Fernando
in
Compilers
,
Consumers
,
Investigations
2021
As Java 8 introduced functional interfaces and lambda expressions to the Java programming language, the JDK API was changed to introduce support for lambda expressions, thus allowing consumers to define lambda functions when using Java’s collections. While the JDK API allows for a functional paradigm, for API consumers to be able to completely embrace Java’s new functional features, third-party APIs must also support lambda expressions. To understand the current state of the Java ecosystem, we investigate (i) the extent to which third-party Java APIs have changed their interfaces, (ii) why or why not they introduce functional interface support and (iii) in the case the API has changed its interface how it does so. We also investigate the consumers’ perspective, particularly their ease in using lambda expressions in Java with APIs. We perform our investigation by manually analyzing the top 50 popular Java APIs, conducting in-person and email interviews with 23 API producers, and surveying 110 developers. We find that only a minority of the top 50 APIs support functional interfaces, the rest does not support them, predominantly in the interest of backward compatibility. Java 7 support is still greatly desirable due to enterprise projects not migrating to newer versions of Java. This suggests that the Java ecosystem is stagnant and that the introduction of new language features will not be enough to save it from the advent of new languages such as Kotlin (JVM based) and Rust (non-JVM based).
Journal Article
Code Transformation Impact on Compiler-based Optimization: A Case Study in the CMSSW
by
Ploensin, Teerit
,
Piromsopa, Krerk
,
Srimanobhas, Norraphat
in
Compilers
,
Optimization
,
Physics
2021
In this paper, we study the benefit of applying loop transformations to a part of module in the CMS software. Particularly, we focus at the effect of loop transformations in term of performance improvement from the optimization process of compilers. Loop optimizations have been considered at low-level phase, such as loop unrolling using compiler directive. For high-level code transformations such as index set splitting and loop reordering, we adopt the polyhedral model to simplify the transformations. In this study, our loop optimization has been evaluated quantitatively. We study the impact on loops execution speed up and its instruction executed. Our observation shows that high-level loop optimizations can reduce both execution time and the number of instruction. This behavior suggested that simple loop transformations can trigger other optimizations. Moreover, we not only improve the overall performance, but also reduce the number of instruction. The results show that loop optimizations yield the speed up between 1.5 and 1.7.
Journal Article
Compiler construction : 7th International Conference, CC '98, held as part of the European Joint Conferences on the Theory and Practice of Software, ETAPS '98, Lisbon, Portugal, March 28-April 4, 1998 : proceedings
by
CC '98 (1998 : Lisbon, Portugal)
,
Koskimies, Kai editor
in
Compilers (Computer programs) Congresses.
,
Software engineering Congresses
1998
Research on uncovering parallelism in perfect loop nests for GCC compiler
2024
To improve the ability to uncover parallelism in perfect loop nests for the GCC compiler, a method that utilizes the lambda transformation technique to uncover potential parallelism is proposed. Based on data references, dependence distance vectors and dependence direction vectors generated during the GIMPLE phase of the GCC compilation process, the GIMPLE form of perfect loop nests is converted into lambda representation in this paper, and the proposed method implements legal transformations on lambda representation for uncovering parallel loops in arbitrary loop nests. This method is integrated into the dependency analysis pass of the GCC compiler and has been experimentally validated on integer and floating-point benchmarks from the SPEC CPU2006 benchmarks. The results demonstrate that it can effectively enhance the existing loop analysis capabilities, loop transformation abilities, and loop parallelism uncovering capabilities of GCC. This method provides a reference for research on automatic parallelization techniques and holds practical application value within the GCC compiler.
Journal Article
Code generation with Roslyn
\"Learn how Roslyn's new code generation capability will let you write software that is more concise, runs faster, and is easier to maintain. You will learn from real-world business applications to create better software by letting the computer write its own code based on your business logic already defined in lookup tables. Code Generation with Rosyln is the first book to cover this new capability. You will learn how these techniques can be used to simplify systems integration so that if one system already defines business logic through lookup tables, you can integrate a new system and share business logic by allowing the new system to write its own business logic based on already existing table-based business logic. One of the many benefits you will discover is that Roslyn uses an innovative approach to compiler design, opening up the inner workings of the compiler process. You will learn how to see the syntax tree that Roslyn is building as it compiles your code. Additionally, you will learn to feed it your own syntax tree that you create on the fly.\"-- Provided by publisher
Sampling in software engineering research: a critical review and guidelines
2022
Representative sampling appears rare in empirical software engineering research. Not all studies need representative samples, but a general lack of representative sampling undermines a scientific field. This article therefore reports a critical review of the state of sampling in recent, high-quality software engineering research. The key findings are: (1) random sampling is rare; (2) sophisticated sampling strategies are very rare; (3) sampling, representativeness and randomness often appear misunderstood. These findings suggest that software engineering research has a generalizability crisis. To address these problems, this paper synthesizes existing knowledge of sampling into a succinct primer and proposes extensive guidelines for improving the conduct, presentation and evaluation of sampling in software engineering research. It is further recommended that while researchers should strive for more representative samples, disparaging non-probability sampling is generally capricious and particularly misguided for predominately qualitative research.
Journal Article
Practical TLA+ : planning driven development
Learn how to design complex, correct programs and fix problems before writing a single line of code. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the design itself for bugs. You'll learn how even a short TLA+ spec can find critical bugs. Start by getting your feet wet with an example of TLA+ used in a bank transfer system, to see how it helps you design, test, and build a better application. Then, get some fundamentals of TLA+ operators, logic, functions, PlusCal, models, and concurrency. Along the way you will discover how to organize your blueprints and how to specify distributed systems and eventual consistency. Finally, you'll put what you learn into practice with some working case study applications, applying TLA+ to a wide variety of practical problems: from algorithm performance and data structures to business code and MapReduce. After reading and using this book, you'll have what you need to get started with TLA+ and how to use it in your mission-critical applications. What You'll LearnRead and write TLA+ specificationsCheck specs for broken invariants, race conditions, and liveness bugsDesign concurrency and distributed systemsLearn how TLA+ can help you with your day-to-day production workWho This Book Is ForThose with programming experience who are new to design and to TLA+.
Dung beetle optimizer: a new meta-heuristic algorithm for global optimization
2023
In this paper, a novel population-based technique called dung beetle optimizer (DBO) algorithm is presented, which is inspired by the ball-rolling, dancing, foraging, stealing, and reproduction behaviors of dung beetles. The newly proposed DBO algorithm takes into account both the global exploration and the local exploitation, thereby having the characteristics of the fast convergence rate and the satisfactory solution accuracy. A series of well-known mathematical test functions (including both 23 benchmark functions and 29 CEC-BC-2017 test functions) are employed to evaluate the search capability of the DBO algorithm. From the simulation results, it is observed that the DBO algorithm presents substantially competitive performance with the state-of-the-art optimization approaches in terms of the convergence rate, solution accuracy, and stability. In addition, the Wilcoxon signed-rank test and the Friedman test are used to evaluate the experimental results of the algorithms, which proves the superiority of the DBO algorithm against other currently popular optimization techniques. In order to further illustrate the practical application potential, the DBO algorithm is successfully applied in three engineering design problems. The experimental results demonstrate that the proposed DBO algorithm can effectively deal with real-world application problems.
Journal Article