Archive for the 'Articles' Category

07.01.2014: Getting started with libjit – part 3
05.12.2013: The cost of dynamic (virtual calls) vs. static (CRTP) dispatch in C++
12.11.2013: Getting started with libjit – part 2
05.11.2013: How to JIT – an introduction
17.10.2013: Getting started with libjit – part 1
09.07.2013: Library order in static linking
25.02.2013: A deeper look into the LLVM code generator, Part 1
03.01.2013: Assembler relaxation
24.11.2012: Life of an instruction in LLVM
24.08.2012: Plugins in C
13.08.2012: How statically linked programs run on Linux
07.08.2012: Fundamental concepts of plugin infrastructures
02.08.2012: Parsing expressions by precedence climbing
16.04.2012: Python object creation sequence
23.03.2012: Python internals: how callables work
15.03.2012: Processing XML in Python with ElementTree
06.02.2012: Dependent name lookup for C++ templates
03.01.2012: Understanding the x64 code models
15.12.2011: Understanding lvalues and rvalues in C and C++
28.11.2011: Less copies in Python with the buffer protocol and memoryviews
11.11.2011: Position Independent Code (PIC) in shared libraries on x64
03.11.2011: Position Independent Code (PIC) in shared libraries
06.09.2011: Stack frame layout on x86-64
25.08.2011: Load-time relocation of shared libraries
14.08.2011: Python metaclasses by example
02.08.2011: Length-prefix framing for protocol buffers
17.07.2011: Django sessions – part III: User authentication
03.07.2011: Parsing C++ in Python with Clang
29.06.2011: Django sessions – part II: How sessions work
24.06.2011: Django sessions – part I: Cookies
17.05.2011: The Curiously Recurring Template Pattern in C++
15.05.2011: Understanding UnboundLocalError in Python
02.05.2011: The context sensitivity of C’s grammar, revisited
22.04.2011: C++ template syntax patterns
17.02.2011: The many faces of operator new in C++
07.02.2011: How debuggers work: Part 3 – Debugging information
04.02.2011: Where the top of the stack is on x86
27.01.2011: How debuggers work: Part 2 – Breakpoints
23.01.2011: How debuggers work: Part 1 – Basics
20.09.2010: Python internals: Symbol tables, part 2
18.09.2010: Python internals: Symbol tables, part 1
30.06.2010: Python internals: adding a new statement to Python
28.05.2010: The intuition behind Fisher-Yates shuffling
05.04.2010: pthreads as a case study of good API design
08.02.2010: Removing epsilon productions from context free grammars
28.01.2010: Generating random sentences from a context free grammar
22.01.2010: Weighted random generation in Python
02.01.2010: Top-Down operator precedence parsing
30.10.2009: Handling out-of-memory conditions in C
21.10.2009: Are pointers and arrays equivalent in C?
29.08.2009: Co-routines as an alternative to state machines
12.08.2009: Framing in serial communications
12.06.2009: Safely using destructors in Python
27.04.2009: Using goto for error handling in C
28.03.2009: Efficient modular exponentiation algorithms
21.03.2009: Efficient integer exponentiation algorithms
20.03.2009: A recursive descent parser with an infix expression evaluator
14.03.2009: Some problems of recursive descent parsers
16.02.2009: Abstract vs. Concrete Syntax Trees
13.02.2009: Writing a game in Python with Pygame. Part IV
09.01.2009: Writing a game in Python with Pygame. Part III
07.01.2009: Variance of the sum of independent random variables
20.12.2008: Writing a game in Python with Pygame. Part II
13.12.2008: Writing a game in Python with Pygame. Part I
26.09.2008: Recursive descent, LL and predictive parsers
29.08.2008: Space-efficient list rotation
23.08.2008: Initializing an array in constant time
21.08.2008: Robust exception handling
15.08.2008: Intersection of 1D segments
18.07.2008: Reading C type declarations
01.02.2008: A subjective comparison between Perl and Ruby
24.11.2007: The context sensitivity of C’s grammar
02.06.2007: Logical operators in Perl and Ruby
25.11.2006: A taxonomy of typing systems
10.05.2006: Antialiasing filters and multirate systems
18.04.2006: Understanding Ruby blocks, Procs and methods
08.08.2004: Equality in Lisp
30.07.2004: lambda²
19.01.2004: The Jotto word game – analysis and a Perl implementation
26.12.2003: Finding out where a function was called from
26.12.2003: Initialization of structures and arrays in C++
23.07.2003: Variable initialization in C++
23.07.2003: Allocating multi-dimensional arrays in C++
23.07.2003: Correct usage of const with pointers