网教网

搜索

设计一种新的系统编程语言

[复制链接]

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-21 14:21:08 | 显示全部楼层
感觉这样限制会比rust更严格,可能很多东西没法写。如果用这么简单的指针生存期模型就能做到内存安全,那应该早就有人做出来了。
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-21 14:21:30 | 显示全部楼层
像是void foo(A* a, int* b) { a.b = b; } 这样的函数很多情况下其实是安全的。但是目前只能一刀切的禁止了。如果要标记每个变量的生命期,会增加复杂度。例如我想过这样的语法:void foo(A* a, int* b) lifetime(a <= b) { a.b = b;} 表示a的生命期比b短。
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-21 14:21:43 | 显示全部楼层
在rust的模型中,生存期还与型变有关,禁止生存期的协变逆变会让大多数场景没法编译,太难了
回复

使用道具 举报

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

本版积分规则

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