听书阁_书友最值得收藏的免费小说阅读网

第三十二章 長(zhǎng)夜漫漫-《這個(gè)吞金獸不好養(yǎng)》


    第(1/3)頁(yè)

    而這么長(zhǎng)的時(shí)間里面,葉新晨也是在解決上面這個(gè)bug的嘗試中,才發(fā)覺(jué)tcl這種語(yǔ)言先天不足。

    因?yàn)橐坏┏绦蜻壿嫃?fù)雜,它那變量無(wú)需聲明、變量無(wú)類(lèi)型等等對(duì)初學(xué)者來(lái)說(shuō)不可多得的“優(yōu)點(diǎn)”就成了致命缺陷。

    這會(huì)讓人不得不付出比c/c++之類(lèi)“正規(guī)語(yǔ)言”多得多的努力去跟蹤去區(qū)分?jǐn)?shù)據(jù)類(lèi)型。

    而且為了避免錯(cuò)誤,葉新晨也不得不把數(shù)據(jù)類(lèi)型也“打包”進(jìn)數(shù)據(jù),然后在程序入口寫(xiě)代碼分辨它——尤其是,這些數(shù)據(jù)類(lèi)型還是動(dòng)態(tài)的,是從輸入數(shù)據(jù)識(shí)別出來(lái)的;不結(jié)合輸入誰(shuí)都不知道某個(gè)數(shù)據(jù)在某個(gè)時(shí)刻會(huì)是什么。

    這使得代碼幾乎無(wú)法靜態(tài)分析;而測(cè)試用例很難覆蓋每一條執(zhí)行路線(xiàn)——不要忘了,這個(gè)程序“吃”進(jìn)去的數(shù)據(jù)是多變的,幾乎不可能列出所有情況。

    這使得葉新晨又產(chǎn)生了一個(gè)想法。那就是,要給它增加一些功能,把專(zhuān)業(yè)語(yǔ)言的core    dump、變量先聲明后使用等等功能搞出來(lái),使得出現(xiàn)類(lèi)似高危行為時(shí)可以得到提醒甚至直接對(duì)相關(guān)不良行為報(bào)錯(cuò)。

    當(dāng)然,葉新晨是沒(méi)有這么自覺(jué)的,只是葉新晨跟他們說(shuō)了,他們立刻就私發(fā)了一個(gè)六萬(wàn)的懸賞讓葉新晨幫忙!

    原本葉新晨是不愿意的,因?yàn)槟瞧咛煲呀?jīng)夠累的了,晚上都熬到凌晨三四點(diǎn),每天就睡三四個(gè)小時(shí),這讓葉新晨深刻的明白為什么程序員容易頭禿了。

    雖然葉新晨不愿意,但是奈何對(duì)面又把這個(gè)六萬(wàn)的懸賞又加了四萬(wàn)……

    嗯,葉新晨覺(jué)得這個(gè)功能也不是那么難,熬夜那就熬夜唄……

    所以葉新晨也是立刻就進(jìn)入狀態(tài)了,tcl號(hào)稱(chēng)一切都是字符串,這甚至可以把系統(tǒng)庫(kù)函數(shù)/運(yùn)算符/關(guān)鍵字都給rename掉,然后自己寫(xiě)一個(gè)替代品。

    這給了它的用戶(hù)極大的自由度。

    比如itcl就是用命名空間模擬的面向?qū)ο笳Z(yǔ)法——這種語(yǔ)言仍然是面向過(guò)程的;但你可以自己定義一個(gè)class關(guān)鍵字(實(shí)質(zhì)上是一個(gè)過(guò)程),把它變得和一個(gè)真正的面向?qū)ο笳Z(yǔ)言幾乎一模一樣。

    葉新晨首先盯上的是它的過(guò)程/函數(shù)聲明關(guān)鍵字proc。

    在這種語(yǔ)言里,你聲明一個(gè)函數(shù)fun,格式就是
    第(1/3)頁(yè)

主站蜘蛛池模板: 洛浦县| 黎城县| 洛扎县| 顺昌县| 蒙自县| 浙江省| 陵水| 辉南县| 临沧市| 民乐县| 永济市| 漳州市| 乡城县| 内乡县| 淮滨县| 宜州市| 湛江市| 阿勒泰市| 通榆县| 弥渡县| 句容市| 三原县| 淳化县| 苍溪县| 水城县| 沾益县| 屯留县| 林州市| 余庆县| 迭部县| 巴塘县| 白城市| 翁源县| 苗栗县| 灵璧县| 邢台市| 扎囊县| 长寿区| 长海县| 宁南县| 永川市|