繁体   English   中英

scala包scala.util.automata的目的是什么?

[英]What's the purpose of the Scala package scala.util.automata?

很久以前我看到了scala.util.automata软件包,最近在阅读一些ScalaDoc时就摔倒了。

有没有人在任何地方看到这个包用于什么目的?

我想知道这些类是否与解析器组合器有一些连接,或者它们是否是独立使用的?

这些类的名称如

class BaseBerrySethi
class DetWordAutom[T <: AnyRef]
trait Inclusion[A <: AnyRef]
class NondetWordAutom[T <: AnyRef]
class SubsetConstruction[T <: AnyRef]
class WordBerrySethi extends BaseBerrySethi 

和一个不是很有帮助的描述。

看起来他们将与Scala 2.9一起发货。

它是有限自动机转换的正则表达式的实现。 http://www2.in.tum.de/hp/file?fid=571 [PDF]有关创建NDFA的一种方法的示例, 请访问http://www.scala-lang.org/api/current /scala/util/regexp/WordExp.html ,虽然没有说明如何使用生成的自动机。 看起来自动机将通过重复调用“next”来使用,以BitSet的形式处理状态集并通过containsFinal检查每次以查看自动机是否已达到最终状态。 我没看到的是初始状态应该表示为什么,但似乎初始状态可能是一个空的BitSet。

这是我开始学习Scala时遇到的第一件事。 也发现了一些错误。 它并不是特别有用,甚至还有一些关于弃用它的讨论。

它确实实现了一种相当灵活的算法,将正则表达式一直转换为DFA,但DFA本身并不是特别灵活,iirc。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM