About:

Research in Software Engineering from Rahul Gopinath

Website:

Specializations:

Subscribe to RSS:
This tutorial provides a comprehensive implementation of the RPNI algorithm, which infers input specifications from positive and negative samples. It discusses the construction of a Prefix Tree Acceptor (PTA) and the iterative mer...
This post outlines best practices for using Makefiles, particularly focusing on GNU Make. It emphasizes the importance of automatic variables, proper dependency management, and the use of sentinels to avoid issues with file corrup...
This tutorial provides a step-by-step guide to building a simple Prolog interpreter in Python. It covers essential Prolog concepts such as facts, rules, queries, variables, predicates, and the execution process. The implementation...
The text is a tutorial on the implementation of shift-reduce parsers in Python. It explains the concepts of LR(0), SLR(1), LALR(1), and LR(1) parsers, and provides Python code snippets for the implementation steps. The tutorial al...
The text discusses the concept of Search Based Fuzzing and how to compute branch distance for computing the fitness score of an input in flipping a branch condition. It explains the process of generating candidate inputs for a giv...
The text discusses the concept of fuzzing and how it can be used to test software systems. It explains the limitations of random inputs and introduces the idea of search-based testing to guide new inputs toward uncovered program e...
This tutorial explains how to design test cases that effectively cover features of a given context-free grammar using the k-path strategy. It discusses the definitions, syntax-based testing, k-paths, computing k-paths, possible k-...
The post is a tutorial on writing a simple context-free grammar that can parse custom data formats. It explains the terms used, the structure of a context-free grammar, and how to design a grammar for regular expressions. It also ...
The text provides a detailed guide on how to host your own ActivityPub instance for free. It includes steps on DNS, Ktistec, Oracle Cloud, and HTTPS Frontend. It also explains how to compile Ktistec externally and copy it over to ...
The text is a tutorial on implementing Angluin’s L-star algorithm with PAC learning for inferring input grammars of blackbox programs in Python. It discusses how to parse with, fuzz with, and manipulate regular and context-free gr...
The text discusses efficient matching with regular expressions, focusing on the Thompson algorithm as a solution to avoid exponential worst-case due to backtracking. It explains the Python implementation of the algorithm and the N...
The text discusses minimizing a deterministic regular grammar or a DFA. It explains that a deterministic regular grammar is a DFA represented as a regular grammar and how to minimize it using the classical algorithm. The post also...
The text discusses the concept of left recursion in context-free grammars and provides a solution for eliminating left-recursion from context-free grammars. It explains the difference between direct and indirect left-recursion and...