IVY DOM


 

人生就像一副复杂拼图
每个人总有属於自己的记忆碎片
优质美国空间-老薛主机|IVY DOM|Flowline|

联系我

RSS




三月 22, 2016

我是如何入门编程的(2)

说一说我学前期学VB和C++的历程。

C++是在高一学的,每天晚上的晚自习是我学习它的时间。高一的时候,语数外作业是最多的,其它科目作业较少,而我又只学英语,所以晚自习剩下了大把空白的时间,这一度让我的数学没超过40分。

大学的时候,我可以把电脑抱去教室,在老师眼皮底下编程;上课上到一半我也可以出去晒太阳、上厕所。放在高中,这肯定是不可能的。

于是,晚自习的时间,我把代码都写在了纸上。

起初,是VB的代码。

这是一个计算机语言的“解释器”,比编译器要低一级。我当时有两个梦想,一个是开发出能通过图灵测试的人工智能,另一个是自己写一个编译器或解释器。

我当时确实也付诸行动了。

关于人工智能,我研究了其中一个分支,“自然语言处理”中的“中文分词”技术。我用了一个周末的时间,成功让计算机通过不同的语境识别不同的句子含义,且有上下文对照功能。比如,“说一句‘茄子’”,它会反问我,“你要拍照吗?”。后来它烂尾了,现在源代码已经丢失了。做的过程中,我认识到,以计算机的线路组成,再怎么智能也只是伪智能。“人工智能”中的“人工”一词,绝非空穴来风。

关于编译器,我确实是写出了一个蹩脚的出来。首先,它是中文的;其次,它支持两种编译方式,“编译运行”和“解释运行”。编译运行是利用了Windows操作系统的DOS脚本,我把.bat文件直接转换成了Windows可执行文件的PE格式,然后它就成了EXE格式了,但其本质还是DOS脚本,所以编译运行的语言是英文的。解释运行是纯中文的,我只是通过语法分析,分析出了它的语义然后予以执行。这个用的时间也不多,好像是四个周末,也是高一的时候,我那时真的不学学校的东西(叹气)。

我把它命名为OlineScript,名字的来源是《火影忍者》,那个时候好像是五影会谈,有个影使用了一招叫“雷虐零线千代舞”,我当时特喜欢这个名字,觉得特别美,于是我中英文混杂以O(零)line(线)来代表这个招数。(扯远了)

以下是我的OlineScript界面。

编译出的exe文件

补充一下,这套系统不仅是个语言,还是个功能齐全的IDE。有语法高亮,语法提示,编译提示,保存/读取等众多功能。

刚完成的时候,我跑去各种关于编程的贴吧发帖,“一不小心写了个编译器,一万行代码编译只要10秒”,其实我当时不知道,一万行10秒已经是个非常慢的速度了,C语言的编译器,一秒是扫源代码30遍的。

后来它也烂尾了。

因为各种效率问题,还有所谓的程序员鄙视链,VB毫无疑问是鄙视链的最底层,然后我学起了C++。

当时看编程的书已经毫无术语障碍了,所以开始了我长达4年的买书史(直到现在大二才改掉这坏毛病)。

这是高三毕业的时候,我看完的所谓“闲书”(部分)。

大一的时候,是这样(部分):

现在,是这样:

好了,继续回到C++的话题。

毫无疑问,还是一如既往的纸上写代码。

足足有十多页,就不全发了。

实话说,那个时候学的东西,对我现在的帮助并不大。但是,我很感谢几年前那个,不遗余力追求新知,追求梦想的自己。

多年前学的C++早就忘了,VB也早就不用了。但是为了掌握它们而付出的行动,一直到现在都影响着我——努力与坚持。

就算我做了自然语言处理的工具,写了个语言的解释器和IDE,但代码质量远远未达到“软件工程”的要求,即便是那个时候,我仍觉得自己没有入门编程。

相关文章

返回
  1. 暂无评论。

  1. 暂无 Trackback

You must be logged in to post a comment.