QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: wxMidnight

【项目】FinC,C语言解释器

[复制链接]
发表于 2005-9-6 08:20:29 | 显示全部楼层
[quote:a88be09d95="atfa"]
老大啊,你回家后为了保持灯光打开就从来不关门?

我举一个例子:你回家后进门,客厅灯光自动打开,你离开客厅来到卧室,卧室自动开灯,客厅就关了,或者关一半。现在你老婆回家了,进门后客厅灯光自动打开!而不是关掉!现在你老婆也进入卧室,具体进去做什么我就不知道了 现在系统需要做的不是把刚才的灯光状态++,这样灯就关了,系统需要判断出这一次开门关门的事件是因为什么原因,最后决定保持灯光不变。过了1个小时,你们把事情搞定了 双双走出卧室,系统需要检测到这个信息,把卧室灯光全部关掉,而不是因为门的开闭状态只改变了一次,而误以为卧室里面还有一个人继而保持灯光的打开。

这就是我需要的系统,我想我们需要在房间的每一片地砖下安装感应装置或者在整个房间里面安装红外线设备才能准确的捕捉这些信息。[/quote]
比尔在他的未来之路中这样描述他的新房子的,用一像别针一样的东西来实现的!
回复

使用道具 举报

发表于 2005-9-6 22:10:26 | 显示全部楼层
别针……也是一个办法
不过没有红外线方便
而且红外线设备以后可以做成报警装置

比如家里没有人的时候自动打开红外线报警装置
当家里的大门没有经过正常途径打开,比如没有打开,或者被暴力打开
这时候,如果红外线检测到房内有人或者动物等
就自动拨打110报警
回复

使用道具 举报

 楼主| 发表于 2005-9-15 14:25:36 | 显示全部楼层
FinSH 0.1.0版,Fava in Shell,精简剪裁版,用于命令行交互
- x86 @ MinGW环境下(默认配置,-O2选项编译,现在是大致情况,以正式版为准,误差应该在512字节以内)
  二进制文件大小 37603 (strip 20480)
  text 16896
  data 2560
  bss 1632
- 支持的数据类型,char, short, int, long, unsigned,指针。
- 支持的操作类型,+, -, *, %, /, &, |, ^, ~, ++, --, (指针操作符)*, &
- 支持的语句 表达式;
- 不支持复杂的数据类型(数组、结构体等。只支持单一指针声明,即不支持指针的指针等声明方式),不支持语句,除了最基本的 expression ';',不支持函数声明,不支持无关表达式(和FinC相比,少了条件表达式,逗号运算,条件表达式(大于,小于,等于))
- 运行过程中生成中间代码,内部实现了栈式的虚拟机,支持C语言的绝大多数表达式,运行过程中不动态分配内存
- 适合于操作系统内核态运行,无操作系统运行(用到的几个标准C函数,memset,strncpy,strncmp)

FinSH的运行过程:
启动FinSH,初始化语法分析节点,栈,虚拟机地址空间(都清零)
|
vv
等待用户命令输入
|
vv
分析用户输入指令(主要就是一个完整的C语言表达式分析)
|
vv
生成语法树
|
vv
语法树节点类型检查,添加一些辅助信息(采用递归遍历语法树)
|
vv
编译语法树,生成中间代码(虚拟机二进制执行码),创建脚本变量空间
|
vv
释放语法树节点
|
vv
执行中间生成的虚拟机二进制执行码
|
vv
执行完毕取最后一个栈的值输出
|
vv
跳到下一个等待用户输入命令循环

* FinSH 0.1.0将在接下来的几天发布,初始功能已经有了,出错处理还不够丰富:-)
有否自愿测试人员?
回复

使用道具 举报

 楼主| 发表于 2005-9-19 17:16:07 | 显示全部楼层
FinSH 0.1已经发布,欢迎下载并反馈意见。
回复

使用道具 举报

发表于 2005-9-22 19:26:28 | 显示全部楼层
下载地址是?
回复

使用道具 举报

 楼主| 发表于 2005-9-24 08:37:01 | 显示全部楼层
http://gro.clinux.org/projects/finc/

:-)很快finsh 0.2版本也要提供下载了,这是一个极稳定的版本
回复

使用道具 举报

发表于 2005-10-10 19:51:49 | 显示全部楼层
这个东西,我们又一次暑假实习做过,不过有些语句的处理还有些问题,本想加上界面,后来也因为进度问题而没有完成,呵呵,看到这个帖子,突然想起来了,纪念一下,我的第一个夭折的项目
回复

使用道具 举报

 楼主| 发表于 2005-10-11 23:11:23 | 显示全部楼层
FinSH 0.2 released
http://gro.clinux.org/frs/download.php/1293/finsh-0.2.tar.bz2
这个版本是一个比较稳定的版本,也支持了原来FinSH预计支持的大多数功能:
- 增加指针支持;
- 虚拟机的栈处理,堆处理更加完善,增加堆的垃圾收集功能
- 增加反汇编功能(默认不打开,需要手工修改代码)
- 增加linux、msys下的makefile
- 增加自动导入函数符号列表脚本(发布版本会自动导入cmd.c里的全部函数)

当前版本不支持的:
- 指针相关运算:*,&
- 类型显式转换表达式
- 系统变量访问(也就是和FinSH连接在一起的应用程序的全局变量)

从这个版本开始,将开始着手移植到一些嵌入式操作系统。
回复

使用道具 举报

 楼主| 发表于 2005-10-11 23:16:13 | 显示全部楼层
[quote:7997b9de15="chinafire"]这个东西,我们又一次暑假实习做过,不过有些语句的处理还有些问题,本想加上界面,后来也因为进度问题而没有完成,呵呵,看到这个帖子,突然想起来了,纪念一下,我的第一个夭折的项目[/quote]

不知道你这个项目是什么样的~~

我做的这个实际上是比较适合教学(包含了比较多的编译原理思想:词法分析,语法分析,语义分析,中间代码生成,虚拟机等等),如果我有时间到挺想结合这套代码说说编译原理:编译原理的理论是如何和实际实现/代码相联系。
回复

使用道具 举报

发表于 2005-10-12 15:02:44 | 显示全部楼层
[quote:4e6341c4fb="wxMidnight"][quote:4e6341c4fb="chinafire"]这个东西,我们又一次暑假实习做过,不过有些语句的处理还有些问题,本想加上界面,后来也因为进度问题而没有完成,呵呵,看到这个帖子,突然想起来了,纪念一下,我的第一个夭折的项目[/quote]

不知道你这个项目是什么样的~~

我做的这个实际上是比较适合教学(包含了比较多的编译原理思想:词法分析,语法分析,语义分析,中间代码生成,虚拟机等等),如果我有时间到挺想结合这套代码说说编译原理:编译原理的理论是如何和实际实现/代码相联系。[/quote]
我们做的那东西还是很简单的,因为当时还没有学习过编译原理,至于中间代码生成和虚拟机就无从谈起了
回复

使用道具 举报

发表于 2005-10-12 15:35:11 | 显示全部楼层
[quote:4f23f287dd="atfa"]我的新房快要到手了,我希望能设计一个家庭智能灯光系统,具体的要求很简单,就是判断门的开闭状态变化,然后自动的点亮房间里的灯光。

程序写起来非常非常的简单,但是我从来没有接触过嵌入式编程,不知道耀想实现我的想法,需要什么芯片,然后怎样写程序,怎样编译,最后怎样把这个程序烧到我买的芯片里面去,最后接上电路实现这个想法?[/quote]
呵呵,看来还要有一个感知系统,知道你要去做什么……
我倒是设想过一个家庭环境智能控制系统,不过参数都是需要人工设定的,我不知道曾经听说过的数字家庭跟这个是不是一回事儿,呵呵,发呆时的乱想,不过应该可以实现
回复

使用道具 举报

 楼主| 发表于 2005-10-19 17:27:00 | 显示全部楼层
For Nearby Future Information:
今天上午已经把FinSH for ARM移植做好了,新版本(0.3)很快就要发布了,希望同时也发布一版FinSH for ucos-ii
回复

使用道具 举报

发表于 2005-10-21 07:48:20 | 显示全部楼层
cool, 我们支持 FinSH。
回复

使用道具 举报

 楼主| 发表于 2005-10-31 10:25:34 | 显示全部楼层
[quote:355fbeefe0="wxMidnight"]For Nearby Future Information:
今天上午已经把FinSH for ARM移植做好了,新版本(0.3)很快就要发布了,希望同时也发布一版FinSH for ucos-ii[/quote]

FinSH 0.3版本已经发布,下载:
http://gro.clinux.org/frs/download.php/1326/finsh-0.3.tar.bz2

修改如下:
- 针对ARM7移植的修正
- 修正了原来编译部分代码的问题
- 增加对系统变量的支持(支持类型和FinSH内部支持的数据类型相同),可以在脚本中直接访问/修改系统中的变量
- 新包含有VC++的工程
- ...

FinSH 0.3 @ ucos for arm的demo版本过几天也会放出
回复

使用道具 举报

发表于 2005-11-7 05:52:49 | 显示全部楼层
如果这个编程工具成为主流的开发工具就太美妙了。
有人支持?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-29 22:35 , Processed in 0.103916 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表