当前在线人数17874
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/用
[版面:葵花宝典][首篇作者:cstack] , 2021年06月13日20:06:47 ,2878次阅读,60次回复
来APP回复,赚取更多伪币 关注本站公众号:
[首页] [上页][下页][末页] [分页:1 2 3 ]
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: cstack (cstack), 信区: Programming
标  题: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/用
关键字: C
发信站: BBS 未名空间站 (Sun Jun 13 20:06:47 2021, 美东)

主页:https://www.cee.studio

它的优势: https://www.cee.studio/benefits.html

Online IDE to test out:  https://cee.studio

用C做的Discord库, https://github.com/cee-studio/orca

我们现在在探索用纯C和嵌入式脚本engine做bot/webapp后台开发. 希望和需要用C的公
司和或个人和作. 我是美国公民也可以接外包项目.

潜水多年,很是受益. 特别是netghost对C和其他语言的深刻见解


--
※ 修改:·cstack 於 Jun 13 21:48:05 2021 修改本文·[FROM: 76.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/用
发信站: BBS 未名空间站 (Sun Jun 13 20:56:11 2021, 美东)

赞一个!问题:有没有和valgrind比较?你这个和valgrind比有什么优势和劣势呢?
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
guvest
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: guvest (我爱你老婆Anna), 信区: Programming
标  题: Re: 我做了个编译器把C/C  编译成动态内存安全代码,
发信站: BBS 未名空间站 (Sun Jun 13 21:03:18 2021, 美东)

https://www.cee.studio/comparison.html


【 在 TeacherWei(TW) 的大作中提到: 】
<br>: 赞一个!问题:有没有和valgrind比较?你这个和valgrind比有什么优势和劣势
呢?
<br>
--
※ 来源:· 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 72.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/用
发信站: BBS 未名空间站 (Sun Jun 13 21:29:44 2021, 美东)

这个要点赞!做的不错!确实花了功夫!
把ARM/MIPS/RISCV都做出来,就更完美了。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:35:49 2021, 美东)

https://www.cee.studio/comparison.html

我的可以保证runtime memory safety. All runtime memory errors can be reported
. (I submitted a POPL paper with proof. Unfortunately, it was not accepted,
one reviewer recommended to submit to PLDI, I didn't bother with it).



【 在 TeacherWei (TW) 的大作中提到: 】
: 赞一个!问题:有没有和valgrind比较?你这个和valgrind比有什么优势和劣势呢?





--
※ 修改:·cstack 於 Jun 13 21:45:39 2021 修改本文·[FROM: 76.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:37:36 2021, 美东)

It generated native code with runtime checking to check all memory errors.
In theory, it can even check type safety.


【 在 magagop (magagop) 的大作中提到: 】
: 這個跟wasm、wasi的區別是什麼呢,謝謝



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:40:45 2021, 美东)

会不会有false-positive?一般协议栈都会有指针类型cast之类。

【 在 cstack (cstack) 的大作中提到: 】
: https://www.cee.studio/comparison.html
: 我的可以保证runtime memory safety. All runtime memory errors can be
reported
: . (I submitted POPL paper with proof. Unfortunately, it was not accepted,
: one reviewer recommended to submitted to PLDI, I didn't bother with it).



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:41:48 2021, 美东)

我判断是,最大化大的市场不是嵌入系统. 我有可能错得

【 在 TeacherWei (TW) 的大作中提到: 】
: 这个要点赞!做的不错!确实花了功夫!
: 把ARM/MIPS/RISCV都做出来,就更完美了。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:42:51 2021, 美东)

没有 false-positive.

【 在 TeacherWei (TW) 的大作中提到: 】
: 会不会有false-positive?一般协议栈都会有指针类型cast之类。
: reported



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 10 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:43:06 2021, 美东)

比如:

struct header {
   ......
   another_struct  data[];
}

这个data其实没有占空间。但是可以用

(another_struct  *)(pHeader + 1)

引用。

【 在 TeacherWei (TW) 的大作中提到: 】
: 会不会有false-positive?一般协议栈都会有指针类型cast之类。
: reported



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 11 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:44:45 2021, 美东)

A very good example,  It will not report this as out-of-bounds access.

【 在 TeacherWei (TW) 的大作中提到: 】
: 比如:
: struct header {
:    ......
:    another_struct  data[];
: }
: 这个data其实没有占空间。但是可以用
: (another_struct  *)(pHeader + 1)
: 引用。




--
※ 修改:·cstack 於 Jun 13 21:46:52 2021 修改本文·[FROM: 76.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 12 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:47:55 2021, 美东)

我猜你的heap用了非常sparse的虚拟地址,是这样么?

【 在 cstack (cstack) 的大作中提到: 】
: A very good example,  It will not report this as out-of-bounds access.



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 13 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:51:39 2021, 美东)

A great question. You have a very deep understanding of the existing
solutions.

没有, 不需要OS support.  It can generate code to run on bare metal with
memory safety/type safety.

【 在 TeacherWei (TW) 的大作中提到: 】
: 我猜你的heap用了非常sparse的虚拟地址,是这样么?



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 14 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 21:56:34 2021, 美东)

我有一个手写的serializer/deserializer库。所有类型都要和uint8_t *互相转换。不
理解type safety如何实现?理论上这属于停机问题。

【 在 cstack (cstack) 的大作中提到: 】
: A great question. You have a very deep understanding of the existing
: solutions.
: 没有, 不需要OS support.  It can generate code to run on bare metal with
: memory safety/type safety.



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 15 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 22:02:40 2021, 美东)

Please forgive me for typing in English. Haven't typed Chinese for a very
long time, and my pinyin sucks.  It's too slow for me.


Type safety is to strict for some C code. It does not apply to every use
case.  But the type of each defined memory cell can be kept at runtime and
used to check its uses.  For example, a float value can be assigned to a
union like the following:

union fi {
  float f;
  int i;
} x;

x.f = 10.0;

If x.i is used later, it can be reported.

It's possible, but I don't see the requirement yet, so I didn't implement it
.

It's a runtime detection, so the halting problem does not apply here.


【 在 TeacherWei (TW) 的大作中提到: 】
: 我有一个手写的serializer/deserializer库。所有类型都要和uint8_t *互相转换。不
: 理解type safety如何实现?理论上这属于停机问题。





--
※ 修改:·cstack 於 Jun 13 22:03:59 2021 修改本文·[FROM: 76.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
TeacherWei
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 16 ]

发信人: TeacherWei (TW), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 22:08:26 2021, 美东)

Excellent!

Although there are cases that break the rule, such as assigning a uint64_t
to a double, it happens very rarely.

You can give programmers finer control with #pragma

Overall, it is good design! Congratulations and best luck!


【 在 cstack (cstack) 的大作中提到: 】
: Please forgive me for typing in English. Haven't typed Chinese for a very
: long time, and my pinyin sucks.  It's too slow for me.
: Type safety is to strict for some C code. It does not apply to every use
: case.  But the type of each defined memory cell can be kept at runtime and
: used to check its uses.  For example, a float value can be assigned to a
: union like the following:
: union fi {
:   float f;
:   int i;
: } x;
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 100.]

 
cstack
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 17 ]

发信人: cstack (cstack), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 22:12:09 2021, 美东)

它能帮助刚学C的掌握指针和C's memory model. 我用CS50的学生做过评估.UCF的学生
也有用.

【 在 magagop (magagop) 的大作中提到: 】
: 這個跟wasm、wasi的區別是什麼呢,謝謝



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 76.]

 
netghost
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 18 ]

发信人: netghost (Up to Isomorphism), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/
发信站: BBS 未名空间站 (Sun Jun 13 23:12:52 2021, 美东)

Very nice, actually I think with this kind of tools and platform, criticism
on C's "memory safety" are greatly exaggerated.

Just took a look at your demo, did several not so trivial test seems quite
good to me. Seems you did both runtime and static analysis?

Web editor is quite nice too, although sometimes it doesn't refresh after
source code change.

BTW, what are the main users for this tool so far?


【 在 cstack (cstack) 的大作中提到: 】
: 主页:https://www.cee.studio
: 它的优势: https://www.cee.studio/benefits.html
: Online IDE to test out:  https://cee.studio
: 用C做的Discord库, https://github.com/cee-studio/orca
: 我们现在在探索用纯C和嵌入式脚本engine做bot/webapp后台开发. 希望和需要用C的公
: 司和或个人和作. 我是美国公民也可以接外包项目.
: 潜水多年,很是受益. 特别是netghost对C和其他语言的深刻见解



--

※ 来源:·BBS 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 71.]

 
bihai
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 19 ]

发信人: bihai (学得不好), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学/用
发信站: BBS 未名空间站 (Sun Jun 13 23:37:39 2021, 美东)

没看到效果啊

  char *a="good morning";
  printf("I am alive! Beware.%sn", a);
  printf("I am alive! Beware.%cn", a[15]);

【 在 cstack (cstack) 的大作中提到: 】
: 主页:https://www.cee.studio
: 它的优势: https://www.cee.studio/benefits.html
: Online IDE to test out:  https://cee.studio
: 用C做的Discord库, https://github.com/cee-studio/orca
: 我们现在在探索用纯C和嵌入式脚本engine做bot/webapp后台开发. 希望和需要用C的公
: 司和或个人和作. 我是美国公民也可以接外包项目.
: 潜水多年,很是受益. 特别是netghost对C和其他语言的深刻见解



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2601:647:4d00:a]

 
littlebirds3
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 20 ]

发信人: littlebirds3 (littlebirds), 信区: Programming
标  题: Re: 我做了个编译器把C/C++编译成动态内存安全代码, 让C容易学
发信站: BBS 未名空间站 (Sun Jun 13 23:58:59 2021, 美东)

读取是安全的.

【 在 bihai (学得不好) 的大作中提到: 】
: 没看到效果啊
:   char *a="good morning";
:   printf("I am alive! Beware.%sn", a);
:   printf("I am alive! Beware.%cn", a[15]);



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 108.]

[首页] [上页][下页][末页] [分页:1 2 3 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996