Articles


Here I've collected links to the articles I've written online, both for this website and elsewhere.

Articles published on this website


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

Academic publications

Articles published on Gamedev.net


I've written a series of articles on algorithms and programming for the gamedev.net game development website. The series is called "Algorithmic Forays":

07.03.2004 AF 1 - Finite State Machines, basic definitions and examples
29.03.2004 AF 2 - Implementing Regular expressions, initial plans
28.04.2004 AF 3 - Introduction to DFA and NFA and their applications to regular expressions
07.06.2004 AF 4 - Structured application of NFA to regexes, basic NFA implementation
17.08.2004 AF 5 - Implementing Thompson's construction, regex parse tree
04.11.2004 AF 6 - Converting NFAs to DFAs, final regex implementation
29.01.2005 AF 7 - Memoization - speeding up recursive computations
02.05.2005 AF 8 - Implementing a software cache

These articles have been recently published as 3 chapters of the book - "Advanced Game Programming: A GameDev.net Collection" (ISBN-10: 1598638068). The full code for the FSM/regex chapter can be found here.

Articles published on Perlmonks


The following articles have been published as tutorials on perlmonks.org:

14.08.2002 Beginner's guide to Net::FTP
03.12.2002 Beginner's guide to File::Find