Welcome to LibLET

LibLET is a library developed as a teaching aid for the Linguaggi e traduttori class at the Computer Science department of Università degli Studi di Milano by Massimo Santini.

The main aim of this library is to provide a set of convenient data types representing the usual objects of study of formal languages and parsing such as, for example: grammars, productions, trees, derivations, automata… so that one can implement (and experiment with) classic formal languages algorithms with minimal effort. For this reason, the library itself does not include any ready made implementation, the point being exactly the opposite: to stimulate teachers and students to write their own concrete implementations starting from informal textbook descriptions of classical algorithms, but being able to use the high level data types provided by the library. Moreover, for most of such types, a rich display is provided so that Jupyter can be fruitfully used to explore and experiment with such algorithms and implementations.

Get started with Installation and then get an overview with the Examples. The rest of the docs describe each component of LibLET in detail, with a full reference in the API section.


Please observe that this library uses a beaconing mechanism based on the Google Analytics Measurement Protocol, see the Installation on how to disable it.

User’s Guide

This part of the documentation, which is mostly prose, focuses on step-by-step instructions to install the library and use if for some common tasks.

API Reference

If you are looking for information on a specific function, class or method, this part of the documentation is for you.