爻易 发表于 2015-05-13 18:30

forgaoqiang 发表于 2015-05-13 09:14 static/image/common/back.gif
有些是可以做 但是不是一个人能做好的 比如 《自制操作系统》 啥的

操作系统大多也是从一两个人起步的,开始的规模可以小一点,逐步升级做大。。。

爻易 发表于 2015-05-13 18:37

laputa73 发表于 2015-05-13 14:02 static/image/common/back.gif
巴比伦之塔。。。
我觉得最理想的是一种语言包打天下
既能写底层,也能写应用,


没有这种万能语言,因此会产生来应对各种需求的编程语言。

中国当然也要抓紧研发,编程语言无论是数量还是质量,两手都要抓:lol:

heguangwu 发表于 2015-05-14 09:21

这个太高端了,我没看过龙书,随便扯淡一下:
1、设计一问语言,你打算借鉴当前语言的哪些机制?为什么要使用这些机制?你的目的是什么?
当前的语言大多几个流派,很多是从数学的角度出发,无论是面向对象还是函数式编程,都太多复杂。如果我能设计我会从人的思考角度出发来设计,当前语言有很多机制,我比较欣赏的是actor模型,这个机制比较符合人的思维,目的是实现类似多线程且无需复杂的同步机制

2、语言的实现和编译器密切相关,你打算如何实现编译器?请仔细描述至少一项语言机制的编译器实现方式。
实现编译器首先要定义语法和词法的标准,我相信如果精通flex/bison都能轻松解决,然后实现就是对应语法的实现,我称之为翻译,简单做可以讲这个语法转换成C语言,这个是水磨工夫,说句实话,我曾经想做一个简单的类SQL的东东都花了很久时间最后不了了之

3、你打算如何设计对象内存布局?这个和语言机制有什么关系?
这个从来没想过,我觉得除了要做垃圾回收,否则可以直接用现有的如C/C++的对象内存布局

4、如何处理同步异步?
这个我想大致可以用内存屏障或自旋锁等OS的特性来实现同步,异步可以使用回调来做,不过我还是比较喜欢actor机制

gavenwei 发表于 2015-05-15 11:17

1、设计一问语言,你打算借鉴当前语言的哪些机制?为什么要使用这些机制?你的目的是什么?
   要借鉴的多了,C语言的简洁,C++类STL的数据结构封装,java的虚拟机,甚至动态语言的动态加载、解析机制
   为什么要使用这种机制?因为都可以在某些场景下,减轻使用者的工作量,这些机制其本质都是对某些公共功能的封装
   甚至语言本身都是公共功能的封装,比如C语言所有能实现的功能,都可以用汇编实现,可是并非所有功能都必须要用汇编实现。
   我的目的很简单-省事

gavenwei 发表于 2015-05-15 11:17

2、语言的实现和编译器密切相关,你打算如何实现编译器?请仔细描述至少一项语言机制的编译器实现方式。
   编译器的实现,如果走捷径,就用flex/bison来根据语法生成编译器,这样只需要关于词法、语法的定义
   如果实现部分也要自己写的话,那就先分析flex/bison-推荐<lemon语法分析生成器>这本书,然后就是把flex/bison做的事情,
   自己手工实现一遍,手工实现最好采用自顶向下分析法-这种分析法比较符合人的逻辑,逐步分解类似递归实现。
   如果采用自底向上分析,状态实在太多,太杂,还是建议借助语法分析生成器吧

gavenwei 发表于 2015-05-15 11:20

3、你打算如何设计对象内存布局?这个和语言机制有什么关系?
   在回答中,包含不良信息,无法提交。
   
   

gavenwei 发表于 2015-05-15 11:20

本帖最后由 gavenwei 于 2015-05-15 11:21 编辑

3、你打算如何设计对象内存布局?这个和语言机制有什么关系?
   在回答中,包含不良信息,无法提交,没看出哪里有不良信息。难道对象+布局 就成了不良信息?
   
   

gavenwei 发表于 2015-05-15 11:20

4、如何处理同步异步?
   编程语言没必要处理同步异步的问题吧

qingduo04 发表于 2015-05-16 16:47

高大上..................

lsstarboy 发表于 2015-05-17 17:40

C语言跟硬件打交道时比较强大,但是入门比较难,指针虽然强大,但是现实中把不少人都淘汰掉了,特别是到了结构的时候……
到了结构再向上走,就到面向对象了,这是c++和java的主要领域,但是java提出那些设计模式,又把一些本来很小巧的应用搞的很复杂……
js+html有时不是给人看的,但浏览器却比较喜欢;perl文本处理强大,但效率稍差;prolog推理性强,但普通应用起来比较麻烦

每种语言都有自己适合的环境,很难有万能的语言。所以要设计属于自己的语言,要看自己的应用环境,就像车一样,在城里跑轿车就不错,越野车就是摆谱;在戈壁滩跟用轿车就惨了;在乡村路土上,五菱之光就不错;在田里跑,拖拉机或履带车吧。

语言的设计,跟用户接触到的就是语法,我本人觉得越容易读懂越好,像java那种,五个点都不到头,熟悉的项目还好,学习新的项目比较麻烦。为什么basic容易入门?因为语法简单,写出来的作品也容易分析。C如果没有指针和一大堆的define,也还是比较好学的。

语法向后,已经编译原理了,太高深,看过几遍也没什么印象了:((
页: 1 [2] 3 4
查看完整版本: 设计属于自己的编程语言你有何高见吗?