【发布时间】:2021-05-23 01:46:44
【问题描述】:
在回答这个问题之前,请理解我不是在问如何创建自己的编程语言,而是在问如何使用 vb.net 代码为像 vb.net 这样的语言本身创建编译器。本质上,用户输入代码,他们得到一个 .exe。我绝对不想编写自己的语言,因为这里似乎有其他与编译器相关的问题。我也不想使用 vb.net 编译器本身,也不想复制 IDE。
我想要做的确切目的很难解释,但我所需要的只是朝着正确的方向推动编写一个编译器(如果可能的话从头开始),它可以简单地接受输入并创建一个 .exe。我之前(我自己的程序)以纯文本形式打开了 .exe 文件,看看我是否可以从我认为是人类可读文本的内容中获得一些含义,但我显然对看到随机 ascii 感到非常失望,尽管可以理解为什么这就是我找到的全部。
我知道 .exe 文件只是几行代码,由它所在的计算机解析,但我的问题实际上归结为:什么代码组成了 .exe?如果我愿意,我怎么能在纯文本编辑器中制作一个? (不,我不想那样做,但如果我理解这个过程,我的目标会更容易实现。) 是什么让可执行文件成为可执行文件?代码的逻辑在哪里?
这是一个编程问题,而不是计算机问题,这就是为什么我没有在 SuperUser 上发布它。我知道很多关于 System.IO 命名空间的信息,所以我知道如何创建一个文件并写入它,我只是不知道我将在这个文件中放置什么以使其作为可执行文件工作。
如果这个问题“令人困惑”、“愚蠢”或“显而易见”,我很抱歉,但我无法在任何地方找到有关可执行文件实际内容的任何信息。
Something that looked promising
编辑:这里的第二个链接虽然看起来不错,但完全失败了。我不会浪费时间敲击键盘并记录结果。 “使用“Alt”和 3 位组合来创建不会出现在键盘上但在程序中需要的符号。” (第 4 步)我怎么知道我需要什么符号???
非常感谢您的帮助,如果这个问题是一个新手或“坏”问题,我深表歉意。
简单总结一下:我想在 vb.net 中创建一个程序,它可以将特定语言的代码编译为单个可执行文件。有哪些方法可以让我做到这一点,如果没有,我该如何从头开始编写自己的方法?
【问题讨论】:
-
我认为您大大低估了编译器的复杂性。大学里有关于这个单一主题的完整课程。
-
因此,如果这是一个愚蠢的问题,我深表歉意。显然,这些并非没有根据。如您所见,我确实在谷歌上搜索过,我并没有期待一个小的答案。
-
乔尔说,对于一个读龙书的人才来说,写一个编译器是两个月的工作:joelonsoftware.com/items/2006/09/01b.html
-
这绝对是一个小问题,但我不会说它是一个坏问题。很明显,你对你要问的问题一无所知,也不知道它意味着什么,但如果不问别人,你是不会知道的。顺便说一句,第二个链接确实没用,而且您关于需要哪些符号的问题已经死了:这就像参加十四行诗写作课程并被教如何触摸打字。
-
是的,我对此一无所知,而且绝对是nooby。是的,第二个链接失败了。
标签: vb.net compiler-construction