当冒号脚本来临——
JavaScript语法扩充
连续好几夜的不能安眠,得出结论就是,未来语言未来的编译器应该是支持语法定制规则和语法扩展的,这样使得编程语言不断进化以更利于人类使用!of course,冒号的想法源自于json表达形式。上篇文章初步表达了JavaScript扩展初步形式。即冒号声明指派,lambda;
补充:对象组织形式
冒号指派除了json对象形式的兼容;如果我们想,数据组织以json表达,逗号分隔是json形式组织对象众属性。
现在完全冒号语言组织对象形式。示例:
// 以分号组织对象表达式 object: { // property name:"obj1"; no:1; properties:// json对象形式 { prop1:name, prop2:no }; // method func2 function func2() { return name; } }; // so here call its method result: object.func2();
当然json组织数据最好与脚本分离开来,用来描述软配置等数据存储文件最好。
那么脚本主要应该用来处理数据和生成其他所需要输入的。
语言模式,与其他语言体系交互的接口
像C/C++等静态类型语言,各模块并行协作同步开发,都需要以一份接口文档的协调,像.h。试想一份.h无非是为了描述接口以所需要的数据组织结构,因此就是一些结构声明,一些类型表达,和操作这些类型数据的function调用约定声明。
of course任何程序的开发,任务足够庞大总是需要多人协作开发的,或者说需要一定形式预先组织的。因为脚本是而也应该有这样一种类型描述系统,描述类型产生类型这些无法是一套模式表达。像静态语言中这是系统必需要的。那么脚本语言由于自由度够松散,操作起来方便所以一般也就没有这一环节工作,除非是生产一个完整功能的库,将推广给众多人使用,这时候当然是需要生成相应的使用说明文档。既然都是必须文档,那么我们可否寻求同样的形式化表达来表述?
表达属性为何类型对象
此处我们依旧需要借冒号表达其义;其实我们就直接采用pascal声明变量的形式;
形式 name:typename;
组织一类对象的表达式
组织一类对象其实就是定义新的类型名字;
C/C++中是有关键声明的。我们就免了,区分于属性指派及脚本名字指派。我们就不加冒号以形容,这也是最直接最接近C/C++结构的。
下以示例说明:
// 对象模式表达 // 以下描述一类对象的结构组织 Object // Object schema { // propname: typename property: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 clear function 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