回答读者的疑问
回答读者的疑问
Q: 第一天不是说好了进行工作计划吗,怎么先去实现外部中断的功能了。另外,虚拟机和汇编器不应该是两个软件吗,叫自制虚拟机更合适一些?(张宁宁 2016.05.24)
A:首先要感谢认真阅读文章的热心读者,笔者我在此表示感谢啦! 其次第一天的工作是:制定工作计划、虚拟机的开端。这里本来打了个空格结果好像被我误删了。制定工作计划就是那个表格。然后的内容都是制作虚拟机的开端。 接着虚拟机和汇编器是两个软件没错,但是这本合集主要是实现一种可以直接运行在自制的虚拟机上面的自制汇编语言。因为暂时在这本合集的范围里面不涉及汇编器的部分,但是又要涉及这种概念。而且笔者我后续的计划更偏向与自制的汇编语言,虽然还是要不停的修改虚拟机。如果叫自制虚拟机就会给一部分读者自制出来JVM那样的大家伙的误解。所以我就叫自制汇编语言了。 当然根据笔者我的计划,最后是要在后续的内容中实现对界面的编程和资源回收等高级话题的。但是在这本合集中并不会涉及。(毕竟这本合集只是一个样章)而且等这个合集完全更新完成之后,相信这位读者就会相信,叫自制汇编语言要比自制虚拟机要更合适了。毕竟要是叫自制虚拟机的话,至少在这个合集更新结束之后,这个虚拟机还只是个能运行的起来的玩具虚拟机。如果要是想做成真正的虚拟机还是需要等笔者我联系好出版社或者是出版商的说。(2016.05.25)
Q:你把函数都定义在头文件里面,似乎不太好,头文件只做函数声明,函数定义另起一个.c文件比较好。(堕落小生 2016.06.03)
请问作者以后会再讲头文件的部分吗?现在这个头文件看起来怪怪的。(天地無用 2016.06.03)
A:首先感谢 @堕落小生 @天地無用 两位读者的支持。就像我在“回答读者的疑问”中所说过的“自制汇编语言”这一合集实际上是我构思中的新书——《更好的语言》的第二章(样章)。在这里制作的虚拟机只达到了能够勉强运行的程度。有一点儿像是“Multics工程”只是能够勉强动起来。这个虚拟机(实际上它叫kiasm)缺乏资源回收的机制,甚至很多功能在“自制汇编语言”这个合集结束的时候还没有完善。但是这些内容我都会在《更好的语言》这本书的后续章节进行完善和改进。
关于头文件的问题, @堕落小生 @天地無用 两位读者都有提到。根据我的计划在《更好的语言》的第三章我就会修改这些头文件(目前只有一个)。这些头文件需要做一个大手术,应该会用一节甚至更多的笔墨来讲解头文件和预处理器。毕竟,国内主流的教材忽视了这一部分。指针的部分也会有更深入的讲解。
关于相似的问题也许还会出现在“第6天 控制指令”这一部分。因为这一部分的控制指令也只是一个初步,只是能让程序勉强能够运行而已。它缺乏健壮性。不过读者大可不必担心,因为这些问题我都会在后续章节慢慢修复。这可能是笔者我的一种工作习惯。就是先搭建一个不是那么完美但是能够运行的起来的骨架,然后再慢慢调整。虽然对于我目前日常的工作来说,头文件中只做声明,在另外的*.C文件中定义的这种事情是一次成型。但是在很多年前,笔者刚刚开始尝试多文件编程的时候,的确是按照把声明和定义都放在头文件中的这种方式操作的。
另外我不小心删除了一开始和 @堕落小生 讨论的一些内容,这段话也对之前讨论过的内容给予了概括和补充。(2016.06.03)
Q:自制编程语言这玩心可够大的。。不过我喜欢~(aminic 2016.06.01)
A:感谢 @aminic 的支持!不过暂时在“自制汇编语言”这一合集中。我们只会做一个能够运行的起来的虚拟机,很多功能还没有实现。但是笔者保证在《更好的语言》这本书中将会实现界面编程、资源管理与回收、面对对象、文件操纵等高级功能。(2016.06.03)