手机浏览器扫描二维码访问
而这么长的时间里面,叶新晨也是在解决上面这个BUG的尝试中,才发觉TCL这种语言先天不足。
因为一旦程序逻辑复杂,它那变量无需声明、变量无类型等等对初学者来说不可多得的“优点”
就成了致命缺陷。
这会让人不得不付出比CC++之类“正规语言”
多得多的努力去跟踪去区分数据类型。
而且为了避免错误,叶新晨也不得不把数据类型也“打包”
进数据,然后在程序入口写代码分辨它——尤其是,这些数据类型还是动态的,是从输入数据识别出来的;不结合输入谁都不知道某个数据在某个时刻会是什么。
这使得代码几乎无法静态分析;而测试用例很难覆盖每一条执行路线——不要忘了,这个程序“吃”
进去的数据是多变的,几乎不可能列出所有情况。
这使得叶新晨又产生了一个想法。
那就是,要给它增加一些功能,把专业语言的coredump、变量先声明后使用等等功能搞出来,使得出现类似高危行为时可以得到提醒甚至直接对相关不良行为报错。
当然,叶新晨是没有这么自觉的,只是叶新晨跟他们说了,他们立刻就私发了一个六万的悬赏让叶新晨帮忙!
原本叶新晨是不愿意的,因为那七天已经够累的了,晚上都熬到凌晨三四点,每天就睡三四个小时,这让叶新晨深刻的明白为什么程序员容易头秃了。
虽然叶新晨不愿意,但是奈何对面又把这个六万的悬赏又加了四万……
嗯,叶新晨觉得这个功能也不是那么难,熬夜那就熬夜呗……
所以叶新晨也是立刻就进入状态了,TCL号称一切都是字符串,这甚至可以把系统库函数运算符关键字都给rename掉,然后自己写一个替代品。
这给了它的用户极大的自由度。
比如iTCL就是用命名空间模拟的面向对象语法——这种语言仍然是面向过程的;但你可以自己定义一个class关键字(实质上是一个过程),把它变得和一个真正的面向对象语言几乎一模一样。
叶新晨首先盯上的是它的过程函数声明关键字proc。
在这种语言里,你声明一个函数fun,格式就是
procfun(arg){
#body
}
它看似一个关键字;但TCL里一切都是字符串,因此这个proc实质上是个函数,它接受函数名、参数列表、函数体三个参数……
叶新晨也是把系统的proc改名叫_sys_proc,自己写了个proc;这样当用户声明一个函数过程时,他的声明将以字符串格式先传给他。
这样子的话叶新晨就可以做一些修改,把一些逻辑插进用户编写的代码中,然后再把修改后的代码传给_sys_proc。
通过这种方式,叶新晨就接管了TCL的一切;然后修改了它的异常返回流程,识别出“用户未捕捉的异常”
某玩家你在这里挖坑干什么?破坏环境!某猎人坑BOSS!某玩家怒别当我小白啊,我可是高高手,这里的BOSS会飞!某猎人我的陷阱也会飞!这是一个脑洞猎人在游戏里愉快坑杀玩家BOSS的冒险故事。...
六年前,他惨遭陷害,家破人亡。六年后,他王者归来,天威浩荡。为挚爱,他十步杀一人。为亲人,他一手遮九天。...
南朝刘宋末年,皇帝驾崩。四皇子刘松作为史上最荒淫的皇帝,杀兄夺位,淫嫂杀侄,乱伦姐姐姑母,大肆削藩,荒芜朝政齐国公萧绍之子萧瑾言,崭露头角,临危受命,扶保猪王刘熜承继大统。刘熜,经历非人虐待之后残暴异常,疑神疑鬼且看乱世英雄萧瑾言如何推翻暴政,建立大齐!...
那个时代,宋朝有着美国的综合国力,军费开支堪比德国法西斯,军队战斗力只是意大利水准,百姓过着阿富汗一般的苦逼生活。穿越到了宋朝,成为了大宋皇子,可惜没有红袖添香,没有扬州瘦马,有的只是金军已杀来了,这还让不让人活了。既然不让我好过,我就跟你拼命。于是一代宋皇崛起了。金兀术叹息道仪王如猛虎,使我女真难安息!士大夫说昏君,竟然要改制,竟敢篡改祖训!岳飞道官家性情刚烈,堪比太祖,我朝中兴有望!秦桧颤声道靖武皇残暴堪比始皇,大宋势如危卵!赵朴淡淡道我死后,管他洪水滔天!...
听说,北齐摄政王慕南萧重伤落难小树林,被一女强盗给强了!强了某人的秦九凰,emm江湖救急,大不了本姑娘负责就是!听说,慕南萧伤了身体从此再不敢碰女人了!咬了他的秦九凰幸好本姑娘一针在手天下我有,来,躺好,我给你多扎几针!听说,慕南萧弃疗决定娶一带两孩子的寡妇喜当爹了。寡妇看来得补个证了!慕南萧登基冲冠一怒,众八卦吓得涕泪四流,皇上饶命啊,草民再也不敢编排皇后娘娘了!心里却盘算着,原来我家皇上好这口,看来以后要多培养几个女汉子送进宫了!然,当天晚上他们皇上就把后宫一把火烧了,然后和皇后娘娘约在了当年的小树林...
回到十年前,在思想尚未开放,信息尚未发达的小城市,方洛要做的就是狠狠地拥抱狗娘养的青春,偷偷牵曾经爱慕的女孩的手,奔向未来。...