「埃尔法哥哥」14 点,想要自创一门编程语言,事情哪有这么简单?除非能做到这
现在 , 很多人对他们现在每天使用的编程语言感到困惑和不解 , 他们都有各自的需求 , 无论你是一名职业的IT人员还是普通的开发爱好者 , 你可能曾经想要创造一门新的编程语言 。 下面就来告诉你如何创造一门编程语言 , 如果你能够做到这14点的话 , 说不定那时候的你真的已经成功了呢!
文章图片
Step1对专业术语十分熟悉
写编译器的人通常会使用一些你不是那么熟悉的术语 , 所以你一定要在开发前先了解编译器 , 确保你知道编译的所有事情 。
Step2确定这门语言的应用领域
你要知道你的这门语言是用来解决某个特定领域的问题 , 还是通用目的的语言?
Step3思考这门语言的语义和概念
(1)允许直接的指针访问吗?
(2)这门语言提供哪些数据类型?
(3)这是一门静态语言还是动态的语言?
(4)使用什么内存模型?是有自动的垃圾回收机制还是需要手工管理内存?
(5)如何处理并发性?你准备使用单进程/锁模型 , 还是复杂一些的 , 像Linda或actor模型?
(6)语言中提供一些内嵌的简单函数还是所有的内容都来自于类/函数库?
(7)这门语言的范式是什么?是函数式的 , 面向对象的 , 面向方面的 , 模板式的 , 还是一种原型 , 或就是彻头彻尾全新的?
(8)这门语言和现存的库或函数的接口是如何的?如果你是在创建某一领域特定的语言 , 这点就尤其重要 。
(9)最后 , 这里面的一些问题如果想有很好的答案 , 需要先做好第二步 。
文章图片
Step4思考人们想用这门语言做的事情
比如说 , 一些人想利用它指挥机器人 , 一些人想用它开发移动端的桌面程序或是用它开发Web应用 。
Step5利用上面的例子测试语法
注意应该让你的语言属于上下文无关范畴或是它的子类别 , 这在以后对你和你的语法分析程序都是件好事 。
Step6写出正式的语法规则
Step7确定这是一门解释型语言还是编译型语言
它意味着如果这是一门解释型语言 , 你的用户通常会在编辑器里写程序 , 然后直接在解释器中运行 。 但是对于编译型语言 , 你的用户会写代码 , 编译 , 然后将可执行程序存到别的地方 , 单独运行 。
Step8写好语法分析器或借助工具帮助你
【「埃尔法哥哥」14 点,想要自创一门编程语言,事情哪有这么简单?除非能做到这】想好如果用户的程序出现语法错误 , 你的编译器或解释器将给出什么样的警告?
Step9使用语法分析器信息写目标代码
Step10写好执行程序或代码生成器
Step11写出足够多的测试程序来检测这门语言
你希望创造出一门正规的语言 , 它的编译器可以明确的接受定义范围内的所有的内容 , 而拒绝这之外的一切内容 。
文章图片
Step12考虑用户如何调试自己的程序
Step13如果你的语言使用标准类库 , 你要写好它
特别是 , 如果你写一个编译器 , 你需要这么一段代码 , 让操作系统执行它从而开始运行用户程序 。
Step14发布这门语言的同时加上它的说明书和一些附属例子
不要忘记注明你是如何整合这些库和语言的 , 如何使用运行时间的特性和标准类库 。
- 三生石哥哥多家快递公司宣布会提高快递运送费用
- 埃尔法哥哥互联网空间会被用完吗?2025年全世界数据总量将会超过16万EB
- 埃尔法哥哥 人工智能与科技传播领域的融合
- 【埃尔法哥哥】kNN分类算法及其python实现
- 埃尔法哥哥■区块链技术迎风而上,ETX公链解决行业痛点,信息时代安全为王
- 埃尔法哥哥@Spark 数据倾斜的 8 大实用方法,解决
- 『埃尔法哥哥』为什么你写的代码别人看不懂?
- 「埃尔法哥哥」ICCV2019:DeepFill一个用于生成图像修复任务的开源框架
- 『埃尔法哥哥』每一个程序员的必经之事
- 埃尔法哥哥■假装网络工程师-TCP/IP与静态路由