首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由ocamllex生成的文件

由ocamllex生成的文件
EN

Stack Overflow用户
提问于 2013-07-04 17:11:07
回答 1查看 180关注 0票数 0

理论上说,关于lex工具(我读过ocamllex),它将把一组正则表达式转换为C (OCaml)代码,用于DFA (实际上在NFA和NFA2DFA中)。DFA M的形式定义为5元组M={ Q,Sigma,transition_function,q0,F}。我在生成的文件中发现了以下内容:

  • 一个名为__ocaml_lex_tables的记录,包含来自词法模块的字段
  • 递归函数

DFA的对象/结构与ocamllex生成的结构之间存在映射?我看不见它..。此外,我在谷歌上搜索一些帮助,但我没有找到任何有用的例子。

ocamllex工具的答案在DFA上下文中是有意义的,例如7种状态、279个转换、1158字节的表大小。

它是一个状态转换表吗?怎么“读”它?谢谢您的链接/提示!

EN

回答 1

Stack Overflow用户

发布于 2013-07-05 01:45:56

ocamllex关注的是速度,因此在生成的代码中看不到显式状态。理论表示法并不总是最快的,在实践中,它通常被转化为考虑到常数因子速度的改进。状态很可能用生成的数组中的索引来表示。您可以把它看作是将程序集代码映射回真实的源代码--在一般情况下,不可能立即执行,因为编译器执行一些优化,并为最紧凑和最有效的代码而奋斗,ocamllex也是如此。有趣的问题是你为什么要这么做?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17475418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档