浏览 2271 次
锁定老帖子 主题:关于一个算法设计问题,值得想想,大家来看看
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-11
图相关的知识,设计算法来找出一段程序代码中:
如果使用与(1)定义了但未被使用的变量; (2)使用了但没有被定义的变量; (3)其他与变量相关的错误 我的初步想法是: 1.定义一个变量类, Class Var { 属性: name,type,isInit(是否初始化),initVal(初始化值),isUsed(是否被使用过); 方法: 一些基本方法; } 2.程序代码中每个声明的变量(new个Var),作为图的一个结点,用邻接表来实现图。 3.对使用的每个变量,对图进行搜索(BFS或者DFS),来看是不是被定义过的。(根据Var的name和type判断)并改变isUsed属性。 4.再对图遍历次,根据Var的isUsed属性看是否有定义了但没被使用的变量。 5.可以增加些Var属性,来判断是否有重复定义,是否初始化错误之类的。(解决问题3) 请教各位JE上的大虾们,可以从下面几个方面但不限于谈谈自己看法(不用说的太复杂,说说思想就行): 1.对我的想法做出评价 2.如果必须用图,有没有更好的实现办法 3.不考虑用图,有没有更好的解决办法.(考虑O(n)) 4.具体的编译器是怎么实现的这些问题的 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-30
用正则查找可能更简单一些。
|
|
返回顶楼 | |
发表时间:2008-10-30
查找未使用的变量的js实现,机器比较差开eclipse很慢
<textarea id="txtCode" rows="10" cols="50">String a; String b="abc"; int i; public char d; public float c=123;</textarea> <input type="button" name="btnCheck" id="btnCheck" value="检测"> <script type="text/javascript"> function $(sId){ return document.getElementById(sId); } var aClass=[ "int","char","long","double","byte", "String","List","Map","Iterator" /*,....*/ ]; var sRegUnUse="([private|public|protected]\\s+)?" +"("+aClass.join("|")+")\\s+" +"([\\w|\\$]+)" +"[\\s*?=\\s*?|null]?;"; var oRegUnUse=new RegExp(sRegUnUse,"g"); $("btnCheck").onclick=function(){ var sCode=$("txtCode").value; var aUnUseVar=[]; while(oRegUnUse.exec(sCode)){ aUnUseVar.push(RegExp.$3); } alert("未使用变量:"+aUnUseVar.join("、")); } </script> |
|
返回顶楼 | |
发表时间:2008-11-06
请看编译原理的龙书
|
|
返回顶楼 | |