随笔分类 -  编译系统

摘要:不少同学看过仓颉白皮书后,都在找SDK从哪下载,HelloWorld怎么跑。仓颉公众号也及时发布了内测的方式,我也亲自走了一遍整个流程,给大家整理为如下三步。 阅读全文
posted @ 2024-06-25 22:23 Florian 阅读(9821) 评论(17) 推荐(7) 编辑
摘要:汇编器构造 一、 汇编器简介 前面介绍了编译器构造和静态链接器构造的具体方法,而且我们实现了一个将高级语言转化为汇编语言的编译器,同时又实现了一个将多个目标文件链接为一个可执行文件的链接器。现在需要一个连接这两个模块的功能模块——汇编器,它能将一个单独的汇编文件转换为一个可重定位目标文件,如图1-1 阅读全文
posted @ 2016-08-27 01:45 Florian 阅读(8356) 评论(0) 推荐(4) 编辑
摘要:编程语言,作为人与计算机沟通的桥梁,有着重要和深远的意义。有过计算机编程经验的人,多少学习或掌握过一到多种编程语言。计算机专业领域的编程语言成百上千种,主流的编程语言也有数十种之多。每种编程语言面向的领域和特性都不尽相同,不过归根结底是为了解决人与计算机之间沟通的效率问题,提高计算机的生产力。想必有 阅读全文
posted @ 2016-08-14 03:46 Florian 阅读(15753) 评论(1) 推荐(5) 编辑
摘要:快餐式的学习确实会在短期内对个人迅速了解未知事物有所帮助,而作为专业人士要保持长期的竞争力,提高专业素养是必不可少而又漫长的过程,了解和学习基础理论并加以实践是一种行之有效的方式。 阅读全文
posted @ 2016-08-13 21:23 Florian 阅读(1505) 评论(0) 推荐(3) 编辑
摘要:源文件移动后gdb不显示代码的原因 问题 我们从一个最简单的C语言程序开始。源文件main.c在用户目录gdb文件夹下。 florian@florian-pc:~/gdb$ cat main.c int main() { return 0; }; 然后将源文件编译为... 阅读全文
posted @ 2014-05-15 14:44 Florian 阅读(4997) 评论(3) 推荐(0) 编辑
摘要:扫描器的高效实现 编译器进行词法分析时,不可避免地需要对源文件进行扫描,实现该功能的模块称为扫描器。扫描器读取源文件,按序返回文件内的字符,直到文件结束。 扫描器的功能 实现文件的读一般使用库函数fscanf或者fread,那么按照怎样的读取方式才能让扫描器的性能更佳呢? (1)使用fscanf逐字扫描,并返回。 char scan(FILE*file){ char ch; if(fscanf(file,"%c",&ch)==EOF){ ch=-1; } return ch; } 这是最简单的实现方式,缺点是每次读取字符时都需要访问文件进行I... 阅读全文
posted @ 2014-03-02 22:45 Florian 阅读(1737) 评论(0) 推荐(0) 编辑
摘要:编译器构造 一、 编译器简介 前面谈到静态链接器构造的基本流程,最后提到所构造的链接器若要能正常工作的前提是需要构造一个能生成符合链接器输入文件格式的编译器,本文构造一个符合这种具体格式要求编译器。但是编译器的直接编译的结果一般是汇编语言文件,这种文件是不能满足上述静态链接器的需求的,因此在它们之间 阅读全文
posted @ 2012-07-03 11:13 Florian 阅读(4273) 评论(12) 推荐(10) 编辑
摘要:静态链接器构造 一、 链接器简介 众所周知,高级语言程序编写后需要经过编译、汇编、链接、加载的步骤才能在机器上正常执行。Gcc的处理步骤更加复杂:如果是C语言程序(*.c)作为gcc的输入,gcc首先对高级语言程序进行预编译,然后利用文法分析程序将程序翻译为通用的中间代码,接着gcc对中间代码进行优 阅读全文
posted @ 2012-05-25 23:50 Florian 阅读(2372) 评论(5) 推荐(4) 编辑

点击右上角即可分享
微信分享提示