wenhsuan's profilewenhsuan's spacePhotosBlogListsMore ![]() | Help |
|
wenhsuan's spaceLinux & Embedded February 13 有趣的编译器编译器(Compiler)是我们编程经常要用到的。它把高级语言编译生成汇编或者机器语言。例如GCC就是一个很好的编译器。
一般一个编译器由前端(front end)和后端(back end)组成。前端由词法分析器(lexical analyzer)和解析器(parser)组成,负责词法分析和解析。后端负责生成汇编语言。
编译器技术并不是古老的可以放在陈列室的技术。它是整个编程技术发展的基础架构(Infrastructure)。正是 GCC 的出现才推动了整个 GNU 系列技术的发展,包括现在的Linux。
现在火热的互联网浏览器(Web Browser)的竞争和发展不仅仅局限在桌面系统上,移动(Mobile)设备上的浏览器是成为新的竞争点。Google 推出的 Chrome 浏览器包含了一项叫做 V8 的针对 JavaScript 的 Just-In-Time编译器技术。这一技术大大提升了JavaScript的编译和运行速度,提升了手机等移动设备的浏览器使用体验。类似的JavaScript高速引擎,Apple 和 Mozilla 也推出了相应的技术。JIT编译器技术也应用在浏览器底层向量绘图程序中。例如 Firefox/Mozilla 的底层向量绘图库 Cairo。
JIT编译器技术核心在后端的汇编语言生成器上。LLVM 是一个有趣并且强大的汇编语言生成器。How to Write Your Own Compiler 这个项目应用 LLVM 组成一个类Java语言的编译器。
Reference:
November 23 Ubuntu using wubi周五火星了一把。从同事那里知道有wubi这样的工具。根据wubi官方网站的解释。 “Wubi is an officially supported Ubuntu installer for Windows users that can bring you to the Linux world with a single click. Wubi allows you to install and uninstall Ubuntu as any other Windows application, in a simple and safe way.” 在公司的电脑试了一下,果然很方便。对不方便分区的电脑非常适合。只需要占用7~10GB的硬盘空间。 November 17 有趣的HaskellAugust 11 Gnome 中的自动启动设置debian中设置自动启动某程序或脚本不够简明。如果安装了Gnome (版本2.0以上),可以用Gnome来解决。
编辑home目录中.gnome2下面session文件。like:
$gvim /home/wenhsuan/.gnome2/session
Gnome有时在意外关机情况下,会将未退出的程序自动保存到这个文件中。重启动后这些程序会自动跳出来。也可以编辑这个文件删除Gnome自动保存的程序或脚本。 June 19 字节对齐问题1.字节对齐基础
[字节对齐] of thieven
2.控制字节对齐
#progma pack (2) /*指定按2字节对齐*/
...
#progma pack () /*取消指定对齐,恢复缺省对齐*/ 详细仍见上面链接。
3.字节对齐问题容易发生在栈上。
>> 代码如下(wireless_tools.29 -- iwpriv.c):
>>> >>> { >>> struct iwreq wrq; >>> u_char buffer[4096]; /* Only that big in v25 and later */ 上面的代码就很容易出问题。
April 20 几种工具flex A fast lexical analyzer generator bison A parser generator that is compatible with YACC gperf Perfect hash function generator icu Unicode backend SQLite3 SQLite is a C library that implements an SQL database engine libcurl Multi-protocol file transfer library xslt XSLT is an XML language for defining transformations of XML files from XML to some other arbitrary format, such as XML, HTML, plain text, etc March 21 networkmanager under debianMarch 14 msmtp, TLS, gmail 和Git例如$ vi .msmtprc
tls on
tls_trust_file /home/mychael/.certs/ThawtePremiumServerCA.crt |
||||
|
|