免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: CUTianrui007
打印 上一主题 下一主题

设计属于自己的编程语言你有何高见吗? [复制链接]

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
21 [报告]
发表于 2015-05-18 00:17 |只看该作者
我一直想设计自己的编程语言,也一直在努力。

我厌恶 C,C++, Java,Python(现在好多了),还有很多很讨厌。比较喜欢 Perl,Ruby,Scheme, newLISP, Clojure, Io, Lua, 但总是有些遗憾,都不是我心目中的语言,也许只有我自己设计的语言才是属于自己的语言。我的语言要有以下特点:

1. 语法能很快修改,因为当我发现了更简洁的表达形式,或者要针对特别语言环境编写代码时,现有的语法特性无法支持。如果修改语法比我耐着性子痛苦写别的语言代码的工作量要大的话,就算了。也就是说,语言的语法是分离出来的。这种语言应当有一种子语言是描述语法本身的。

2. 这门语言的基本语法简单,因为我很笨,记不住那么多的语法。想扩展语法,只需要增加一个关键字抽象就可以了。而且大部分的抽象不需要修改源码,一个宏就搞定。

3. 这门语言可以方便的转换成许多语言,它能感知周围的语言环境,能生成相应的语言代码,和周围的环境进行交互。

4. 至于并行,在需要并行的语言环境中,这门语言就可以启用相关的关键字了。

5. 至于内存布局之类的,还是让那些研究底层的去考虑吧,CPU 的架构不断改变,机器语言也会不断升级,寄存器越来越快,缓存越来越大,内存越来越便宜,硬盘越来越海量,这些存储方面的苦力,还是让对底层硬件感兴趣的硬件程序员去考虑吧。

6. 要有可选的类型系统,但不是强制要求的,因为这个语言应当有最起码的类型推断功能,如果连 34 都不知道是什么数据类型的话,只能说设计这门语言的人和猪差不多了。当进行深层次优化的时候,可以启用备用的类型系统,对函数设计,返回值进行类型优化。但类型不应当成为快速开发原型的障碍。

7. 这门语言不会像 Java,Ruby,Haskell 等语言一样,强制我去用一种思考模式,编程范式去写代码,它允许我用函数式,面向对象,面向过程,甚至是面向需求,总之,哪种方式最适合当前的项目,就用什么。

8. 这门语言肯定不会是那种需要一个编译器去编译,然后去运行的语言,因为太浪费生命了。

如果这些要求都达不到,就更别说高亮的语法文件,合适的编辑器,成熟的社区,快速的反馈,完善的模块,大量的用户,多领域的应用了。

世界上已经有 3000 多种语言了,我相信我不会设计出比别人优秀的语言。我也不指望别人使用我的语言,我只希望自己用。

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
22 [报告]
发表于 2015-05-19 09:45 |只看该作者
这本书评价很好啊...
目前还是只会C, cpp正在考虑.

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
23 [报告]
发表于 2015-05-22 17:24 |只看该作者
现在大家热衷自己发明语言,其实这个做一个玩具还可以,真要做一个产品难
语言都是针对特定的问题提出来的,解决某一个场景适合就可以了,如果做一个大而全的东西估计复杂度太高,而且也没有人用啊

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
24 [报告]
发表于 2015-05-22 18:36 来自手机 |只看该作者
指针两个特性:地址和步长,理解了这两个特性就理解了指针的精华。

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
25 [报告]
发表于 2015-05-22 18:39 来自手机 |只看该作者
做好做啊好不重要 ,关键是经历,不在乎天长地久,只在乎曾经拥有,就是这感觉。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
26 [报告]
发表于 2015-05-22 19:41 |只看该作者
我多年来一直萦绕在心头的念头:
应该有一种兼容性极高的语言,只要有确定输入输出的地方,就可以进行运算。比如显卡、声卡、网卡,只要给了一下确定的输入,就会有一个对应的输出,只要具备这个特征,就可以跟程序,区别仅在于速度,并且可以高度的并行去运算,CPU不够时可以用GPU,GPU仍然不够时可以用声卡……

貌似opencl有某些特征,但是opencl目前看用起来还是比较麻烦,要弄一大堆东西才能跑起来。

论坛徽章:
4
2015年亚洲杯之乌兹别克斯坦
日期:2015-04-01 16:22:542015年亚洲杯之沙特阿拉伯
日期:2015-04-01 16:22:542015年亚洲杯之朝鲜
日期:2015-04-01 16:22:542015年亚洲杯之伊朗
日期:2015-04-01 16:22:54
27 [报告]
发表于 2015-05-23 09:06 |只看该作者
只能说楼主很厉害

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
28 [报告]
发表于 2015-05-23 16:39 |只看该作者
我是来围观的,坐等大牛发言。其实楼上说的对,很多东西,都是看着很难,真的静下心来做,也就不难了。
但是,这里有两个问题:1.很多老师不合格,直接导致学生不合格,基础不扎实。2.很少有人能静下心来做事。

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
29 [报告]
发表于 2015-05-23 17:42 来自手机 |只看该作者
关键还是要做 成功与否不重要

论坛徽章:
10
CU大牛徽章
日期:2013-09-18 15:20:48程序设计版块每日发帖之星
日期:2016-07-21 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:01技术图书徽章
日期:2014-10-14 16:00:43天蝎座
日期:2013-09-27 17:41:29CU大牛徽章
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58每日论坛发贴之星
日期:2016-07-21 06:20:00
30 [报告]
发表于 2015-05-28 21:14 |只看该作者
1、设计一门语言,你打算借鉴当前语言的哪些机制?为什么要使用这些机制?你的目的是什么?
java的对象回收机制,用c,c++最大的问题就是内存泄露,太花时间了。

2、语言的实现和编译器密切相关,你打算如何实现编译器?请仔细描述至少一项语言机制的编译器实现方式。
作为一门语言为什么一定要用编译器呢?未来动态语言的应用将大大超过编译语言,经过语法和词法法分析后的中间代码
更有利于知识产权的保护和跨平台运行。所以我想会在JIT方面应该更需要着力。

3、你打算如何设计对象内存布局?这个和语言机制有什么关系?
这个就是解释器的问题了,主要是变长内存的使用,如果有好的中间代码,翻译类似于RISC的指令码可能更好。
如果能够在运行时兼顾到虚拟内存的分页问题可能会更加完美。


4、如何处理同步异步?
在语言层面上处理同步异步好象就太高档了。需要一个与OS强耦合的解释器了,对于解释器的编写带巨大的难度,更倾向于用本地库来实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP