technical reports (re)

Dear Coleagues,

I would like to announce the description of a new database specification 
language, which is available both electronically and in hard copy and 
should be of interest to the data type community.


The database specification language Ruslan is designed for writing 
specifications of databases of various models and application programs 
manipulating them. The language is based on the concept of an 
entity-structured specification, which is a collection of specifications 
of data types, kinds, type and kind classes, and detached operations and 
is a special case of a many-sorted algebraic specification. This 
technique permits the specification of both object-dependent and  generic
(polymorphic)  data types. 

The language definition is distributed over two documents. The first 
one (Preprint 28) gives an algebraic background for entity-structured 
specifications and introduces syntactic constructions of the language.
Two sorts of entities are distinguished, data types, and type kinds. A 
data type is a tool for constructing data units represented in programs 
by data terms and a kind is a tool for constructing type units 
represented in programs by type terms. The language of type terms 
is intermixed with the language of data terms. When a data term is used 
for constructing a type term, an object-dependent type term is created. 
Type terms are mapped into type specifications. Depending on the kind of 
a type term, a concrete, generic, or object-dependent type is specified in 
this way. Both types and kinds can belong to definite type or kind classes. 

The second document (Preprint 29) mainly contains a specification of an 
imperative database programming language. The following concrete data 
types are specified: Boolean, Natural, Integer, Decimal, Character, and 
Memory. The following kinds and related data types are specified: VARTYPE 
(variable types), CONSTYPE (constant types), SEQTYPE (sequence types), 
ARRTYPE (array types), ENUTYPE (enumeration types), RANTYPE (range 
types), RECTYPE (record types), UNITYPE (union types), ROUTYPE (routine 
types), SUBTYPE (predicate subtypes), FILETYPE (Pascal file types), 
RELTYPE (relation types). A kind class introducing operations for checking 
type equivalence and type approximation and some popular type 
classes are also specified.

To obtain a hard copy, please send e-mail to Natalia Cheremnych:
cher@isi.itfs.nsk.su with the indication of your post address.

To obtain a compressed postscript file by anonymous ftp, proceed as follows:

ftp math.tulane.edu
name: anonymous
password: <your email address>
cd pub/zamulin
get Ruslan1.ps.Z
get Ruslan2.ps.Z

All inquiries, comments, and suggestions should be sent to the address 
indicated below.

Thank you,

Alexandre Zamulin

Alexandre Zamulin                              e-mail: zam@cs.usm.my
Computer Science Section
School of Mathematics and Computer Science     fax, phone:+60 4 6573335
University Sains Malaysia
11800 Penang, Malaysia