我需要知道什么是开发一种编程语言,比如咖啡脚本,它基本上有自己的语法,但在编译变成另一种语言之后,有什么要求呢?我做了Google,但找不到正确的答案。如何开发像Coffee Script这样的编程语言?
4
A
回答
6
一个基本指定类似EBNF你的语言。
statement = if-statement | return-statement | expression | ... if-statement = "if" "(" expression ")" "{" statements "}" return-statement = "return" expression ";" ...
编写一个解析器,从源文件创建一个abstract syntax tree。
编写一个code generator将此AST转换为您的目标语言;或
编写interpreter仅仅评估AST。
+0
+1为普拉特语法分析器,他们是唯一最令人敬畏的解析算法恕我直言。 – delnan 2012-04-25 13:05:06
+0
@delnan:他们很棒。 – 2012-04-25 15:44:38
0
最初的要求是:
- 确定目标计算机语言
- 开发新的语言
- 地图新的语言为目标语言的语法的语法。
您仍然有很多工作要做,但基本上,您正在将您的新语言翻译成目标语言。
3
好的第一步是阅读Programming Languages: Application and Interpretation。它会教你如何用口译设计和实现语言。
相关问题
- 1. 开发像Imgur这样的网站所需的编程语言?
- 2. 有没有像编程语言这样的XML?
- 3. Web开发的编程语言建议
- 4. 如何开发非英语编程/脚本语言?
- 5. java编程语言和android开发
- 6. 编程语言 - 游戏开发
- 7. 如何开发像EntLib这样的配置文件编辑器?
- 8. coffee-script模块如何工作?
- 9. 如何识别用于开发软件的编程语言?
- 10. 是否有像C++这样的编译语言的Web框架?
- 11. 开关编程语言
- 12. if if else in coffee script
- 13. 找不到模块'coffee-script'
- 14. 考虑到JavaFX Script编程语言的几个小问题
- 15. 编写的编程语言
- 16. 这是什么编程语言?
- 17. LinkedIn应用程序开发的编程语言
- 18. 这是哪种编程语言?
- 19. 编程语言
- 20. Siri编程语言
- 21. ¿这是什么编程语言?
- 22. 如何编写select这样的语句?
- 23. 编程语言的原语
- 24. 如何创建像PHP这样的语言,它是如何工作的?
- 25. 多语言开发
- 26. Android开发语言
- 27. 哪种编程语言的语法是这样的(Swift或Objective C)
- 28. 使用Coffee Script中的功能
- 29. 编程语言树
- 30. 这是一种编程语言吗?
我会尽量不要听起来像一个傲慢的混蛋,但你问的事实可能意味着你现在应该不会开始这样的冒险。作出这一警告后,我希望比我更多的人能够提供介绍材料的链接。 – 2012-04-24 14:34:10
也许你可以从确保你了解coffeescript编译器的工作原理开始吧? – 2012-04-24 14:40:46