當冒號指令碼來臨——
JavaScript文法擴充
連續好幾夜的不能安眠,得出結論就是,未來語言未來的編譯器應該是支援文法定製規則和文法擴充的,這樣使得程式設計語言不斷進化以更利於人類使用!of course,冒號的想法源自於json表達形式。上篇文章初步表達了JavaScript擴充初步形式。即冒號聲明指派,lambda;
補充:對象組織形式
冒號指派除了json對象形式的相容;如果我們想,資料群組織以json表達,逗號分隔是json形式組織對象眾屬性。
現在完全冒號語言群組織對象形式。樣本:
// 以分號組織對象運算式object:{// propertyname:"obj1";no:1;properties:// json對象形式{prop1:name,prop2:no};// method func2function func2(){return name;}};// so here call its methodresult: object.func2();
當然json組織資料最好與指令碼分離開來,用來描述軟配置等資料存放區檔案最好。
那麼指令碼主要應該用來處理資料和產生其他所需要輸入的。
語言模式,與其他語言體系互動的介面
像C/C++等靜態類型語言,各模組並行協作同步開發,都需要以一份介面文檔的協調,像.h。試想一份.h無非是為了描述介面以所需要的資料群組織結構,因此就是一些結構聲明,一些類型表達,和操作這些類型資料的function呼叫慣例聲明。
of course任何程式的開發,任務足夠龐大總是需要多人協作開發的,或者說需要一定形式預先組織的。因為指令碼是而也應該有這樣一種類型描述系統,描述類型產生類型這些無法是一套模式表達。像靜態語言中這是系統必需要的。那麼指令碼語言由於自由度夠鬆散,操作起來方便所以一般也就沒有這一環節工作,除非是生產一個完整功能的庫,將推廣給眾多人使用,這時候當然是需要產生相應的使用說明文檔。既然都是必須文檔,那麼我們可否尋求同樣的形式化表達來表述?
表達屬性為何類型對象
此處我們依舊需要借冒號表達其義;其實我們就直接採用pascal聲明變數的形式;
形式 name:typename;
組織一類對象的運算式
組織一類對象其實就是定義新的類型名字;
C/C++中是有關鍵聲明的。我們就免了,區分於屬性指派及指令碼名字指派。我們就不加冒號以形容,這也是最直接最接近C/C++結構的。
下以樣本說明:
// 對象模式表達// 以下描述一類對象的結構組織Object // Object schema{// propname: typenameproperty:int;name: string;// hehe, declare a method// it like a C++11 form//method: function(int,string)->int;//method2:function()->Object;//return the Object// following like the pascal,right! it's clearfunction method(arg:int, arg2:string):int;function method2():Object;// declare a methodx can attach a lambda processor,// and its no return object;function methodx(arg:Object,lambda);};// Object defined over