这个吞金兽不好养
超小超大

第三十二章 长夜漫漫 (2-1)

而这么长的时间里面,叶新晨也是在解决上面这个BUG的尝试中,才发觉TCL这种语言先天不足。

因为一旦程序逻辑复杂,它那变量无需声明、变量无类型等等对初学者来说不可多得的“优点”就成了致命缺陷。

这会让人不得不付出比C/C++之类“正规语言”多得多的努力去跟踪去区分数据类型。

而且为了避免错误,叶新晨也不得不把数据类型也“打包”进数据,然后在程序入口写代码分辨它——尤其是,这些数据类型还是动态的,是从输入数据识别出来的;不结合输入谁都不知道某个数据在某个时刻会是什么。

这使得代码几乎无法静态分析;而测试用例很难覆盖每一条执行路线——不要忘了,这个程序“吃”进去的数据是多变的,几乎不可能列出所有情况。

这使得叶新晨又产生了一个想法。那就是,要给它增加一些功能,把专业语言的p、变量先声明后使用等等功能搞出来,使得出现类似高危行为时可以得到提醒甚至直接对相关不良行为报错。

当然,叶新晨是没有这么自觉的,只是叶新晨跟他们说了,他们立刻就私发了一个六万的悬赏让叶新晨帮忙!

原本叶新晨是不愿意的,因为那七天已经够累的了,晚上都熬到凌晨三四点,每天就睡三四个小时,这让叶新晨深刻的明白为什么程序员容易头秃了。

虽然叶新晨不愿意,但是奈何对面又把这个六万的悬赏又加了四万……

嗯,叶新晨觉得这个功能也不是那么难,熬夜那就熬夜呗……

所以叶新晨也是立刻就进入状态了,TCL号称一切都是字符串,这甚至可以把系统库函数/运算符/关键字都给rename掉,然后自己写一个替代品。

这给了它的用户极大的自由度。

比如iTCL就是用命名空间模拟的面向对象语法——这种语言仍然是面向过程的;但你可以自己定义一个class关键字(实质上是一个过程),把它变得和一个真正的面向对象语言几乎一模一样。

叶新晨首先盯上的是它的过程/函数声明关键字proc。

在这种语言里,你声明一个函数fun,格式就是

pr){

#body

}

它看似一个关键字;但TCL里一切都是字符串,因此这个proc实质上是个函数,它接受函数名、参数列表、函数体三个参数……

叶新晨也是把系统的proc改名叫_sys_proc,自己写了个proc;这样当用户声明一个函数/过程时,他的声明将以字符串格式先传给他。

这样子的话叶新晨就可以做一些修改,把一些逻辑插进用户编写的代码中,然后再把修改后的代码传给_sys_proc。

通过这种方式,叶新晨就接管了TCL的一切;然后修改了它的异常/返回流程,识别出“用户未捕捉的异常”。

毕竟叶新晨是记录了每个函数在某次被调用时、在调用链上所处的层级。尤其接近顶层尚未捕获就会影响到当前测试用例、当前测试套甚至引起整个程序过早退出,这些都是要记录的。

现在,当程序出错时,如果通过异常处理程序解决了问题、允许程序继续执行了,那么叶新晨就不做任何动作。

但如果没有处理异常、使得测试失败甚至程序退出,那么叶新晨就能在执行下一条语句之前把整个调用链打印出来——从函数调用关系到每个函数的局部变量内容、再到异常传递路径,巨细靡遗。

这个设计相当于函数返回时会多执行几条语句,把局部变量等信息保存在内存中;只要程序不崩溃,那么这些信息就自动丢弃;而一旦程序要崩溃,它就会写到磁盘文件中——叶新晨自己搞了个日志滚动机制,专门记录最近十次崩溃信息,并不会无限侵占磁盘空间。

通过这个东西,再付出微不可察的时间代价,叶新晨给所有Tp功能。

这显然是个重大利好。

这个吞金兽不好养提示您:看后求收藏(百发小说网http://www.baifabohui.com),接着再看更方便。

相关小说

好好好,我抢功劳是吧? 连载中
好好好,我抢功劳是吧?
一直重拳
斩妖除魔,拼了命守护宗门,守护大周百姓。 苏尘没有想到,自己有一天会被扣上一顶“抢功劳”的帽子。 接下最危险的打探任务是在抢功劳。 救下同门性命,是在抢功劳。 甚至身上受伤,也被说是故意为之,是为了让得来的功劳显得更真...... 被百般嫌弃,那便离开,那些功劳你们想要,便自己去取。 ...... 一个月后。 云阳宗前线大营开始被妖物袭扰...... 三个月后,宗门地界出现妖物的踪影......
105.9万字2个月前
人在斩妖司,刚成绝世大妖 连载中
人在斩妖司,刚成绝世大妖
青云魔树
天地大变,红月当空,妖魔横行,人道沉沦。秦玉穿越到诡异世界,成为斩妖司的敛妖师。安定体面的工作,臭味相投的朋友,前途无限的弟弟……秦玉觉得这个世界,真美好。直到拥有盛世美颜的他,被女上司表白。“秦玉,我们结婚吧!”“抱歉,我们不合适!”秦玉义正言辞的拒绝了。身为穿越者,他是有尊严的。借助系统,努力修炼不香吗?
3.6万字1个月前
全民觉醒:开局获得十凶雷帝武魂 连载中
全民觉醒:开局获得十凶雷帝武魂
星之空
[[【飞卢小说网独家签约小说:全民觉醒:开局获得十凶雷帝武魂】睁开眼,叶安发现自己穿越到了,灵气复苏武者为尊的世界!在这里,武者可一念断山河,一指囚天地!江山美人,功名利禄!无论你想要什么,皆都搓手可得!但想要成为武者,必须觉醒武魂!正当别人因为觉醒不了武魂唉声叹息,或者仅仅觉醒了普通武魂就欢呼雀跃时。叶安则是激活了系统,得到了上古十凶雷帝作为武魂!不成天地主宰,便化宇宙尘埃!保持着这一理念,叶
10.8万字1个月前
人在综漫,是个中二病 连载中
人在综漫,是个中二病
八云家的滚滚
[[【飞卢小说网独家签约小说:人在综漫,是个中二病】穿越到综漫世界的八神无,莫名其妙的觉醒了名台词系统。只要说出那些耳熟能详的名台词,就能获得对应的角色模板。正当他以为自己已经无敌了之时,现实却狠狠地给了他一击重拳。“仙之巅傲世间,有我安澜变有天!”【对不起,该对应角色实力过高,您权限暂时不足,请更换人选。】“啊?那就手握日月摘星辰,世间无我这般人!”【对不起,没有该角色版权,请更换人选。】“啥
11.1万字1个月前
无敌御兽从黑帝开始 连载中
无敌御兽从黑帝开始
关山海
穿越到武道和御兽盛行的异界,陆飞宇发现自己竟然如此平平无奇。 直到有一天,在街上遇到一条和前世宠物小黑极为相似的流浪狗……
62.6万字1个月前
人生试炼副本 连载中
人生试炼副本
逆水游
“我觉得你想高考满分,考入帝都大学改变命运。” “我觉得你想跑快一点,因为这样才能逃命。” “我觉得你和那个有缘,所以你要收了她。” “我觉得你……” “反正不管你想不想,我觉得你想。” 某个毛球在副本隐藏空间内乐呵呵的替人着想。
12.4万字4周前