发明名称 物件导向语言中有关物件、执行緖及参数传递的程式架构及方法
摘要 各种程式语言物件的架构有相当差异,简精而又有力的架构并不易获得。本发明提出在物件架构、执行绪、参数传递等程式语言架构的改进,主要包括下列架构及方法:l)语法上将物件定义分成类别(class)、建构器(constructor)、实例(instance)等三个部份;2)一个类别可有不同名称的建构器;3)限定物件变数及使用法读写的权限;4)物件定义区分成介面(interface)及实作(implementation),所有在介面宣告的变数及使用法都是公开的(public),只在实作中宣告的变数及使用法则是私密的(private);5)物件可附加讯息签名(message signature)以提供执行绪之间非同步的讯息传递及处理;6)对Ada参数传递方式作一调整,以'in'为预设的传递方式,'var'取代'in out',‘out'则照旧。
申请公布号 TW402708 申请公布日期 2000.08.21
申请号 TW087104955 申请日期 1998.03.31
申请人 吴培基 发明人 吴培基
分类号 G06F9/06 主分类号 G06F9/06
代理机构 代理人
主权项 /AIT{1.一种物件导向(object-oriented)语言中定义物件介面(jnterface)的语言架构及方法,语法上将物件介面的定义分成类别(class)、建构器(constructor)、实例(instance)等三个部份:}/ait{a.类别部份:包含数个类别变数(class variales)及类别使用法(class methods);}/ait{b.建构器部份:包含数个产生实例的建构器;}/ait{c.实例部份:包含数个实例变数(instance variables)及实例使用法(instancemethods)。}/AIT{2.如申请专利范围第1项之方法,其中物件介面的语法规则进一步定义如下:}/ait{a.物件介面的定义以'class'为起始关键字;}/ait{b.类别部份、建构器部份及实例部份三者,类别部份在前,建构器部份及实例部份的次序不限;}/ait{c.建构器部份或实例部份均可省略。}/AIT{3.如申请专利范围第1项之方法,其中提供多种建构器名称的方法如下:}/ait{a.建构器分成一般建构器及预设(default)建构器二种;}/ait{b.一般建构器的名称为语言中任何合法的识别字(identifier);}/ait{c.以一般建构器产生实例时,须提及该建构器的名称;}/ait{d.以预设建构器产生实例时,不须提及该建构器名称。}/AIT{4.如申请专利范围第3项之方法,其中进一步规定预设建构器在定义时,以一程式语言的关键字(例如'default')代表其名称。}/AIT{5.如申请专利范围第1项之方法,其物件介面中指定变数及使用法的读写权限的方法,由下列构成:}/ait{a.类别变数、实例变数的读写权限分成唯读(read-only)及可读写(read-write)二种;}/ait{b.类别使用法、实例使用法的读写权限分成纯函数(purelyfunctional)及副作用(side effect)二种。}/AIT{6.如申请专利范围第5项之方法,进一步定义如下:}/ait{a.类别变数、实例变数的预设读写权限为唯读;}/ait{b.类别使用法、实例使用法的预设读写权限为纯函数。}/AIT{7.如申请专利范围第5项之方法,其中可读写的变数及有副作用的使用法,在其宣告前加注符号'-'(负面,negative),唯读的变数及纯函数的使用法则不加注符号。}/AIT{8.如申请专利范围第1项之方法,其中将物件的定义另分成介面(interface)及实作(implementation)二个部份,方法如下:所有在介面宣告的变数、使用法及建构器都是公开的(Public);在实作中宣告的变数、使用法及建构器则是私密的(private)。}/AIT{9.如申请专利范围第8项之方法,进一步定义:在实作中重新定义继承自超类别(superclass)的使用法即表改写(override)该使用法。}/AIT{10.如申请专利范围第8项之方法,其中实作部份由下列构成:}/ait{a.定义公开的变数的初始値,且不须提供变数的型别;}/ait{b.定义公开的建构器及使用法的程式主体(body),函数的参数型别、返回型别(returntype)等只在函数超载(function overloading)时才提供,且不须提供函数参数的预设値;}/ait{c.定义私密的变数、建构器及使用法,包括型别、初始値或程式主体等。}/AIT{11.如申请专利范围第1项之方法,其中函数呼叫的参数传递方式的方法,参数传递方式分成唯读(rgad-only)、唯写(write-only)及可读写(read-write),可读写的参数加注'var',唯写的参数加注'out',唯读的参数为预设的传递方式,可加注或不加注符号'in'。}/AIT{12.如申请专利范围第1项之方法,其中物件自我(self)及超类别(super)以特殊符号表示:以'.',表sefl,'..'表super。}/AIT{13..如申请专利范围第1项之方法,其中物件介面可附加讯息签名(message signaturcs)以提供执行緖(thread)之间非同步的讯息传送(messagepassing)及处理的方法,由下列构成:}/ait{a.执行緖为一物件类别;}/ait{b.所有物件类别均可定义讯息签名;}/ait{c.所有物件类别均可处理其所在执行緖的讯息;}/ait{d.讯息传送可指定传送对象传送的对象必须是执行緖物件;}/ait{e.讯息接收不能指定接收对象,但接收者(receiver)可获知传送者(sender);}/ait{f.对传送者而言,讯息的参数是以唯读的('in')方式传递;对接收者而言,讯息的参数是以唯写的('out')方式传递;}/ait{g.接收及传递讯息的叙述中的讯息,必须符合物件定义的讯息签名,包括讯息名称及参数型别。}/AIT{14.如申请专利范围第13项之方法,其中讯息传送的语法类似一般呼叫执行緖物件的使用法,讯息接收的语法类似一返回传送者(一执行緖)的函数呼叫,返回値可加以利用或忽略。}
地址 新竹巿西大路四一六号