Demo Data from EDBT 2026 / reviewers in the wild / expert
Cuong Nguyen 0001
dblp:02/10311 · also Anh Cuong Nguyen
· DBLP profile ↗
6ranked-venue papers
3as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 3 first-authorSystems, architecture and hardware · 1Databases, data management, data science and information retrieval · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
3 papers |
Compilers and program optimization · 66% Program analysis · 14% Debugging and program repair · 12% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
High-performance computing · 100% |
Topics — the 8 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › approximate computing › precision tuning
floating-point precision tuning |
0.4 | 2 | 2016 | Floating-point precision tuning using blame analysis · ICSE 2016 Precimonious: tuning assistant for floating-point precision · SC 2013 |
Program analysis
dynamic analysis |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
Compilers and program optimization › approximate computing › precision tuning
mixed-precision tuning |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
Compilers and program optimization › approximate computing
precision tuning |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
Debugging and program repair
automated program repair |
0.1 | 1 | 2012 | Semantic patch inference · ASE 2012 |
High-performance computing
performance optimization at scale |
0.1 | 1 | 2016 | Floating-point precision tuning using blame analysis · ICSE 2016 |
Compilers and program optimization
program transformation |
0.0 | 1 | 2012 | Semantic patch inference · ASE 2012 |
Software maintenance and evolution
software evolution |
0.0 | 1 | 2012 | Semantic patch inference · ASE 2012 |
Methods — techniques the papers use, named apart from their topics
search-based optimization · 0.5dynamic analysis · 0.5blame analysis · 0.5search-based type tuning · 0.2pruning · 0.1depth-first search · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Floating-point precision tuning using blame analysisabstractWhile tremendously useful, automated techniques for tuning the precision of floating-point programs face important scalability challenges. We present Blame Analysis, a novel dynamic approach that speeds up precision tuning. Blame Analysis performs floating-point instructions using different levels of accuracy for their operands. The analysis determines the precision of all operands such that a given precision is achieved in the final result of the program. Our evaluation on ten scientific programs shows that Blame Analysis is successful in lowering operand precision. As it executes the program only once, the analysis is particularly useful when targeting reductions in execution time. In such case, the analysis needs to be combined with search-based tools such as Precimonious. Our experiments show that combining Blame Analysis with Precimonious leads to obtaining better results with significant reduction in analysis time: the optimized programs execute faster (in three cases, we observe as high as 39.9% program speedup) and the combined analysis time is 9x faster on average, and up to 38x faster than Precimonious alone. Cindy Rubio-González, Cuong Nguyen 0001, Benjamin Mehne, Koushik Sen, James Demmel, William Kahan, Costin Iancu, Wim T. L. P. Lavrijsen, David H. Bailey, David Hough 0001 |
ICSE | 2 |
| 2015 | Generating Succinct Test Cases Using Don't Care AnalysisabstractWe study the problem of reducing test cases generated by bit vector based symbolic execution test generators. In particular, we first consider a guileless test case generation approach that generates assignment statements for each symbolic scalars, array and structure elements and object fields. We show that test cases generated by this approach can be significantly verbose. We then propose a method for making the generated test cases more succinct using a novel analysis entitled don't care analysis. Don't care analysis identifies assignment statements that can be safely removed from the test cases without affecting the overall code coverage. Our algorithm is based on binary and delta-debugging search. Because it exploits the knowledge of the internal SAT solver, it is effective and efficient in practice. To our knowledge, this is the first fully automatic approach that reduces the sizes of test cases generated using symbolic execution. We implement our test case reduction technique for the KLEE test generation tool and evaluate on 295 programs and functions. Our results are encouraging: in average, the reduced test cases are 50 times smaller than the test cases generated by the guileless test case generator. In addition, since our don't care analysis is tightly integrated into the test case generation tool, its overhead to the overall test generation process is negligible. Cuong Nguyen 0001, Hiroaki Yoshida, Mukul R. Prasad, Indradeep Ghosh, Koushik Sen |
ICST | 1 |
| 2013 | Precimonious: tuning assistant for floating-point precisionabstractGiven the variety of numerical errors that can occur, floating-point programs are difficult to write, test and debug. One common practice employed by developers without an advanced background in numerical analysis is using the highest available precision. While more robust, this can degrade program performance significantly. In this paper we present Precimonious, a dynamic program analysis tool to assist developers in tuning the precision of floating-point programs. Precimonious performs a search on the types of the floating-point program variables trying to lower their precision subject to accuracy constraints and performance goals. Our tool recommends a type instantiation that uses lower precision while producing an accurate enough answer without causing exceptions. We evaluate Precimonious on several widely used functions from the GNU Scientific Library, two NAS Parallel Benchmarks, and three other numerical programs. For most of the programs analyzed, Precimonious reduces precision, which results in performance improvements as high as 41%. Cindy Rubio-González, Cuong Nguyen 0001, Hong Diep Nguyen, James Demmel, William Kahan, Koushik Sen, David H. Bailey, Costin Iancu, David Hough 0001 |
SC | 2 |
| 2012 | Semantic patch inferenceabstractWe propose a tool for inferring transformation specifications from a few examples of original and updated code. These transformation specifications may contain multiple code fragments from within a single function, all of which must be present for the transformation to apply. This makes the inferred transformations context sensitive. Our algorithm is based on depth-first search, with pruning. Because it is applied locally to a collection of functions that contain related changes, it is efficient in practice. We illustrate the approach on an example drawn from recent changes to the Linux kernel. Jesper Andersen, Cuong Nguyen 0001, David Lo 0001, Julia Lawall, Siau-Cheng Khoo |
ASE | 2 |
| 2012 | Discovering complete API rules with mutation testingabstractSpecifications are important for many activities during software construction and maintenance process such as testing, verification, debugging and repairing. Despite their importance, specifications are often missing, informal or incomplete because they are difficult to write manually. Many techniques have been proposed to automatically mine specifications describing method call sequence from execution traces or source code using frequent pattern mining. Unfortunately, a sizeable number of such “interesting” specifications discovered by frequent pattern mining may not capture the correct use patterns of method calls. Consequently, when used in software testing or verification, these mined specifications lead to many false positive defects, which in turn consume much effort for manual investigation. We present a novel framework for automatically discovering legitimate specifications from execution traces using a mutation testing based approach. Such an approach gives a semantics bearing to the legitimacy of the discovered specifications. We introduce the notion of maximal precision and completeness as the desired forms of discovered specifications, and describe in detail suppression techniques that aid efficient discovery. Preliminary evaluation of this approach on several open source software projects shows that specifications discovered through our approach, compared with those discovered through frequent pattern mining, are much more precise and complete. When used in finding bugs, our specifications also locate defects with significantly fewer false positives and more true positives. Cuong Nguyen 0001, Siau-Cheng Khoo |
MSR | 1 |
| 2011 | Extracting Significant Specifications from Mining through Mutation Testing
Cuong Nguyen 0001, Siau-Cheng Khoo |
ICFEM | 1 |