设计编程语言需要用什么(无需提供步骤)?

时间:2021-12-25来源:栏目:新媒体

要自己设计一个编程语言,下面几点必须要考虑。确定目标受众首先要明确你所设计语言的目标受众是什么。比如是如C/C 、Java、Python等这种通用的语言,还是如AWK、Make、CMake等领域特定语言(DSL)。如...

要自己设计一个编程语言,下面几点必须要考虑。

确定目标受众首先要明确你所设计语言的目标受众是什么。比如是如C/C 、Java、Python等这种通用的语言,还是如AWK、Make、CMake等领域特定语言(DSL)。

如果是通用语言,那么是C/C 这种系统型语言,还是Java、python等这种应用型的语言。

确定要支持的语言特性根据目标受众,确定你的编程所要支持的语言特性。比如是否支持面向对象编程,是否支持函数式编程,是否支持并行处理、是否支持泛型编程等。

此外,还要确定是强类型语言还是弱类型语言?是静态类型语言还是动态类型语言等。

制定语言的文法规范和语义规范根据语言要支持的特性,制定语言的文法规范。比如变量如何声明、函数如何定义、支持哪些控制语句,各种表达式的运算规则等。

确定语言的实现方式同一种语言可以有不同的实现方式。比如是如绝大多数C/C 的实现一样,直接编译成二进制机器码?还是像Java这样,编译编译成字节码,然后用虚拟机来运行?还是直接解释执行等等。

可利用的工具对于编译器前端来说,可以选择手工编写,也可以选择使用工具。

手工编写的话,比较简单实用的方法是递归下降和算符优先等算法。

选择工具的话,也有很多工具可用,比如Lex YACC、Flex Bison等

如果主要的目的是学习的话,建议还是手写比较好。

对于后端来说,代码优化是非常重要的一部分。毫不夸张的说,代码优化是一个现代编译器能否成功的决定性因素,也是整个编译器设计中难度最大,最为复杂的部分,也是最容易出BUG的部分。

一般,还是建议选择使用一些成熟的工具。比如LLVM,应该作为首选。大名鼎鼎的Clang的后端就是LLVM。LLVM现在已经相当成熟,近几年很多新的编译器都是采用LLVM作为后端。

觉得有用的话,点个赞呗!

对编译器、OS内核、性能调优、虚拟化等技术感兴趣的童鞋,欢迎关注!

1.本站部分来源于互联网用户自主整合上传,如有侵权,请联系我们删除;

2.文章内容并不代表本站的观点或立场,如有关于文章内容,版权或其它问题请联系删除;

3.本文地址:https://www.jiatu888.com/xmt/87323.html

最新文章

网站介绍

本站部分内容收集于互联网,如有侵犯贵司(个人)版权,请联系本站删除。

Copyright@2018-2021 www.jiatu888.com 嘉图网 All Rights Reserved 粤ICP备20051635号 网站地图 tag列表

嘉图网