如何直接将高/低电平编程代码转换为机器代码?

时间:2017-01-25 04:08:18

标签: c++ assembly linker programming-languages machine-code

我想设计和开发自己的编程语言和编译器。我还是一名懂数学C / C ++的数学本科生。我做了很少的网络研究并阅读了一些电子书,但大多数都使用特定的工具将对象/中间代码转换为机器代码,其中大多数都解释了如何使用汇编程序将新的编程语言转换为机器代码。那里有很多教程/参考资料 "如何将程序集转换为机器操作代码" 但是它们会跳过一些新手级别。我想深入研究这个问题。 - 假设我使用适当的语法和运算符设计了我自己的编程语言(假设它被称为=" MW ")。

问题

如何直接将 MW 语言代码转换为机器代码,以便为O / S生成可执行文件?

如果你能给出非常明确和解释性的答案,我们非常感激。 由于我不是计算机科学专业的学生,​​我需要一些指导和一步一步的描述如何以及为什么? 如果有人知道这本书的好书或网站,请回复。

  • 我的目的是建立一个类似" Wolfram的系统 Mathematica"。请不要参与有关编程的论证 语言类型,如 - 符号,程序,数字等。

谢谢。

2 个答案:

答案 0 :(得分:3)

你的问题毫无希望地模糊不清。

建议:

关注问题的一个方面。研究其他人如何实现编程语言"。例如,下载并试用这个用C ++编写的小型简单BASIC解释器:

或者下载并研究这里的任何(或几个)其他示例:

https://sites.google.com/site/smallbasicinterpreters/source-code

祝你好运!

答案 1 :(得分:1)

我只能就这个主题提供一些有限的指导,因为我不熟悉Mathematica如何在内部解决或计算符号表达式的答案。我相信我之前遇到过一些关于这个主题的书(计算机代数系统),但我忘记了这些题目。一般来说,这是一个主题本身有点从编译语言到机器代码一般被删除,因为我相信结果是由所述系统解释的。

然而,对于一般的计算机语言而言,你会得到一本关于编译器理论的书 - 例如

汇编了Aho / Sethi / Ullman / Lam的原理技巧和工具。

通过Cooper / Torczon设计编译器

或类似的东西。这些书籍倾向于介绍编写解析前端和将文本转换为中间语言的基本原则,然后可以使用各种标准技术将其转换为机器代码。

希望有所帮助。