{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2026-05-20T23:55:05.117Z", "attributedTo":"https://gopinath.org/actors/rahul", "replies":"https://gopinath.org/objects/Eo4QWVwlu-8/replies", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://gopinath.org/actors/rahul/followers"], "content":"

A tutorial of the #RPNI algorithm for inferring regular input grammars when given only accepted and rejected examples (positive and negative examples). I had posted the L* algorithm before.

This is part of my ongoing effort to document various algorithms relating to grammars including various algorithms for parsing, random sampling of fixed size strings, and grammar fuzzing.

Note: Pyodide takes a little time to initialize, but it should be faster to initialize than spinning up the binder service from Jupyter (but slower to execute).

https://rahul.gopinath.org/post/2025/10/24/rpni-learning-regular-languages/

", "mediaType":"text/html", "attachment":[], "tag":[ {"type":"Hashtag","name":"#RPNI","href":"https://gopinath.org/tags/RPNI"} ], "type":"Note", "id":"https://gopinath.org/objects/92bA9ZWsQSQ" }