`
longxj
  • 浏览: 101865 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
文章列表
最近都在找自己的研究方向,老实说能研究的领域看起来好像很多很多,但是真正找起来时,却如大海捞针。继续寻找中。。。
9:00醒来,好像睡的有点多 11:00去吃中饭,然后进程 12:30到达目的地,结果要找的人不在 12:45去kfc等人,在kfc里看分布式,有点假。买了杯橙汁和小袋薯条,花了11.5元,口袋里只有12元,差点没钱买单,囧! 14:10终于等到了,然后开始讨论项目问题 16:00从城里准备回学校 17:10到达学校
LR(0)构造的DFA,但是由LR(0)的DFA来构造分析表往往是不可行的,也就是说很少有语言是LR(0)的。如果LR(0)的冲突可以根据当前输入的字符来解决,则构造的分析表为SLR分析表,SLR分析表跟LR(0)的dfa是相同的。LR(1)构造的dfa考虑当前输入的字符,所以构造的DFA中存在的冲突比较少,也就是说它接受的语言就比较多。构造分析表时,不用额外的约束,因为它在构造dfa时就已经考虑了当前的输入字符。考虑到LR(1)的dfa包含的状态太多,而且许多状态的不同仅仅是因为预测符的不同而已。通过合并不会产生冲突的状态,可以减少dfa的状态数,这就产生了LALR分析法。所以说LALR分析法 ...
今天用java编写USACO上的程序,写了一个90几行的程序,还用了一个从未用过的类,编译通过后,运行居然是正确的。我大概有好几个月没写java代码了,真是神了。
怎么由用户态代码转变到内核态代码的执行?方式是通过中断,比如执行系统调用的时候是通过0x80,这种在很多书上又被称为trap。在执行系统调用的过程中要将寄存器里的保存到核心栈中,一方面是为了切换回到原来的级别时能恢复现场,也就是保存原来的运行环境;另一方面也可以传递参数;所以对于每个进程都有自己对应的内核堆栈。在执行int 0x80前,eax里放的就是系统调用号。gcc中的asmlinkage是告诉函数必须从堆栈中取参数,而不是从寄存器中取参数,我们会发现很多系统调用函数的实现都会有这种标志。因为在返回到用户态时会重置原来的寄存器值,所以如果要返回值的话(通常返回值会保存在eax中),系统调用就 ...
import sysimport ostextFiles={".java":1,".py":1,".mxml":1,".as":1,".c":1,".cpp":1,".h":1,".bat":1}def isTextFile(fileName): index=fileName.rfind(".") if(index!=-1): extension=fileName[index:] try: textFiles[exte ...
import sysimport osdef addToList(fileName,el): index=fileName.rfind(".") if(index!=-1): extension=fileName[index:] try: el[extension] except Exception,message: el[extension]=1def findExtension(path,el): if(os.path.exists(path)): try: items=os.listdir(path) for item in items: if(os.path.isfi ...
操作符的结合性和优先级是为了保证文法的无二意性。结合性通过定义替换的位置来进行隐含定义:例如right->letter=right | letter(右结合)优先级通过定义替换的层次进行定义:例如:factor->digit | (expr)term->ter*factor|term/factor|factorexpr->expr+term|expr-term|term替换的层次越低则优先级越高。
以前从没想过为什么要写程序,也有过一个简单的想法,就是我写程序是因为我要养活自己。可是在看完《编程职业》这篇文章后,我才发现原来还有其他的因素在影响着我进行编程。1.享受创造的快乐:真正的创造活动是一种快乐,编程一般是一种创造,所以我会因为我创造了一个新的东西而开心,但是不是所有的编程都是一种创造,但编程变成一种体力活,一种重复的工作的时候,快乐就消失了。2.当你的工作给他人带来了帮助的时候,你会很快乐:这也许是最支持我编程的理由,我喜欢看到他人因为我的工作而开心,甚至会为此而感到骄傲和自豪。在这一刻,我会感到自己存在的意义。3.驾驭事物的成功感:每当看到程序按照自己的意愿在计算机上运作时,一种 ...
软件项目跟其它工程项目相比,在于它的需求要比其它工程项目要复杂的多。还有更让人头疼的是软件是不可见的,使得用户往往难以提出完整的需求,所以原型是最好的一种获取需求的方法。如果软件的需求永不变更,那么软件项目都是可以成功的,而且很容易成功。当现实中需求永远是变更的,那么人是最好的应对变更的方法,所以敏捷软件工程非常强调人的作用,意义便在于此。如果软件工程中有不需要创造性的部分的话,那么这些部分通常是可以自动化完成的。但是不幸的是,这些部分实在太少,而且我们现在已经在自动化处理这些部分了。需求的复杂性和软件本身的复杂性直接决定了软件项目不可能像其它工程项目一样做出详细的设计。如果设计详细到每个方法已 ...
今天在看系统分析与设计时,书上提到导致项目失败的因素,我发现我以前做的项目里几乎囊括了所有的因素,但是那个项目现在正在一家公司使用呢?这是为什么呢?难道那些原则只对大项目才适用,对于小的项目是不适用的?
最近体会到python带来的好处了,因为我发现写一些小的程序它是再合适不过了。1.有次我需要删除一篇很长文章的一部分内容,首先我用普通的记事本打开这个文件,然后选中我要删除的部分,我发现这是一种很难的事,因为这篇文章很长,选择的时候又不能拖动滚动条,因此文字向下滚动的很慢,过了几十秒了,才滚动了1000行,我等不急了,就用python写了一个程序,将我在文中标记前的部分删掉,很松一点代码就搞定了。2.有次我看到同学在根据目录下的文件名,获取学号的信息,并将它们写入到一个excel文件里去,我发现那些文件名都是有着一致的格式,我便写了一个python脚本自动生成那个excel文件3.今天,我从网上 ...
all-in-one gesture 鼠标手势 easy dragtogo 拖动链接看网页 firebug 网页调试器 foxmarks 书签同步
package renderers{import mx.controls.CheckBox; public class DGCheckBox extends CheckBox{private var _data:Object; override public function set data(value:Object):void { _data = value; if(_data) { var dgld:DataGridListData = DataGridListData(listData); selected = _data[dgld.dataField]; } } overr ...
读写字符函数: getchar():读取一个字符,送到屏幕,等待键入回车键才会返回结果 getche():读取一个字符,送到屏幕,不等待回车键,非标准c定义的 getch():读取一个字符,不送回屏幕,不等待回车键,非标准c定义的 putchar():向屏 ...
Global site tag (gtag.js) - Google Analytics