Compilers: Principles, Techniques, and Tools (2nd Edition)
By Alfred V. Aho, Monica S. Lam, R. Sethi, Jeffrey D. Ullman. 2006
1,249 citations recorded by the source corpus.
View Paper: https://www.semanticscholar.org/paper/69c11688a09cebe750d90b37b3296e49d4d8805d
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
- Yoshua Bengio
- Percy Liang
- Quoc V. Le
- Ruslan Salakhutdinov
- Mohit Bansal
- Trevor Darrell
- Dacheng Tao
- Zhe Gan
Citations in the corpus
- A genetic programming approach to automated software repair (2009, background): “There are a number of commonly accepted structures for representing programs, such as control flow graphs (CFGs) and abstract syntax trees (ASTs) [1].”
- Abstract Syntax Networks for Code Generation and Semantic Parsing (2017, background): “The wellformedness case is of particular interest, since it can readily be enforced by representing outputs as abstract syntax trees (ASTs) (Aho et al., 2006), an approach that can be seen as a much lighter weight”
- CrypTFlow: Secure TensorFlow Inference (2019, methodology): “In particular, we have implemented several standard dataflow analyses and compiler optimizations [8]: reaching definitions, liveness analysis, and so on.”
- Extracting code from programming tutorial videos (2016, methodology): “Error Correction in Parsers Our approach is also related to automatic error correction in parsing [2, 20].”
- Joint Entity Resolution (2012, background): “Job scheduling [19] and software pipelining [20] are related topics to our problem of assigning datasets to processors.”
- COSET: A Benchmark for Evaluating Neural Program Embeddings (2019, unknown): “’s compiler textbook [13] and the Eclipse IDE documentation [14; 15] for the examples of each transformation.”
- Erays: Reverse Engineering Ethereum's Opaque Smart Contracts (2018, background): “The details of these algorithms are outside the scope of this paper, but they are well described in the literature [8, 38, 47].”
- Using web corpus statistics for program analysis (2014, methodology): “[1]), but we have made a number of changes in order to fit the needs of extracting n-grams.”
- A Rewriting System for Convex Optimization Problems (2017, methodology): “Whereas the second phase of a compiler optimizes programs (Aho et al., 2006, § 1.2.5), the second phase of our rewriting system analyzes problems, selecting for each a suitable target; an imperfect analogy might compare our analysis phase to a static analysis tool like Frama-C (Kirchner, Kosmatov,…”
- A Survey on Pretrained Language Models for Neural Code Intelligence (2022, background): “…that word boundaries are naturally determined by spaces and punctuations, the whitespace in programming languages is sometimes optional and the tokenizer shipped with the programming language scans to-kens from source code based on a strictly-defined regular grammar (Louden, 1997; Aho et al., 2006).”
- Intriguing Properties of Adversarial ML Attacks in the Problem Space (2019, methodology): “Due to their generality, we adapt the code transformation definitions from the compiler engineering literature [1, 58] to formalize general problem-space transformations.”
- Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks (2020, background): “Static analysis is the process of analyzing a program without executing it [1].”
- Smashing the Gadgets: Hindering Return-Oriented Programming Using In-place Code Randomization (2012, methodology): “Although some of the transformations such as instruction reordering and register reassignment are also used by compilers and polymorphic code engines for code optimization [52] and obfuscation [35], applying them at the binary level—without having access to the higher-level structural and semantic i”
- Generating Efficient MCMC Kernels from Probabilistic Programs (2014, background): “Such programs are said to be in static single assignment (SSA) [11] form.”
- QuantumNAS: Noise-Adaptive Search for Robust Quantum Circuits (2021, methodology): “A quantum compiler translates a quantum program written in high-level programming languages to hardware instructions, which is an analogy to compiler and EDA tools in classical computations [98]–[102].”