The Curious Engineer

All blogs / Testing / QA

Rahul Gopinath

rahul.gopinath.org

Research in Software Engineering from Rahul Gopinath

Testing / QACompilersAlgorithms / data structuresPython

Posts
171 from 20 Oct 2003 to 13 Aug 2026
Posting
monthly (6 in the last year)
Kind
personal blog
Feed
https://rahul.gopinath.org/feed.xml

2026 6

  1. (ISSRE 2026)
  2. (ISSRE 2026)
  3. (ASE 2026)
  4. Learning Regular Languages with the TTT Algorithm
  5. A Simple Runtime Invariant Miner
  6. (NDSS Workshop 2026)

2025 7

  1. Learning Regular Languages with RPNI Algorithm
  2. GNU Makefiles - best practices
  3. (ICSME 2025)
  4. A Tiny Prolog in Python
  5. (ISSRE 2025)
  6. (ISSRE 2025)
  7. Soft2201 Comp2201

2024 9

  1. Shift-Reduce Parsers LR(0) SLR(1), LALR(1) and LR(1)
  2. Search Based Fuzzing -- Computing Branch Distance
  3. Search Based Fuzzing -- Computing Approach Level
  4. (ESEM 2024)
  5. Grammar Coverage with K-Paths for Syntax Testing
  6. Building Grammars for Fun and Profit
  7. (TOSEM 2024)
  8. Hosting your own ActivityPub instance for free
  9. Learning Regular Languages with L* Algorithm

2023 7

  1. Efficient Matching with Regular Expressions
  2. Minimizing a Deterministic Regular Grammar or a DFA
  3. Removing Left Recursion from Context Free Grammars
  4. (Usenix Security 2023)
  5. Valiant's Parser
  6. Mutation Analysis and Mutation Testing
  7. CYK Parser

2022 10

  1. (FSE 2022)
  2. Generalized LL (GLL) Parser
  3. Incorporating Indentation Parsing in Standard Parsers -- PEG
  4. Parsing Indentation Sensitive Languages
  5. A Fast Grammar Fuzzer by Compiling the Grammar
  6. (NDSS Workshop 2022)
  7. Iterative deep copy of Python data structures
  8. (PLDI 2022)
  9. A Minimal Static Call Graph for Python Programs
  10. (arXiv 2022)

2021 18

  1. Converting a Regular Grammar to a Regular Expression
  2. Intersection Between a Context Free Grammar and a Regular Grammar
  3. Conjunction, Disjunction, and Complement of Regular Grammars
  4. Converting a Regular Expression to DFA using Regular Grammar
  5. Regular Expression to Regular Grammar
  6. Fuzzing With Regular Expressions
  7. Remove Empty (Epsilon) Rules From a Context-Free Grammar.
  8. Specializing Context-Free Grammars for Not Inducing A Fault
  9. Fault Expressions for Specializing Context-Free Grammars
  10. Specializing Context-Free Grammars for Inducing Multiple Faults
  11. Specializing Context-Free Grammars for Inducing Faults
  12. Fixing Python Default Parameters
  13. Uniform Random Sampling of Strings from Context-Free Grammar
  14. ICSE 2021
  15. Error Correcting Earley Parser
  16. Some Sillyness with Python Iterators as Pipes
  17. Earley Parser
  18. Blackbox Inference of Context Free Grammars -- Verification

2020 18

  1. Can Mutation Analysis be used for Evaluating Static Analysis Tools?
  2. (FSE 2020)
  3. (ASE 2020)
  4. Control Flow Graph from Python Bytecode
  5. Simple DDSet
  6. Semantic Testcase Reducer
  7. (ISSTA 2020)
  8. (ISSTA 2020)
  9. DDSet and how to abstract a minimized failure inducing input to a failure pattern
  10. Mutation Analysis and Its Industrial Applications Special Issue in STVR
  11. Recursive Descent Context Free Parsing with Left Recursion
  12. Simple Parser For Context Free Languages with Forking Stacks
  13. Simple Combinatory Parsing For Context Free Languages
  14. On the Power of Context Free Grammar Vs Parsing Expression Grammars -- Current Status
  15. Pyodide Canvas
  16. Test Page for Pyodide
  17. Test Page for Skulpt
  18. Test Page for Klipse

2019 11

  1. Automatically Preprocessing Python Files with Codecs
  2. The Python Control Flow Graph
  3. A tiny and incomplete Python Virtual Machine
  4. Python Meta Circular Interpreter
  5. Hierarchical Delta Debugging
  6. Delta Debugging
  7. Parsing XML with a context free grammar
  8. A simple grammar miner
  9. adapted
  10. (PLDI 2019)
  11. The simplest grammar fuzzer in the world

2018 12

  1. Rehabilitating Mutant Immortals
  2. A self-learning proxy-network with reinforcement learning (Q-Learning)
  3. A simple split-stream mutation engine in Python
  4. Representing a Grammar in Python
  5. When are comprehensions (list, set) harmful in Python?
  6. Generating a parser in c++ with ANTLR4
  7. Importing Python Modules
  8. Recursive descent parsing with Parsing Expression (PEG) and Context Free (CFG) Grammars
  9. How hard is parsing a context-free language? - recursive descent parsing by hand
  10. A tale of two little languages -- an engineering story
  11. Meltdown - review
  12. Spectre - review

2017 2

  1. (ICST 2017)
  2. Have We Gotten Better at Writing Code?

2016 9

  1. Equivalent, Redundant, Trivial and Stubborn Mutants
  2. (FSE 2016)
  3. Using Mutants to Improve Test Suites.
  4. Mutation 2017 at Tokyo
  5. Is Code Coverage Effective in Preventing Bugs?
  6. Various Definitions of Minimal Mutant Sets.
  7. Shared Environments with Prefixed Nix
  8. (ICSE 2016)
  9. (ICSE 2016)

2015 6

  1. Mutation 2016 at Chicago
  2. (ISSRE 2015)
  3. Should We Use Mutation Score Instead of Coverage for Measuring Test Suite Effectiveness?
  4. Weak, Firm, and Strong Mutation
  5. Mellanox Cookbook Status Update
  6. Fault, Error, Failure, and Mutants

2014 6

  1. Mellanox Openstack status update
  2. Mutation Selection Approaches
  3. Foundations of Mutation Analysis
  4. (ISSRE 2014)
  5. Static analysis tools for Ruby (for Puppet Codebase)
  6. (ICSE 2014)

2013 2

  1. The Mutation Analysis Landscape
  2. Clone Detection Tools

2012 1

  1. Solaris 11 IPS Packages for Puppet Facter and Hiera

2011 13

  1. Version Control Systems
  2. Applicatives
  3. Using forall - RankN Types
  4. Haskell environment tricks
  5. Template Haskell
  6. Construcing a language - Wrapping up
  7. Construcing a language - Adding Scope lookup
  8. Construcing a language - A standard library
  9. Construcing a language - More Semantics
  10. Construcing a language - Bigstep Semantics
  11. Constructing a language - Slightly more Parsing
  12. Constructing a language - Simple Parsing
  13. Programming Language Fundamentals

2010 3

  1. HTTP WebCache Topologies
  2. Distributed HTTP Caching Mechanisms
  3. GHCI tricks

2009 2

  1. sun hpc clustertools for openmpi
  2. A simple extension to the hg (mercurial) forest (fdiff fcommit and fimport)

2007 14

  1. The Proxy side
  2. SUNW to JAVA
  3. compile time options for binary distribution of Squid
  4. A thin slice of Haskell
  5. Homoiconic languages
  6. (SJSWS7.0 VII) Scripting with servlets [php - using quercus]
  7. (SJSWS7.0 VI) Scripting with servlets [groovy - using jsr223]
  8. (SJSWS7.0 V) Scripting with servlets [jacl]
  9. (SJSWS7.0 II) Scripting with servlets [jscheme]
  10. (SJSWS7.0 IV) Scripting with servlets [sleep]
  11. (SJSWS7.0 III) Scripting with servlets [rhino]
  12. (SJSWS7.0 I) Scripting with servlets [jruby]
  13. (SJSWS7.0 0) Scripting with servlets - prologue
  14. Getting FastCGI to play nice with ruby (Sun Java System Web Server 7.0 )

2006 11

  1. Front ending an ftp server - Using SJS Web Proxy Server to boost Ftp Server performance.
  2. (wadm X) The mists of time - implementing cron
  3. (wadm IX) Dancing with XSLT
  4. (wadm VIII) Through the looking glass - implement extensions
  5. (wadm VII) Halloween - dressing up as a filesystem
  6. (wadm V) The java nature
  7. (wadm VI) Walking with the unknown - parsing Apache httpd.conf
  8. (wadm IV) Log Analyzer
  9. (wadm III) ACL, Parse thyself
  10. (wadm II) More wadm
  11. using openmp on a 64 threads system

2005 1

  1. (wadm I) Using wadm in Sun Java System Web Server 7.0

2004 2

  1. mod_scheme 3.3.a
  2. mod_scheme updates

2003 1

  1. mod_scheme 3.0