This article is the first in a two-part series presenting a software called “MeSCaL ”. This program is designed to test properties of regular languages. MeSCaL allows the user to define regular languages—either via regular expressions or finite automata—and to perform queries on them. These queries determine whether the input language belongs to a specific subclass of regular languages. While MeSCaL supports at present over one hundred such classes, this paper focuses on just twenty. These membership tests present an inherent difficulty: they often require analyzing an algebraic structure derived from the input language, known as its syntactic monoid. Unfortunately, the size of this monoid can grow exponentially relative to the size of the minimal automaton of the language. Therefore, to handle nontrivial cases efficiently, the challenge is to highly optimize the tests performed on this monoid. In particular, naïvely applying algorithms from the literature is doomed to failure: careful optimizations are essential. The aim of this article is to provide an overview of some of the key optimizations implemented in MeSCaL.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

A First Taste of MeSCaL, a Tool for Solving Membership Problems for Regular Languages

  • Thomas Place,
  • Marc Zeitoun

摘要

This article is the first in a two-part series presenting a software called “MeSCaL ”. This program is designed to test properties of regular languages. MeSCaL allows the user to define regular languages—either via regular expressions or finite automata—and to perform queries on them. These queries determine whether the input language belongs to a specific subclass of regular languages. While MeSCaL supports at present over one hundred such classes, this paper focuses on just twenty. These membership tests present an inherent difficulty: they often require analyzing an algebraic structure derived from the input language, known as its syntactic monoid. Unfortunately, the size of this monoid can grow exponentially relative to the size of the minimal automaton of the language. Therefore, to handle nontrivial cases efficiently, the challenge is to highly optimize the tests performed on this monoid. In particular, naïvely applying algorithms from the literature is doomed to failure: careful optimizations are essential. The aim of this article is to provide an overview of some of the key optimizations implemented in MeSCaL.