制作C语言编译器的要点
近来想自己做一个C语言的编译器(假如这个编译器称为S),查阅资料,把其中的要点整理如下:
编译
编译.c的程序可用mingw的gcc命令:
gcc test.c -o test.exe
- 1
编译C++的程序要用g++:
g++ test.cpp -o test.exe
- 1
注意:上述命令在执行时如果显示找不到命令,需要在命令前面加路径,或者设置PATH环境变量。
错误信息的重定向
编译时如果程序存在错误,这个错误信息显然要在编译器S的界面显示。为此我们需要把命令行的错误信息重新定向到文件中,如:
g++ test.cpp -o test.exe 2>err.txt
- 1
这里2表示出错信息。编译器S可以从err.txt读取出错信息显示在编译器界面。
C程序运行输出
编译成功会产生可执行程序,如上面的test.exe,运行此程序即可输出程序结果,该结果直接显示在命令行环境:
test.exe
- 1
但是我们制作自己的编译器S时,显然需要把输出结果显示在编译器界面。为此我们需要把C程序的输出结果重定向到文件,然后编译器S从此文件读取内容显示到编译器界面。重定向的命名如下:
test.exe > result.txt
- 1
C程序运行时的数据输入
C程序在运行时常常要从键盘输入数据,我们可以在编译器界面输入提供给C程序的数据,然后编译器将其保存到文件(假如是inputdata.txt),然后运行如下命令即可:
type inputdata.txt | test.exe > result.txt
- 1
文章知识点与官方知识档案匹配,可进一步学习相关知识
C技能树首页概览134650 人正在系统学习中