主题:[原创]我的简易编译程序发布
详情请见我的blog
http://codefan.spaces.live.com/?_c11_blogpart_blogpart=blogview&_c=blogpart&partqs=cat%3d%25e7%25bc%2596%25e8%25af%2591%25e5%258e%259f%25e7%2590%2586
我的编译程序实现的内容。
四则运算和赋值语句;
if、switch、for、while语句;
内置函数可以用 list s来查看,函数后括号中的数字是其参数个数,如果是-1说明其参数过数没有限制;
单行注释 // 多行注释/* ……*/。
在我的编译程序中没有实现的,有些是稍微花点时间就可以实现的,比如自定义函数等等。
代码的优化
自定义结构,现在的数据类型只有四种bool,float,string,array float
自定义函数定义与调用,因为系统中已经对代码分层次来组织,所以实现这个功能很容易。现在代码中有一个主模块main,可以用list m查看到,并可以用 set 命令来改变其中的变量表。每一个编译的模块度是这个模块的子模块可以直接调用main木块中的变量但不能改变其值。可以用put命令来保存当前模块并给它命名,以便可以用get来调用。
使用介绍
工程代码(http://www.stocksun.com:100/Source/compile_source.rar)
一个使用案例:
E:\>cd E:\Centit\Controls\GeneralDLL
E:\Centit\Controls\GeneralDLL>CalcEx.exe
Like C++ Compile : Release 1.0.0.1 - Production on 2007-03-01
Copyright (c) 2002, 2007, 杨淮生. All rights reserved.
Author MSN:codefan@hotmail.com
CMP>help
# help run set list
put get load save
CMP>help list
list ( m[odule] | f[ormula] | v[ariable] | e[rror]
| r[eserved_key] | s[ystem_function] | sou[rce])
CMP>list
vsersion: 1.00a
company: centit
author: 杨淮生
e-mail: codefan@hotmail.com
CMP>int a=5;
..1>if(a>3)
..2> a=6;
..3>switch(a){
..4> case 3:
..5> b=3;
..6> break;
..7> default:
..8> b =5;
..9> break;
.10> case 2:
.11> b=6;
.12>}
.13>for(i=0;i<a;i++)
.14> {
.15> c=b+a;
.16> b = c;
.17>}
.18>printmsg("OK!");
.19>return a+b+c;
.20>
.21>
There is 0 error(s)!
CMP>run
OK!
The Result:88.000000
CMP>save C:\a.txt
Source code be saved.
CMP>#2+3
5
CMP>quit
E:\Centit\Controls\GeneralDLL>CalcEx.exe /?
/? help
/f <file path> Compile file and run the code
/v version and infomation
<formula> Calculate the formule
E:\Centit\Controls\GeneralDLL>CalcEx.exe /f c:\a.txt
OK!
The Result:88.000000
我的BLOG中的关于编译原理的其它文档:
递归过程、循环过程
条件表达式与关系运算的优化--编程心得
Python语言设计上的革新或者新颖的部分
Switch语句的分析
C++、Pascal =(赋值),for,case语句,函数,变量空间的区别
四元式优化
http://codefan.spaces.live.com/?_c11_blogpart_blogpart=blogview&_c=blogpart&partqs=cat%3d%25e7%25bc%2596%25e8%25af%2591%25e5%258e%259f%25e7%2590%2586
我的编译程序实现的内容。
四则运算和赋值语句;
if、switch、for、while语句;
内置函数可以用 list s来查看,函数后括号中的数字是其参数个数,如果是-1说明其参数过数没有限制;
单行注释 // 多行注释/* ……*/。
在我的编译程序中没有实现的,有些是稍微花点时间就可以实现的,比如自定义函数等等。
代码的优化
自定义结构,现在的数据类型只有四种bool,float,string,array float
自定义函数定义与调用,因为系统中已经对代码分层次来组织,所以实现这个功能很容易。现在代码中有一个主模块main,可以用list m查看到,并可以用 set 命令来改变其中的变量表。每一个编译的模块度是这个模块的子模块可以直接调用main木块中的变量但不能改变其值。可以用put命令来保存当前模块并给它命名,以便可以用get来调用。
使用介绍
工程代码(http://www.stocksun.com:100/Source/compile_source.rar)
一个使用案例:
E:\>cd E:\Centit\Controls\GeneralDLL
E:\Centit\Controls\GeneralDLL>CalcEx.exe
Like C++ Compile : Release 1.0.0.1 - Production on 2007-03-01
Copyright (c) 2002, 2007, 杨淮生. All rights reserved.
Author MSN:codefan@hotmail.com
CMP>help
# help run set list
put get load save
CMP>help list
list ( m[odule] | f[ormula] | v[ariable] | e[rror]
| r[eserved_key] | s[ystem_function] | sou[rce])
CMP>list
vsersion: 1.00a
company: centit
author: 杨淮生
e-mail: codefan@hotmail.com
CMP>int a=5;
..1>if(a>3)
..2> a=6;
..3>switch(a){
..4> case 3:
..5> b=3;
..6> break;
..7> default:
..8> b =5;
..9> break;
.10> case 2:
.11> b=6;
.12>}
.13>for(i=0;i<a;i++)
.14> {
.15> c=b+a;
.16> b = c;
.17>}
.18>printmsg("OK!");
.19>return a+b+c;
.20>
.21>
There is 0 error(s)!
CMP>run
OK!
The Result:88.000000
CMP>save C:\a.txt
Source code be saved.
CMP>#2+3
5
CMP>quit
E:\Centit\Controls\GeneralDLL>CalcEx.exe /?
/? help
/f <file path> Compile file and run the code
/v version and infomation
<formula> Calculate the formule
E:\Centit\Controls\GeneralDLL>CalcEx.exe /f c:\a.txt
OK!
The Result:88.000000
我的BLOG中的关于编译原理的其它文档:
递归过程、循环过程
条件表达式与关系运算的优化--编程心得
Python语言设计上的革新或者新颖的部分
Switch语句的分析
C++、Pascal =(赋值),for,case语句,函数,变量空间的区别
四元式优化