Toggle navigation
Eli Bendersky's website
About
Projects
Archives
Articles in tag "Compilation"
2024.07.30:
Building static binaries with Go on Linux
2023.07.08:
Ungrammar in Go and resilient parsing
2022.09.17:
Basic Go tooling for generics
2022.09.03:
Parent links in Go ASTs
2022.07.11:
Book review: "Crafting Interpreters" by Robert Nystrom
2022.07.09:
Exploring function parameter types with Go tooling
2022.06.20:
Why is it easy to implement a Lisp?
2022.06.06:
Performance of coroutine-style lexers in Go
2022.05.30:
Rewriting the lexer benchmark in Rust
2022.05.03:
A faster lexer in Go
2022.04.02:
Faster sorting with Go generics
2022.03.28:
Interface method calls with the Go register ABI
2021.10.02:
Rewriting Go source code with AST tooling
2020.09.12:
Writing multi-package analysis tools for Go
2019.07.04:
Go compiler internals: adding a new statement to Go - Part 2
2019.07.03:
Go compiler internals: adding a new statement to Go - Part 1
2017.05.10:
Adventures in JIT compilation: Part 4 - in Python
2017.05.01:
Adventures in JIT compilation: Part 3 - LLVM
2017.03.22:
Adventures in JIT compilation: Part 2 - an x64 JIT
2017.03.20:
Adventures in JIT compilation: Part 1 - an interpreter
2016.05.05:
On the Composite and Interpreter design patterns
2015.10.16:
Directed graph traversal, orderings and applications to data-flow analysis
2015.08.21:
C++: Deleting destructors and virtual operator delete
2015.05.18:
On parsing C, type declarations and fake headers
2015.04.18:
Calling back into Python from llvmlite-JITed code
2015.02.08:
Python version of the LLVM tutorial
2015.01.26:
Building and using llvmlite - a basic example
2014.11.11:
Samples for using LLVM and Clang as a library
2014.07.29:
AST matchers and Clang refactoring tools
2014.06.04:
Using ASDL to describe ASTs in compilers
2014.05.21:
Compilation databases for Clang-based tools
2014.05.01:
Modern source-to-source transformation with Clang and libTooling
2014.03.27:
Rewriting the lexer benchmark in Go
2014.01.15:
Some thoughts on LLVM vs. libjit
2013.11.05:
How to JIT - an introduction
2013.09.16:
Analyzing function CFGs with LLVM
2013.08.03:
pycparser v2.10 released
2013.07.30:
pycparser - call for testing before release
2013.07.16:
Hand-written lexer in JavaScript compared to the regex-based ones
2013.06.25:
Regex-based lexical analysis in Python and JavaScript
2013.02.25:
A deeper look into the LLVM code generator, Part 1
2013.01.03:
Assembler relaxation
2012.12.27:
pycparser v2.09 released, project moved to BitBucket
2012.11.24:
Life of an instruction in LLVM
2012.08.02:
Parsing expressions by precedence climbing
2012.07.05:
How Clang handles the type / variable name ambiguity of C/C++
2012.06.28:
The type / variable name ambiguity in C++
2012.06.08:
Basic source-to-source transformation with Clang
2012.02.03:
Adventures in parsing C: ASTs for switch statements
2011.07.03:
Parsing C++ in Python with Clang
2011.05.02:
The context sensitivity of C’s grammar, revisited
2010.10.31:
pycparser now supports C99
2010.02.08:
Removing epsilon productions from context free grammars
2010.01.28:
Generating random sentences from a context free grammar
2010.01.02:
Top-Down operator precedence (Pratt) parsing
2009.11.28:
Python internals: Working with Python ASTs
2009.05.22:
Faking standard C header files for pycparser
2009.05.19:
Parsing VHDL is [very] hard
2009.03.20:
A recursive descent parser with an infix expression evaluator
2009.03.14:
Some problems of recursive descent parsers
2009.02.16:
Abstract vs. Concrete Syntax Trees
2008.11.15:
pycparser v1.0 is out!
2008.10.18:
Implementing cdecl with pycparser
2008.10.14:
Parsing C: more on #line directives
2008.10.10:
On parsing the C standard library headers
2008.09.26:
Recursive descent, LL and predictive parsers
2008.07.11:
ASTs for analyzing C
2007.11.24:
The context sensitivity of C's grammar
2007.11.15:
the answer for parsing C ?
2007.10.02:
Analyzing C source code
2005.04.08:
C -> Parrot compiler
2004.11.15:
considerations in MIXAL parsing
2004.10.24:
a VHDL parser in Perl
2004.05.28:
bootstrapping parsers
2004.01.29:
Parse::RecDescent vs. YACC