腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
带有
二进制
表达式
树
的
访问者
设计
模式
、
、
、
我目前正在尝试重构一些代码来实现
访问者
设计
模式
,但我在概念上理解所发生
的
事情时遇到了问题。当前代码基于字符数组(即
表达式
)创建一个
二进制
表达式
树
,然后按前缀顺序遍历
树
(使用Tree类中
的
遍历方法,
树
也是在其中构造
的
),然后在实现"IVisitor“接口
的
"Calculator”类中计算
表达式
为该类提供
的
惟一方
浏览 12
提问于2019-10-02
得票数 0
1
回答
编译器
设计
防止寄存器覆盖
、
、
、
、
我正试图为一个
带有
指令集
的
自行
设计
的
CPU编写一个编译器。CPU具有3个寄存器、2个输入寄存器(B和C)和一个输出寄存器(D)。例如,当执行ADD指令时,计算B和C
的
和并将其存储在D中。我试图用
访问者
设计
模式
编写编译器:我有一堆语言
树
类,如"IfStatement“、”加法“、"Integer”和一个
访问者
“编译器”。
访问者
将查看
树
的
每个节点,
浏览 0
提问于2016-01-31
得票数 1
回答已采纳
2
回答
访问者
设计
模式
中
的
循环依赖问题
、
、
、
我正在尝试实现
访问者
设计
模式
,为解释器构建
表达式
树
。我在头文件中声明了所有内容,并遇到了一个问题,我需要先定义
访问者
,但这是不可能
的
,因为我
的
Expr类需要在它之前定义
访问者
,但这是不可能
的
,因为其他类需要在前面定义Expr,而我只是不知道该怎么做。visitor.visitBinaryExpr(this); const Token oper;
浏览 7
提问于2021-10-06
得票数 1
1
回答
为什么
访问者
模式
通常只用于树木?
、
、
、
、
最近,我成了
访问者
设计
模式
的
粉丝(这是研究lambda
表达式
解析如何在C#中工作
的
一个副作用),并开始在我自己
的
代码中频繁使用它。然而,我注意到
的
是,当在文章/教程中讨论这种
模式
时,用例几乎总是
树
/图。 为什么是这种情况?这种
模式
对非图形数据结构(如列表和数组)也很有用吗?是否有什么关于游客
的
模式
,使它特别适合树木,而不是其他结构?
浏览 6
提问于2022-04-12
得票数 2
回答已采纳
2
回答
Iterator与
访问者
的
设计
模式
及如何
设计
、
、
、
通过在互联网上提供
的
关于
设计
模式
的
不同文章中
的
各种例子,我可以看到
访问者
模式
与遍历某些数据结构相关,通常是一种
树
或层次结构,我有点困惑,因为如果是这样的话,我们也可以使用Iterator
模式
。游客
设计
模式
与爱尔兰人
设计
模式
有何不同?另外,C#是如何使用
访问者
设计
模式
实现(模拟)“双调度”
的
?有
浏览 3
提问于2014-02-21
得票数 7
回答已采纳
2
回答
将表示数学
表达式
的
树
转换为没有多余括号
的
字符串
、
、
、
、
我想将(表示数学
表达式
的
树
)转换为实际
的
数学
表达式
(类似"a+b/c"
的
字符串)。
树
表示是您能想象到
的
最简单
的
表示:OperationNode(+, A, OperationNode(/, B, C))OperationNode(/, OperationNode(+, A,
浏览 1
提问于2018-11-25
得票数 2
回答已采纳
2
回答
使用
访问者
模式
设计
树
,如何实现不同类型
的
遍历?
我被问到一个理论
设计
问题,着眼于GoF
模式
。其想法是实现3个迭代器,以实现所需
的
遍历。它们有一个接口,
访问者
只需要与这个接
浏览 0
提问于2014-01-17
得票数 9
回答已采纳
2
回答
使用ExpressionVisitor有什么性能方面的考虑吗?
、
我目前正在阅读MSDN
的
文章“演练:创建IQueryable LInQ提供程序”,其中有很多ExpressionVisitor
的
用法。ExpressionVisitor使用
访问者
模式
遍历
表达式
树
。在我看来,像这样一遍又一遍地遍历
表达式
树
的
性能代价很高。这是真的吗?在创建我
的
IQueryProvider时,我应该关注这个问题吗?
浏览 0
提问于2013-02-03
得票数 0
回答已采纳
1
回答
代码引用和
表达式
树
、
、
我想知道这两个特性是如何在幕后实现
的
,有什么区别吗?也就是说,代码引用不是建立在旧
的
良好
表达式
树
之上
的
吗? 谢谢。
浏览 0
提问于2011-11-15
得票数 14
回答已采纳
2
回答
翻译
表达式
树
时如何推断括号
的
用法?
、
、
、
、
我正在致力于将
表达式
树
转换为类似于中缀表示法
的
格式;我不是在计算
树
或执行其操作。这棵
树
同时包含逻辑和关系操作,我想在翻译过程中以智能
的
方式发出括号。为了说明这一点,请考虑以下人为
设计
的
表达式
:如果我按顺序遍历这个
表达式
生成
的
表达式
树
,那么我将打印出以下
表达式<
浏览 2
提问于2012-08-21
得票数 8
回答已采纳
2
回答
数据解耦算法,当该算法需要派生类知识时
、
、
、
所以我写了一个简单
的
解释语言来帮助我做一些我经常做
的
事情。我设置了一个lexer,输入了一个抽象语法
树
生成器。 等等,每个派生类都包含
表达式
所需
的
信息,即变量包含标识符
的
std::string,
浏览 0
提问于2018-05-08
得票数 3
回答已采纳
1
回答
在Java中为任意对象生成Java文字语法
、
我正在编写一个工具,用于用任意值填充任意Java值对象,以JSON格式输出内容,并输出可粘贴到单元测试中
的
断言列表。这一点
的
核心是: + getter.getName() + 这将输出如下所示
的
行: assertEquals(42, actual.getIntegerValue());我可以通过一种方法来改进这一
浏览 1
提问于2014-06-20
得票数 1
3
回答
可视化c++数据结构
、
、
、
我正在寻找一个程序,以帮助我在c++中调试
树
。我
的
树
有数千个节点,我想在树形成时查看它,并查看问题节点和分支。操作系统并不重要。有人知道有什么程序可以做到这一点吗?
浏览 2
提问于2011-02-04
得票数 3
2
回答
访问者
模式
。对于一个完全抽象
的
接口,void*是可接受
的
返回类型吗?
、
我有一个AST,用通常
的
方式表示(抽象类型
的
节点
树
)。
访问者
觉得这是正确
的
方法,但
访问者
的
每个用例都有不同
的
返回类型,这使得很难看到如何为此实现接口。然而,这很复杂,因为每个对visit()
的
调用都需要一些关于被访问
表达式
的
上下文(例如,调用是独立
的
,还是被用作
二进制
表达式
的
一部分?)。这使得像
二进制
表
浏览 0
提问于2014-03-16
得票数 6
3
回答
使用
访问者
模式
的
树
转换
、
、
、
、
(免责声明:这些示例是在构建编译器
的
上下文中给出
的
,但这个问题完全是关于
访问者
模式
的
,不需要任何编译器理论知识。)我正在学习Andrew Appel
的
Java现代编译器实现,试图自学编译器理论(所以不,这不是家庭作业),我很难理解他想要如何使用Visitor
模式
将AST转换为IR
树
。IR,然后将它们与表示加号
表达式
的
BINOP链接起来。当然,这是不可能
的
,除非我修改所有的接受函数来返回额外
的
浏览 0
提问于2009-12-14
得票数 9
回答已采纳
2
回答
C#实现
的
动机是什么?
、
、
、
我必须为一个任务
设计
一个解决方案,我想使用一些理论上类似于C#
的
ExpressionVisitor
的
方法。 出于好奇,我打开了.NET源代码,让ExpressionVisitor看一看。从那时起,我一直在想为什么.NET团队会像他们一样实现
访问者
。我
的
意思是,接受方法本身不应该负责如何实现内部访问吗?方法中,该方法是从MemberInitExpression.Accept调用
的
,因此这里
的
Accept实现似乎没有任何好处。为什么不直接在基ExpressionVisito
浏览 2
提问于2015-01-22
得票数 8
回答已采纳
3
回答
使用迭代器克隆BST比使用递归快吗?
、
、
、
我有一个关于
二进制
排序
树
设计
原则
的
问题。谢谢!
浏览 0
提问于2011-11-30
得票数 0
回答已采纳
2
回答
扩展方法(类)或
访问者
模式
、
在
设计
良好
的
设计
时,您会选择扩展方法还是
访问者
模式
?除了语法糖有助于程序可读性之外,是否有任何合理
的
理由使用扩展方法而不是
访问者
类?你将如何
设计
一个包含扩展方法
的
系统,你会在UML图中对它们进行分类吗?StringSplitOptions.RemoveEmptyEntries).Length; } 我可能有错
浏览 3
提问于2011-08-04
得票数 11
2
回答
类型
的
工厂
、
,但似乎都不起作用:编辑:目标是计算文件中
的
算术
表达式
。例如:float b;a=1;
浏览 2
提问于2012-12-20
得票数 3
回答已采纳
1
回答
禁用TSLint中regex对某些字符串
的
使用?
、
、
我有时会在代码结构中看到这样
的
结果,即JavaScript转换为TypeScript:} 而正确
的
变式是后者由TypeScript编译器检查,如果对另一个类
的
私有方法有错误调用,则会引发错误。我希望在TSLint中有一个规则,它允许我标记为错误
的
字符串,比如(private|public|protected)\s+(.+)=\s*function。那么,是否有可能在TSLint中添加一个规则,可以作为一个现有的插件来搜索
浏览 1
提问于2016-12-02
得票数 4
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
“补课”进行时:设计模式(20)——解释器模式
retest一个基于 fixture 的rust测试框架
图书推荐:算法
人人都能读懂的编译器原理
如何使用C+实现解释器模式:打造自己的编程语言!
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券