zoukankan      html  css  js  c++  java
  • When Colon Scripting is comming(JavaScript语法扩充)

    当冒号脚本来临——

                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


  • 相关阅读:
    运营商公网
    任务管理器 的 服务与进程
    QQ通信原理及QQ是怎么穿透内网进行通信的?
    windows Telnet 客户端常用命令介绍
    redis优化
    shell反射
    USB安装centos6系统(centos7需要换软件)
    rocketmq双主模式
    golang数据类型与转换
    golang介绍
  • 原文地址:https://www.cnblogs.com/qianwen36/p/3657425.html
Copyright © 2011-2022 走看看