当前位置:首页 » 编程软件 » 设计编译程序注意的问题

设计编译程序注意的问题

发布时间: 2024-10-18 14:08:43

Ⅰ 关于c语言编译阶段的一些问题

呵呵,找一本好书吧。我不能完全给你写清楚,"sting.h"的拼写已经有人说了。
简单地说,要理解几种文件:
A:源文件:例如汇编(asm)、c语言、cpp
B:目标文件
C:库文件(lib)
D:可执行文件

A经过编译器得到B,若干个B可以经过库管理程序得到C,C也可以通过库管理程序得到B(提取)
若干个B通过链接器可以得到D,但是比如strcmp是出现在C中的,但实际上链接器会到C中提取出strcmp所在的B,然后将这个B放入到你的D中。整过过程是一个求闭包的过程,具体参见《Linker and Loader》。

最后说说.h,其实.h本身并不是必要的,但是它可以减少人们的错误,减少重复的代码。
比如printf,你完全可以不include<stdio.h>,你就自己写上一行:
int printf(...);
然后你后面就是直接使用就好了,但是这样会有很多缺陷,这些缺陷可能只有你深刻地理解C语言本身的缺陷后才能明白,不多说了。

Ⅱ 我想开发一个编程语言,算法等等都没问题了,关键是如何把我的语言编译成EXE文件

1、其实这个过程比较复杂。很多高级语言都不是直接将源程序编译成机器码,而是将汇编语言作为目标语言,就是将源码翻译成等价的汇编代码,然后使用现有的汇编语言编译器将中间代码编译成PE格式文件。你没有必要再重复写一个汇编语言编译器,所以会省很多事。
2、即使翻译成汇编代码,也是有很多问题。一是汇编语言严重依赖硬件和平台,因此你需要根据需求,在不同平台上翻译不同的汇编代码;二是编译器的排错。一个编译器能够面对各种情况,无错误运行,本身就是一个奇迹;三是程序的优化问题,一个好的编译器要对生成的代码进行优化,否则编译出的程序不仅很大,而且运行效率低下;四是凡是程序设计语言,有必要给用户提供友好的调试环境,这个编起来也很复杂。
3、实际情况比我说的还要复杂得多。所以,能玩编译器的人不是很多,商品化的编译器更是凤毛麟角。

热点内容
安卓机怎么把时间弄在主页面 发布:2025-07-09 14:17:28 浏览:1000
地产网站源码 发布:2025-07-09 14:07:08 浏览:71
sdk3000编译环境 发布:2025-07-09 14:06:09 浏览:978
烟灰奇迹脚本 发布:2025-07-09 14:02:27 浏览:75
游戏王服务器地址 发布:2025-07-09 13:38:07 浏览:771
双加密狗 发布:2025-07-09 13:26:51 浏览:471
1加5t买什么配置合适 发布:2025-07-09 13:17:51 浏览:540
mssql分页存储过程 发布:2025-07-09 13:17:00 浏览:271
cpython模块扩展 发布:2025-07-09 13:16:11 浏览:95
linux安装mysql步骤 发布:2025-07-09 13:02:48 浏览:158