Cache Object Script语言(转载)

   Cache Object Script语言(简称为COS)。它适于开发1.业务逻辑2.应用集成3.数据处理。COS将被编译成“对象代码”,并在Cache虚拟机内执行。“对象代码”具有字符串操作、数据访问等功能。
   在下面这些情况下使用COS:
1.在Cache Terminal中。
2.作为Cache对象类的方法中使用的语言。
3.创建Cache例程。
4.在Cache SQL中,作为存贮过程和触发器的编写语言。
5.在CSP中作为服务端脚本语言。
   COS的特性:
1.强大的字符串功能。
2.内在的支技对象技术,包括方法、属性、多态性。
3.大量控制应用流程的命令。
4.一套处理设备I/O的命令。
5.支持多维、稀疏数据组:local和Global。
   COS语言概要:
1.没有保留关键字,使用如“$”等字符区分内部命令和用户变量。
2.给变量付值用Set命令。
3.空格在COS也有一定意义:无前导空格的是标签符,命令必须有前导空格。
4.COS由一系列语句组成,每个语句都定义了某些程序功能。语句由命令和参数组成。
5.每个COS命令都有一个长名和一个短名,如“Write”和“W”同。
6.COS中在任何使用表达式的地方都可以使用函数,在对象中调用的函数称为方法。
7.函数一般由系统提供,用户可以自定义函数叫过程(Procedure)。
8.COS支持丰富的表达式。
9.变量是无类型的,可分为:局部变量,Globals变量,数组变量,系统变量,对象属性。
10.COS有多种操作符,如:“+”“-”等。
   COS语法:
1.用户自定义的内容在COS中是大小写敏感的,而系统内建的命令和函数是不敏感的。
2.与类相关的所有名称都是大小写敏感的。但却不能只用大小写来区别类名!
3.调用命令和函数:Write x
4.空格必须出现在一行代码的最前面;命令和参数之间必须有空格;一行可以写多个命令,命令之间一定要有空格;命令与注释间必须有空格。
5.注释用“//”和“;”或“/*”“*/”。
6.编译器编译时会去除注释,用$Text可以保留注释。
7.COS只能认识数字和字符两种字面形式。
8.特殊标识:前导“^”指示为Global名称;前导“%”的标只是“一直可见的”或系统变量,例程名称也可用“%”前导。
9.标签名必须字母开头,最多31字符长度,一行代码只能有一个标签,标签也大小写敏感。
10.虽然COS没有保留关键字,但由于COS支持内嵌SQL语句,所以使用名称时小心于SQL保留字冲突。
    数据类型和值:
1.COS变量没有类型,每个变量都可以是字符,数字或对象值。
2.COS字符串中双引号“"”可以嵌套使用。
3.“_”可以联接字符串。
4.数字可包括0-9和“.”,可以使用前导或后继“0”,不可以用“,”或贷币符号。“E”或“e”必须直接与数字相联,长度大于19位或指数大于130的数字将成为未知数。
5.值为对象值的变量参引到一个内存中的对象。可以用$IsObejct来测试是否对象变量。但不能将Global付给对象变量。一个对象付给一个变量后,其参引数自动加一。
6.一个Global数组变量与其它数组一样,只是有前导“^”,它可以存贮在数据库中。
7.COS中变量不用定义,只需直接使用,可用$Data和$Get函数判断其是否已定义。注:$Get可以返回默认值,但不会设置变量值。
8.在逻辑操作中,字面会转化为0(false)或1(ture),表示布尔值。
9.COS没有日期数据类型,它提供一系日期函数用来操作或把日期显示为特定的字符值。$Horolog、$ZDateTime、$ZH提供了三种日期格式。
   COS中的变量:
1.局部变量,在单个程过程(Procedure block)块中有效。
2.全局变量,在一个例程中有效,除非进入了一个Procedure block。
3.Globals变量,可以自动存贮在数据库中的变量,Global变量可以和一般的变量同样使用。
4.数组变量,可以有一个或多个下标。数据变量可以局部的、全局的或Global。
5.系统变量,系统变量以“$”为前导,提供一些系信息。大部分系统变量是只读的,但$IO是可读写的。
6.对象属性,严格来说,对象属性不是一个变量,但可以和变量一样使用。
7.虽然COS变量无类型,但内部还是对不同的值类型进行自动转换的。
8.对象值对是一个内存对象的引用,这个值不能用来从数据库读取对象!内容对消失时,自动取消变量的引用。
9.全局变量使用%前导,但在程序块以外定义的变量也是全局变量。
   操作符与表达式:
1.COS包含很多操作符,比较特殊的有“[”包含,“]”跟随,“]]”之后排序,“@”间接引用,“?”模式匹配。
2.操作符的顺序可以用括号来改变。
3.表达式可以是数学表达式,字符串表达式,逻辑表达式,对象表达式。
4.逻辑表达式用于:逻辑操作,数字关系操作,字符关系操作,它一般于IF、$Select和条件表达式一起使用。
5.数字操作有:正负+-,加减+-,乘除*/,幂运算**,整除\\,取模#。
6.逻辑操作有:二进制与&、&&,非与\'&,或!、||,非或\'!,非\'。
7.字符操作有:联接“_”。
8.数字关系操作:小于<,大于>,大于等于\'<,小于等于\'>。
9.字符关系操作:相同=,不相同\'=,包括[,不包括\'[,跟随](以ASCII顺序),不跟随\'],之后排序]],非之后排序\']]。
10.模式匹配:?,A表示大小写字母,C表示33个ASCII控制字符,E表示255个ASCII,L表示26个小写字母,N表示10个数据字符,P表示33个ASCII标点字符,U表示26个大写字符。
11.模式中,指定出现次数用n.n形式;用数字加模式符组合多重模式;还有组合模式;模糊模式。
12.可以使用多个模式“或”;模式嵌套;有多种解释方法的,只要有一种就是真。
13.间接引用@,Cache认识5种类型:名称、模式、参数、下标、$TEXT参数。

原文地址:https://www.cnblogs.com/luowei/p/1160250.html