四则运算求值

发现只要写出 BNF 式,用 LL1 的自上向下分析法很轻易的就解决问题。

阅读全文

编译器 Comments(0) 2009年9月21日 05:49

开源编辑器 UCC研究-语法分析器、词法分析器

语法分析器完成的功能:... 语法树的变化:... 源代码的实现:...

阅读全文

编译器 Comments(0) 2009年9月16日 23:56

编译原理知识加电-[转]BNF 和EBNF的含义与用法(感谢译者:Sunnybill)

By: Lars Marius Garshol 原文参见:http://www.garshol.priv.no/download/text/bnf.html (本文是上述作者文章的翻译,原文版权归作者所有) (译者:Sunnybill) BNF 和EBNF的含义与用法 1 简介 关于本文 什么是BNF? 工作原理 基本原理 一个实例 EBNF及其用途 一个EBNF语法实例 BNF和EBNF的使用 一般用法 如何使用形式语法 解析 最简单的方法 自上而下的解析(LL) 一个LL分析实例 一个LL转换实例 稍难的方法 自底而上的解析(LR) LL还是LR? 更多信息 附录 致谢

阅读全文

编译器 Comments(0) 2009年9月16日 18:08

开元编译器 UCC 研究 - 符号表

符号表是一个编译器工作的核心部分,从收集到整理再到通过它生成最终文件。

阅读全文

编译器 Comments(0) 2009年9月15日 23:11

开源编译器 UCC 研究 - 工作流程

最近看 UCC 的代码,研究下编译器的工作原理。大学时候的编译原理知识也忘得差不多了,本来当初就学的不好。现在拿一个实例来研究下吧。

阅读全文

编译器 Comments(0) 2009年9月15日 17:18

Emacs 23 发布 Release 版本

电脑硬盘格式化,东西都没有了。上网上找emacs,赫然发现,emacs 23 已经有 release 版本了,这下可以气定神闲的用了。Gnu官网写着发布日期是 2009年 7 月 29 号,刚刚发布没多长时间

阅读全文

emacs Comments(0) 2009年9月13日 07:44

让程序单例程运行

1.  使用Mutex内核对象

 

 

bool IsHaveAnotherProcess()
{
        HANDLE hMutex = CreateMutex( NULL, FALSE, "ProcessA" );
        if ( GetLastError() == ERROR_ALREADY_EXISTS )
        {
                CloseHandle( hMutex );
                AfxMessageBox( "程序已经启动" );
                return false;
        }
        return true;
}

 

 

         先用 CreateMutex 来创建一个具名互斥量,若是创建成功返回一个互斥量对象的句柄; 反之,函数返回这个已经存在的互斥量的句柄,并 GetLastError() 返回错误代码 ERROR_ALREADY_EXISTS。
   

事实上,这是利用了windows内核对象的知识。命名的内核对象属于全局可访问的,唯一的,当创建一个命名的内核对象时 ( Create* ),系统会先检查内核里是否有这个对象,有则返回这个对象的句柄,无则创建一个。

 

 

 

 

MFC Comments(0) 2009年7月25日 14:58

MFC 置窗口最前端

  

         

    ::SetWindowPos( GetSafeHwnd(), HWND_TOPMOST , 0,0,0,0,SWP_NOMOVE | SWP_NOSIZE );


          第二个参数设成 : HWND_NOTOPMOST , 就可以取消前端显示了

MFC Comments(0) 2009年7月24日 18:57

安装grub,提示缺少 hal.dll-附硬盘安装Ubuntu过程

在Windows XP 下安装 Grub4Dos 开机总是提示 缺少 hal.dll 文件,可能是文件丢失。 貌似是没有将 glrdr.mbr 考到C盘,以前只是将 glrdr 和 gurb.exe 考过去。 哎,才发现原来是把 grldr 写成了glrdr.郁闷中。。。。 备记一下硬盘安装 Ubuntu 的过程

阅读全文

Ubuntu Comments(1) 2009年4月09日 18:14

Emacs 之 ediff 学习

阅读全文

emacs Comments(0) 2009年1月02日 01:10