怎样写一个新编程语言

怎样写一个新编程语言

 

编程思想+计算机结构:

编程思想决定:类型系统(内存布局)+函数调用解释;

计算机结构:控制结构;

 

编程语言-》编译器-〉内存模型

 

编程范式的确定

类型系统的确定;

内存模型的确定;

 

类型系统对应内存;编译器要完成内存布局的指令;

函数调用对应cpu:编译器要完成调用约定;

 

编译器对abi的支持;

 

 

 

类型系统:类型系统与内存模型密切相关;

 

作者:Belleve
链接:https://www.zhihu.com/question/19942085/answer/18200093
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  1. 语义设计
  2. 语法设计
  3. 实现一个编译器
实际上,最难的往往是第一步,也就是语义设计,因为它决定了你的语言的最终形态。「语义」的内容会很宽泛,下面这些都是语义的范畴:
  1. 类型系统:是强类型还是弱类型?静态类型还是动态类型?是否有类型推导?如果有,基于哪种形式系统?是否允许子类型?是否允许递归类型?类型转换的机制如何?等等。
  2. 编程范式:你的语言是过程式(Imperative)还是声明式(Declarative)还是两者结合?对于「声明式」,是函数式(Functional)还是逻辑式(Logical)?是否允许元编程?等等。
  3. 存储:你的语言是否允许用户干预存储细节?是否允许指针算数?是否允许手动内存管理?变量(符号)的作用域规则如何?是词法作用域(Lexical Scoping)还是动态作用域(Dynamic Scoping)还是两者结合?
  4. 子程序:你的语言是否有子程序?如果有,他们是否是第一态(First Class)的?参数传递是按值传递还是按名传递?是否允许按引用传递?求值策略是急迫求值还是懒惰求值?参数之间的求值顺序是怎样?
  5. 流程控制:你的语言是否允许非结构跳转?是否有内建的异常处理机制?是否有连续体(Continuation)或协程(Coroutine)机制?
https://www.zhihu.com/question/19942085
 

 

转载于:https://www.cnblogs.com/feng9exe/p/10580524.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值