正在做UML的逆向工程,顺便写个新语言及其编译器,你们希望它有什么特性?

yesry 2005-06-14 03:28:10
1 具有C++,Java,C#等结构化语言的结构,优雅的风格.较严格的类型检查,灵活的互相转换,显式或隐式.支持多种操作符的重载.去掉多种操符连续操作,减少歧义(例如x+++y就不支持了).没有指针,但有引用(这点类似vb),内存自动/手动回收.没有内存操作超界(对于本语言的程序员来说,对于本语言的系统的实现或扩展的程序员当然还是有的).
2 变量多种状态:未赋值(null),已赋空值(nil),已赋其他确定值.变量访问读写跟踪.变量临界区访问.变量访问累计器.字符串作为基本类型.
3 出色的数组组织.对于下标超界,可以根据编译选项报错或认为未赋值(null).
4 支持运行时模板.现有C++模板都必须开源,运行时模板可以不完全开源(由于保留调用的信息较多,通过特殊手段还是可以获得实现过程的部分信息,没办法).
5 动态插件技术.动态插件就是类动态装入,根据名称运行时决定调用哪个成员函数.类似于Java的反射,C#的委托.Java的反射着重于"拿来"的使用方法,即通过获得类的据的Method,在希望的地方调用.C#的事件委托还可以进行被调用之前或之后进行补充.新一代的语言至少要后者的特性,而且还可以在运行时或装入时改造类,调用的语言表现更优雅自然.加上JIt动态source code 的动态编译和装入,实现更广泛意义的"自己(学习)生成代码或规则,自己执行","自己学习和生成规则,自己执行"是人工智能的基础.
6 JIT编译.从source code到1中间代码,到具体机器码都是可以动态编译连接的.机器码可以独立保存.
7 更简洁的多线程和互斥访问.经过多年的实践总结,多线程的互斥访问不是某段代码的单一进入执行,而是更精简的某(几)个变量的互斥访问,效率更高.多线程视作并发多函数执行.更容易的线程状态/返回/阻塞事件检查.
8 解决更多UI和多线程互相等待事件的问题.在多数编程环境中,如果UI启动线程并等待其完成,而线程又等待该UI的兄弟UI的其他事件完成,则发生闲死等待.新一代编程语言应该从容解决这类问题.
9 更容易理解的域操作.在通讯/序列化/文件系统/硬件操作等领域,常常要整数<->短整数<->字节<->比特的拆 /拚/排列.希望能用更易懂的表达形式来完成这些操作.还有左移/右移,循环左移/右移,带符号的处理等问题,需要更多的操作符来表达.
10 struct与数组的相互转换.struct与流的相互转换,有直接转换和带tag的xml转换.

欢迎参加群6927225
...全文
198 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pankun 2005-06-15
  • 打赏
  • 举报
回复
另外,感觉你想做的东西太烦杂了一些.
以我的经验,如果人力资源不够的话.
先定义好语言的基本核心,你的其它一些东西可以以非语法层面的功能提供,扩充要方便点.
至于你的第4点就太无聊了,模板主要作用是编译期多态,和可以看作代码生成器.模板运行时多态不如封装基本类,再用类多态了...
pankun 2005-06-15
  • 打赏
  • 举报
回复
也在做类似的.
累,但比较有意思.
其实上面的功能要实现都还不难.
难的是代码优化.
希望楼主能做好这一点哈

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧