ASN.1/PL. ASN.1 Type Definition Module. Source Code. ASN.1 Database System

Size: px
Start display at page:

Download "ASN.1/PL. ASN.1 Type Definition Module. Source Code. ASN.1 Database System"

Transcription

1 A Database System Based on ASN.1: Its System Architecture and Database Programming Language 3 Kaname HARUMOTO y Masahiko TSUKAMOTO z Shojiro NISHIO y y Department of Information Systems Engineering z Information Technology Research Laboratories Faculty of Engineering, Osaka University SHARP Corporation 2-1 Yamadaoka, Suita 565, Japan Ichinomoto, Tenri 632, Japan fharumoto,nishiog@ise.eng.osaka-u.ac.jp tuka@shpcsl.sharp.co.jp Abstract This paper proposes a database system based on ASN.1 (Abstract Syntax Notation One). Aiming at excluding the ambiguity of data representation in the heterogeneous computer environments, ASN.1 notation as well as its encoding rules is used in many advanced applications including those in communication networks. As the amount of data described by ASN.1 becomes very large, it is eagerly required to store and reuse data with ASN.1 types. However, the type denition capability of ASN.1 is too strong for the conventional database systems to represent straightforwardly the data specied by ASN.1, which makes it dicult to store and handle data described by ASN.1 directly. In this paper, we describe the system architecture and its database programming language of the ASN.1 database system, which we have designed and implemented to resolve the above diculty. 1 Introduction ASN.1 (Abstract Syntax Notation One) is the general term for two international standards specied by ISO (International Organization for Standardization), that is, the ASN.1 notation[1] and the encoding rules for ASN.1[2]. The ASN.1 notation is used for dening complex data structures exchanged in the environment of heterogeneous computer systems, and the encoding rules for ASN.1 specify how to represent data structures exchanged by application entities of the OSI 3 This researchwas supported in part by the Ohkawa Institute of Information and Telecommunication. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ADTI copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of ADTI Organizing Committee. To copy otherwise, or to republish, requires a fee and/or special permission. International Symposium on Advanced Database Technologies and Their Integration (ADTI'94) Nara, Japan, October 1994 (Open Systems Interconnection) basic reference model so that any computer system can translate the representation of the data structures without ambiguity into their own internal representation. Hence, ASN.1 can be considered as the data structure denition language, and was designed to have enough capability to describe data structures of all sorts of applications. As a result, it is used not only in OSI applications but also in a wide variety of application areas. Among suchapplications are: OSI applications such as MHS (Message Handling System), Directory, FTAM (File Transfer, Access and Management), and ODA (Open Document Architecture), OSI lower layer protocols, especially for their managed objects, such as IS-IS (Intermediate SystemtoIntermediate System Intra-Domain Routeing Information Exchange Protocol) and IDRP (Inter-Domain Routeing Protocol), TCP/IP applications such as SNMP (Simple Network Management Protocol), multimedia applications such as those using the MHEG (Multimedia and Hypermedia coding Expert Group) standard[10], and genome databases (see, e.g., [4]). As the application areas of ASN.1 have become remarkably large, there is a growing demand for storing ASN.1 data in the secondary storage for sharing and reusing these data sources. For example, MHS requires storages for exchanged messages, and DIB (Directory Information Base) stores information oered by DSA (Directory Service Agent) in the OSI Directory system. In implementing such data storage, if we employ directly one of the conventional database management

2 systems (DBMSs), general purpose programming languages such as C language are usually used together. However, in a practical sense, several deciencies are there in developing applications as described in the following: 1. Application software developers have to transform agiven ASN.1 type denition into a schema denition in the employed database[5]. Although a high performance implementation technique for Directory systems is shown in [8], such transformation process diers in each application software for improving its performance. Therefore, the transformation technique developed for an application cannot be generally reused for other applications. 2. If a general purpose programming language is used to implement the applications based on ASN.1, it is required to transform ASN.1 type denitions into data structure descriptions peculiar to the language. For this requirement, ASN.1 compilers, such as snacc[11] and APRICOT [7], which automatically transform data structures, are widely used in developing the applications of OSI communication software. However, the transformed denitions of the data structures usually become more complex than the original ASN.1 type denitions, thereby the application programmers have to grasp those complex structures while describing program codes. This decreases the ef- ciency of development of application programs. 3. We are involved in one of the most serious problems in database programming languages; an impedance mismatch between database query languages and application description languages regarding their description capabilities. The mismatch is principally due to the fact that the former is designed considering set-oriented operations, while the latter is designed for operations executed on singleton objects. Therefore, this mismatch makes it dicult to perform typechecking beforehand, and consequently run-time errors of applications frequently occur, which makes the application programs unreliable. In this paper, we discuss the architecture of a new database system called the ASN.1 database system, in which the data with the structures dened by ASN.1 are stored. We also propose a database programming language which directly handles ASN.1 data in the database. This ASN.1 database system resolves the above problems in the following ways: In the ASN.1 database system, data type denitions described by ASN.1 are directly used as the database schema denitions. Therefore, application programmers are not involved in the problem of transformation from ASN.1 type denitions to another form of database schema denitions. Our proposing database programming language can handle directly any data of arbitrary ASN.1 types. Using this language, in addition to the computation executed by usual programming languages, complicated operations including database operations or data transfer operations can be easily specied. Because the type system in the environment for developing applications is unied to ASN.1, the impedance mismatch problem is resolved. Therefore, strict type checking can be done at the time of compilation of application programs, and we can mostly avoid the errors during the execution of applications. In the following, we outline the ASN.1 standards in section 2, and then discuss the architecture of our proposing ASN.1 database system in section 3. In section 4, we describe a database programming language for our system. Our current implementation of the ASN.1 database system is shown in section 5. Finally, we summarize this paper in section 6. 2 Outline of ASN.1 ASN.1 is a data structure description language[1] with its basic encoding rules (BER)[2] standardized byiso. ASN.1 is originally designed for absorbing the dierence of data representations in heterogeneous computer environments and has been used to dene data structures of application protocol data units (APDUs) exchanged among OSI application entities. The notation of data structures dened by employing ASN.1 is called abstract syntax. BER is used as a transfer syntax for encoding ASN.1 data structures into the corresponding bit stream for transmission. Because encoded bit streams do not depend on a specic computer architecture or a specic programming language, their receivers can decode them into their own internal representations for data without ambiguity. A set of ASN.1 type denitions which are relevant to a specic application protocol is called a type denition module or simply a module. Using built-in types oered by ASN.1, types of data exchanged between applications are dened in a module. The built-in types of ASN.1 are divided into two categories; simple types and structured types. Simple types are used as primitive types in constructing more complex types, which include the following types. BOOLEAN: The values of this type are TRUE or FALSE.

3 INTEGER: The values of this type are arbitrary integers. REAL: The values of this type are arbitrary real numbers. ENUMERATED: The values of this type are symbolic constants associated with distinct integers. BIT STRING: The values of this type are arbitrarily long strings of bits. OCTET STRING: The values of this type are arbitrarily long strings of octets. OBJECT IDENTIFIER: The values of this type are sequences of integers. Each value of this type identies a certain object in the world. Structured types are constructed by using type constructors which combine simple or user-dened types. Data types with more complex structures can be de- ned by using these type constructors repeatedly. Type constructors include the following ones: SEQUENCE: Eachvalue of this type is an ordered sequence of values, one from each of the specied types. SET: Each value of this type is an unordered set of values, one from each of the specied types. SEQUENCE OF: Each value of this type is an ordered sequence of zero, one or more values of the specied type. SET OF: Each value of this type is an unordered set of zero, one or more values of the specied type. CHOICE: Each value of this type is a value of the type which is chosen from the specied types. Further, ASN.1 provides the almightytype \ANY," each of whose values belongs to an arbitrary ASN.1 type. ANY and CHOICE are often called meta types, because values of them do not have a certain xed type. Thus, using these meta types, heterogeneous data structures can be expressed in a single type. Meta types are one of the most prominent features of ASN.1 as compared with the conventional programming languages such as C and Pascal where such types cannot be represented straightforwardly. Figure 1 shows an example of a module denition, which generally denes data structures of the information on a person. The type Person is a SEQUENCE type whose elds are named name, age, sex, and belongto, respectively. The type VisibleString is PersonalRecords DEFINITIONS ::= BEGIN Person ::= SEQUENCE { name VisibleString, age INTEGER, sex ENUMERATED { male(0), female(1) }, belongto BelongTo } BelongTo ::= CHOICE { univ [0] University, comp [1] Company } University ::= SEQUENCE { name VisibleString, faculty VisibleString, department VisibleString } Company ::= SEQUENCE { name VisibleString, department VisibleString } Figure 1: An example of ASN.1 module. a built-in character string type of ASN.1. Note that the eld belongto has the type BelongTo, which is also dened as a CHOICE type in the module, whose actual type is either University or Company both of which are also dened in the module. 3 Architecture of ASN.1 Database System In the conventional declarative query languages such as SQL, it is easy to describe database operations because they do not require users to specify how toaccess the database, while their computation power is not sucient to specify other modules of application programs, such as user interface modules. Therefore, the current practice in database programming is to use a query language embedded in a host language which has enough computation power. If database programs for ASN.1 applications are described in this way, then there are several problems in developing these applications given as follows: There are three dierent data formats in the program: the external format on wire (i.e., encoded bit streams), the internal format used by the host language, and the format in the database system. This enforces application programmers to manage the conversions among these formats in the program. We cannot avoid an impedance mismatch between the host language and the query language in which database operations are described. This is due to

4 ASN.1 Type Definition Module schema ASN.1 Database System ASN.1/PL Source Code application 4 ASN.1 Database Programming Language In this section, we discuss our proposing database programming language ASN.1/PL for the ASN.1 database system mainly concerning its design issues, syntax, and type checking facility. 4.1 Design Issues of ASN.1/PL Figure 2: Architecture of ASN.1 database system. the fact that a type available in the host language is not always compatible with a certain type available in the database system. Thus, an access to the database should be described by query processing function calls with a query expression as an argument, or simply by embedding query expressions in the host language. In both cases, application programmers are required to be familiar with both query and host languages. Moreover, since the type checking mechanisms of a compiler of the host language will not work enough on such query expressions, most of potential syntax errors in a query expression cannot be found at the time of compilation. Even if there are no syntax errors, it is very hard to determine which type should be coerced to each query result. These errors may reveal themselves during the run-time of the application, which reduce the eciency of the development and the reliability of the application programs. These problems originate in the fact that dierent type systems are there in an application development environment. Aiming at resolving such deciency, we designed the ASN.1 database system based on the principle that the type system in the environment for developing ASN.1 applications should be uni- ed to ASN.1. The architecture of the system is illustrated in Figure 2. The ASN.1 database system handles ASN.1 type denition modules as its schema denitions, and processes source codes written in ASN.1/PL as application programs, where ASN.1/PL is a database programming language explained more precisely in the next section. Because the language ASN.1/PL directly handles the type system of ASN.1, the problems described above are resolved, and we can improve the eciency of application developments as well as the reliability of developed applications. As was described in the previous section, ASN.1/PL directly handles the ASN.1's type system, whichmakes programmers possible to write codes on the level of abstract syntax. Therefore, they are not required to care about how the data structures are represented internally or externally. Once the type system of the application development environment is unied, strict type checking can be done at the time of compilation of application programs. However, the type system of ASN.1 has its own peculiar property, i.e., meta types. This makes it dicult to check types in a straightforward way. Fortunately, Machiavelli[3, 9], which is the database programming language derived from language ML[6], can handle the type system including types which have compatible expressiveness with the meta types of ASN.1. Therefore we employmachiavelli's type checking algorithms so that we can check types of ASN.1/PL programs strictly. On the other hand, polymorphic languages such as Machiavelli are considered to be very useful for database programming[9], especially when data handled by applications have complex structures. As ASN.1 types usually have complicated nested structures in their practical applications, the notion of polymorphism is considered to be convenient in developing complex applications using ASN.1. Therefore, we introduce the notion of polymorphism into the language design of ASN.1/PL. 4.2 Syntax of ASN.1/PL To check types strictly, ASN.1/PL has been designed as a functional language and most of syntactical features are based on Machiavelli. In the following subsections, we describe the syntax of ASN.1/PL Types Built-in types of ASN.1 and the types dened in ASN.1 type denition modules are handled by ASN.1/PL as full-edged types. Furthermore, programmers can also dene new types in ASN.1/PL programs. Types are described by using their type names.

5 4.2.2 Values Any value handled by ASN.1/PL should belong to a certain ASN.1 type. Values are described in the ASN.1 value notations Variables In ASN.1/PL, a variable is used as a reference to a certain value, and belongs to the type of the value. Variables must be declared before their use in the following syntax: val var name [: type] =expression The variable expressed by var name of the type type is initialized to the value obtained by evaluating expression. Because the type can be inferred from the expression on the right side of the declaration, the type specication can be omitted. Avalue referred byavariable can be updated in the following update expression: var name := expression When this update expression is evaluated, a value which is referred to by the variable var name is updated to an evaluated value of the expression. If a value to which the variable refers is stored in the database, the update of the variable implies the update of the value in the database, which will generate a relevant transaction processing. Atype name of ASN.1, which appears in the place where an expression is expected to be described other than a type specication, is regarded as a predened variable which refers to the extent ofthistype Functions In ASN.1/PL, a program consists of declarations of functions, where a function declaration is described in the following syntax: fun fun name ([arg1 [: type1],...]) [: type] = expression This expression denes the function expressed by fun name with arguments arg1,..., whose evaluation is dened by expression. Here, arg1 represents a temporary argument of declaring function, type1 represents its type specication, and type represents the type specication of the result value. Note that type specications on temporary arguments and the return value can be omitted if they can be inferred from an expression of the body of the function. In this way, it is possible to declare polymorphic functions. For example, consider the function nameof declared as follows. fun nameof(x) = x.name This function is applicable to an argument whose type is among types SEQUENCE, SET, and CHOICE, each of which includes a name eld. Also, the type of its return value can vary according to the type of the name eld. An application of a function is described in the following syntax: fun name ([expression,...]) An evaluation of this statement invokes the function fun name accompanied with the arguments which are obtained by evaluating the subsequent expressions Expressions Values, variables, and function applications are expressions. In addition, the following computations can be described as expressions. (a) Operators. The operator \=", which evaluates the equivalence of values of two expressions, can be applied to the values of any type. Simple types of ASN.1 have their fundamental operators such as those for comparison, arithmetic, etc. For SE- QUENCE OF type and SET OF type, whose values respectively represent a list and a set, the operator \in" is prepared for evaluating if a speci- ed value is included in the list or the set. As the peculiar operator for CHOICE type, \isa" is prepared for evaluating if a specied type is chosen. (b) Field selections. Field selections on nested structures which are constructed by using SE- QUENCE, SET, and CHOICE are described by the following dot notation: expression. eld name This expression indicates a selection of a eld expressed by eld name from the value evaluated by expression which belongs to a type constructed by using one of the constructors SEQUENCE, SET, and CHOICE. (c) Conditional expressions. There are two types of conditional expressions, i.e., if expression and case expression. The syntax of if expression is given as follows: if expression then expression1 else expression2 An evaluation of this expression invokes the evaluation of expression1 if expression is evaluated to be TRUE; otherwise, invokes the evaluation of expression2. Note that expression1 and expression2 must be evaluated to have the same type. The syntax of case expression is given as follows:

6 case expression of [rel op1 ] expression1 => expression2, [rel op2 ] expression3 => expression4,... else => expression0 end The specications of rel op1, rel op2,... indicate relative operators including in and isa. If such a specication as rel op1, rel op2,... is omitted, then it is assumed that the operator \=" isspeci- ed in the corresponding place. Note that expression2, expression4,..., and expression0 must be evaluated to have the same type. This expression is indeed the abbreviation of the following expression: if expression rel op1 expression1 then expression2 else if expression rel op2 expression3 then expression4 else if... else expression0 (d) Iterative expressions. of iterative expressions: foreach expression. There are two types while expression and The syntax of while expression is given as follows: while expression1 do expression2 This expression indicates the repeated evaluation of expression2 while expression1 is evaluated to be TRUE. The syntax of foreach expression is given as follows: foreach (l var, expression1 ) expression2 This expression indicates to evaluate the expression2 repeatedly by making the loop variable l var refer one by one to an elementofexpression1 with SEQUENCE OF type or SET OF type. (e) Structured query expressions. ASN.1/PL adopts structured query expressions not as embedded ones but as full-edged ones, i.e., they are included in the syntax of ASN.1/PL. The syntax is given as follows: select expression1 [,...] from var name <- expression2 [,...] where expression3 Each of expressions in the from clause such as expression2 represents a target value of the query whose type is either SEQUENCE OF type or SET OF type, and var name indicates a temporary variable which refers one by one to an element of the target value. A condition for selecting elements out of target values is represented by expression3 in the where clause. Expressions in the select clause indicate a list of desired values. Note that in the select clause, any expression including function applications can be written. This feature comes from the adoption of structured query expressions as a part of the syntax of ASN.1/PL. This expression is evaluated to be a value of type SET OF. The type equals to the type of expression1 if the select clause has only one expression; otherwise, is SEQUENCE such that the nth eld has the type of the nth expression of expressions listed in the select clause Built-in Functions ASN.1/PL provides several types of built-in functions, including those for (1) communication such as send, receive, asn1 encode, and asn1 decode, (2) interaction with users such as input line and output, (3) duplicating values such as copy, and (4) converting the lifetime of values such as persistent copy and transient copy. 4.3 Example of ASN.1/PL Program An example program of ASN.1/PL is shown in Figure 3. This program is to retrieve data from the database, assuming that data on persons with ASN.1 types given in Figure 1 have already been stored. According to a command input by a user, it works as follows: If the command is list, then it lists up the names of all persons in the database. If the command is univ or comp, then it lists up the names of persons in the database each of whom belongs respectively to a university or a company. If the command is quit, then it quits the program execution. Otherwise, it prints all information about persons whose names are equal to the name given as the command. 4.4 Type inference mechanisms in ASN.1/PL To check strictly the types of the programs written in ASN.1/PL, the compiler employs the type inference algorithms which are originally provided in Machiavelli[3, 9]. Machiavelli is a polymorphic language which extends type inference algorithms of ML

7 fun nameof(x) = x.name; fun univpersons() = select x from x <- Person where x.belongto isa University; fun comppersons() = select x from x <- Person where x.belongto isa Company; fun whois(name) = select x from x <- Person where nameof(x) = name; fun main() = { val command = input_line(std_in); while not command = "quit" do { case command of "list" => foreach(p, Person) output(nameof(p)), "univ" => foreach(p, univpersons()) output(nameof(p)), "comp" => foreach(p, comppersons()) output(nameof(p)), else => foreach(p, whois(command)) output(p) end; command := input_line(std_in); } } Figure 3: An example of ASN.1/PL program. to make it appropriate for the database programming, especially with respect to eld selection. ASN.1 types are mapped into Machiavelli types in the following way: simple types : simple types SEQUENCE, SET : the record type SEQUENCE OF, SET OF : the set type CHIOCE : the selection type ANY : the dynamic type Further, we can easily nd the corresponding expression of Machiavelli to any ASN.1/PL expression which is possibly constructed by using variables, functions, eld selections, structured queries, and so on. Thus, we can make use of Machiavelli type inference algorithms for ASN.1/PL type inference mechanisms. By using these type inference algorithms, the types of all expressions and functions in a program are inferred. For example, the types of the argument and the return value of the function nameof in Figure 3 can be inferred from its body. That is, the typeofitsargument x is one of Person, University, and Company, and the type of the returned value is VisibleString. The type checking can be performed using such inferred type information. 5 Implementation of ASN.1 Database System In this section, we show the implementation of the ASN.1 database system. At the nal stage of our implementation of the system, its complete components are planned to be developed by ourselves. However, at the current stage, a commercially available C++based OODBMS (Object-Oriented Database Management System) ObjectStore 1 is employed just for convenience as a system component of the data storage. As compared with the conventional database management systems such as relational database systems, the OODBMS can represent to some extent the data structures of ASN.1 such as nested structure. Figure 4 illustrates the implementation of the system, where the system components in the gure are as follows: ASN.1 Compiler: A converter from an ASN.1 type denition module to a schema for OODBMS, i.e., C++ class denitions. PLtoC++ Compiler: A converter from an ASN.1/PL source code to a C++ source code. Compiler & Linker: The C++ compiler and linker oered by the OODBMS. Our ASN.1 compiler has been implemented by extending the existent ASN.1 compiler snacc. Snacc can transform types dened in ASN.1 modules into the corresponding C++ class denitions. In these classes, some methods including those for encoding and decoding are automatically generated. However, it does not designed for handling persistent data. We have extended it in some respects so that the transformed C++ class denitions can be used as a database schema. The PLtoC++ compiler has two functions. First, the compiler checks the existence of potential type errors in a given ASN.1/PL source code with the help of the type inference algorithms described in the previous section. If no type errors are detected, then the compiler converts the source code into a C++ source code. The output of these two compilers is compiled to an executable application by the C++ compiler which is oered by the OODBMS. In this way, in spite of using 1 ObjectStore is the trademark of OODBMS developed by Object Design, Inc.

8 ASN.1 Type Definition Module ASN.1 Compiler C++ Class Definitions Compiler & Linker ASN.1/PL Source Code PLtoC++ Compiler C++ Source Code Application OODB ASN.1 Database System Figure 4: Implementation of ASN.1 database system. the OODBMS, the programmers are not required to take account of how ASN.1 data are actually stored in the OODB. 6 Conclusions In this paper, we proposed the ASN.1 database system which employs ASN.1 modules as database schema, and the database programming language ASN.1/PL which handles ASN.1 types as its primitive types. Since ASN.1/PL programmers are not required to be conscious of transformation of data structures, it becomes easy for them to develop database applications whose data types are described by ASN.1. Furthermore, the impedance mismatch between the host language and the database system can be remarkably reduced. As a result, static type checking can be employed for application programmers to handle easily complicated data structures. Consequently, ASN.1 applications can be eciently and easily developed using ASN.1/PL for the ASN.1 database. References [1] ISO IS 8824, Information processing systems Open Systems Interconnection Specication of Abstract Syntax Notation One (ASN.1), [2] ISO IS 8825, Information processing systems Open Systems Interconnection Specication of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1), [3] Buneman, O.P. and Ohori, A.: \Polymorphism and Type Inference in Database Programming", ACM Transactions on Database Systems (to appear). [4] Couteau, J.: \Genome Databases", Science, Vol. 254, pp. 201{207, [5] Masunaga, Y.: \Consideration of Standard Database Storage Structure of Multimedia Documents" (in Japanese), IPSJ SIG Notes, Vol. 93, No. 45 (93-DBS-93, 93-OS-59), pp. 83{92, [6] Milner, R., Tofte, M. and Harper, R.: The Denition of Standard ML, The MIT Press, [7] Nakakawaji, T., Katsuyama, K., Miyauchi, N., and Mizuno, T.: \Development and Evaluation of APRICOT (Tools for Abstract Syntax Notation One)", Proceeding of the 2nd international symposium on interoperable information systems, INTAP, pp. 55{62, [8] Nishiyama, S., Obana, S., Horiuchi, H., and Suzuki, K.: \Design of DBMS for High Performance OSI Directory Based on Extensible DBMS Technique and Its Evaluation" (in Japanese), Transaction of Information Processing Society of Japan, Vol. 34, No. 6, pp , [9] Ohori, A., Buneman, O.P., and Breazu-Tannen, V.: \Database Programming in Machiavelli: a Polymorphic Language with Static Type Inference", Proceedings of ACM-SIGMOD conference '89, pp. 46{57, [10] Price, R.: \MHEG: An Introduction to the future International Standard for Hypermedia Object Interchange", Proceedings of ACM Multimedia 93, pp. 121{128, [11] Sample, M.: Snacc 1.1: A High Performance ASN.1 to C/C++ Compiler, snacc reference manual, 1993.

Algorithmic "imperative" language

Algorithmic imperative language Algorithmic "imperative" language Undergraduate years Epita November 2014 The aim of this document is to introduce breiy the "imperative algorithmic" language used in the courses and tutorials during the

More information

such internal data dependencies can be formally specied. A possible approach to specify

such internal data dependencies can be formally specied. A possible approach to specify Chapter 6 Specication and generation of valid data unit instantiations In this chapter, we discuss the problem of generating valid data unit instantiations. As valid data unit instantiations must adhere

More information

Database Systems Concepts *

Database Systems Concepts * OpenStax-CNX module: m28156 1 Database Systems Concepts * Nguyen Kim Anh This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract This module introduces

More information

Design and Implementation of an RDF Triple Store

Design and Implementation of an RDF Triple Store Design and Implementation of an RDF Triple Store Ching-Long Yeh and Ruei-Feng Lin Department of Computer Science and Engineering Tatung University 40 Chungshan N. Rd., Sec. 3 Taipei, 04 Taiwan E-mail:

More information

System-Level Specication of Instruction Sets. Department of Electrical and Computer Engineering. Department of Computer Science

System-Level Specication of Instruction Sets. Department of Electrical and Computer Engineering. Department of Computer Science System-Level Specication of Instruction Sets Todd A. Cook Paul D. Franzon Ed A. Harcourt y Thomas K. Miller III Department of Electrical and Computer Engineering y Department of Computer Science North

More information

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type Pascal ISO 7185:1990 This online copy of the unextended Pascal standard is provided only as an aid to standardization. In the case of dierences between this online version and the printed version, the

More information

Multilingual implementations of OSI applications

Multilingual implementations of OSI applications Multilingual implementations of OSI applications C. Bouras 1,2 D. Fotakis 2 V. Kapoulas 1,2 S. Kontogiannis 2 P. Lampsas 1,2 P. Spirakis 1,2 A. Tatakis 2 1 Computer Technology Institute, 2 Department of

More information

COURSE OUTCOMES OF M.Sc(IT)

COURSE OUTCOMES OF M.Sc(IT) COURSE OUTCOMES OF M.Sc(IT) Sr. No Subject Code Subject Name Sem-I CO Status Course Outcomes 1. A304101 PROGRAMMING USING C 2. A304102 FUNDAMENTALS OF COMPUTER & INFORMATION TECHNOLOGIES CO1 CO2 Understands

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

Ecient XPath Axis Evaluation for DOM Data Structures

Ecient XPath Axis Evaluation for DOM Data Structures Ecient XPath Axis Evaluation for DOM Data Structures Jan Hidders Philippe Michiels University of Antwerp Dept. of Math. and Comp. Science Middelheimlaan 1, BE-2020 Antwerp, Belgium, fjan.hidders,philippe.michielsg@ua.ac.be

More information

Lists. Michael P. Fourman. February 2, 2010

Lists. Michael P. Fourman. February 2, 2010 Lists Michael P. Fourman February 2, 2010 1 Introduction The list is a fundamental datatype in most functional languages. ML is no exception; list is a built-in ML type constructor. However, to introduce

More information

Server DBMS M Server DBMS 2. Application Program. Electric Gene Dictionary Sequence. Interface Process. Local DBMS N. Application Program

Server DBMS M Server DBMS 2. Application Program. Electric Gene Dictionary Sequence. Interface Process. Local DBMS N. Application Program 100 Proc. of FGCS '94, ICOT, Tokyo, December 1994 Parallel Database Management System: Kappa Moto KAWAMURA, and Toru KAWAMURA Institute for New Generation Computer Technology (ICOT) 21F. Mita-Kokusai Bldg.,

More information

Integrated. Database Services for. Multimedia Presentations. Susanne Boll, Wolfgang Klas, and Michael Lohr GMD-IPSI

Integrated. Database Services for. Multimedia Presentations. Susanne Boll, Wolfgang Klas, and Michael Lohr GMD-IPSI Integrated Database Services for Multimedia Presentations Susanne Boll, Wolfgang Klas, and Michael Lohr GMD-IPSI Integrated Publication and Information Systems Institute Dolivostr. 15 D-64293 Darmstadt,

More information

Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.

Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules. Outline Type Checking General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

More information

Introduction to SML Getting Started

Introduction to SML Getting Started Introduction to SML Getting Started Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark c Michael R. Hansen, Fall 2004 p.1/15 Background Standard Meta

More information

Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference

Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference Type Checking Outline General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

More information

Typed Racket: Racket with Static Types

Typed Racket: Racket with Static Types Typed Racket: Racket with Static Types Version 5.0.2 Sam Tobin-Hochstadt November 6, 2010 Typed Racket is a family of languages, each of which enforce that programs written in the language obey a type

More information

University of Utrecht. 1992; Fokker, 1995), the use of monads to structure functional programs (Wadler,

University of Utrecht. 1992; Fokker, 1995), the use of monads to structure functional programs (Wadler, J. Functional Programming 1 (1): 1{000, January 1993 c 1993 Cambridge University Press 1 F U N C T I O N A L P E A R L S Monadic Parsing in Haskell Graham Hutton University of Nottingham Erik Meijer University

More information

Advanced Algorithms and Computational Models (module A)

Advanced Algorithms and Computational Models (module A) Advanced Algorithms and Computational Models (module A) Giacomo Fiumara giacomo.fiumara@unime.it 2014-2015 1 / 34 Python's built-in classes A class is immutable if each object of that class has a xed value

More information

Outline. 1 About the course

Outline. 1 About the course Outline EDAF50 C++ Programming 1. Introduction 1 About the course Sven Gestegård Robertz Computer Science, LTH 2018 2 Presentation of C++ History Introduction Data types and variables 1. Introduction 2/1

More information

cell router mobile host

cell router mobile host In Mobile Computing, T. Imielinski and H. F. Korth eds., Kluwer Academic Publishers, 1996 22 STRATEGIES FOR QUERY PROCESSING IN MOBILE COMPUTING Masahiko TSUKAMOTO, Rieko KADOBAYASHI* and Shojiro NISHIO

More information

Functional Programming. Big Picture. Design of Programming Languages

Functional Programming. Big Picture. Design of Programming Languages Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics

More information

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract Transparent Access to Legacy Data in Java Olivier Gruber IBM Almaden Research Center San Jose, CA 95120 Abstract We propose in this paper an extension to PJava in order to provide a transparent access

More information

The Hibernate Framework Query Mechanisms Comparison

The Hibernate Framework Query Mechanisms Comparison The Hibernate Framework Query Mechanisms Comparison Tisinee Surapunt and Chartchai Doungsa-Ard Abstract The Hibernate Framework is an Object/Relational Mapping technique which can handle the data for applications

More information

SORT INFERENCE \coregular" signatures, they derive an algorithm for computing a most general typing for expressions e which is only slightly more comp

SORT INFERENCE \coregular signatures, they derive an algorithm for computing a most general typing for expressions e which is only slightly more comp Haskell Overloading is DEXPTIME{complete Helmut Seidl Fachbereich Informatik Universitat des Saarlandes Postfach 151150 D{66041 Saarbrucken Germany seidl@cs.uni-sb.de Febr., 1994 Keywords: Haskell type

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

More information

Managing ANSA Objects with OSI Network Management Tools. on the joint ISO-ITU `Reference Model for Open Distributed. to OSI managers.

Managing ANSA Objects with OSI Network Management Tools. on the joint ISO-ITU `Reference Model for Open Distributed. to OSI managers. Managing ANSA Objects with OSI Network Tools Guy Genilloud Computer Engineering Department EPFL-DI-LIT Swiss Federal Institute of Technology CH-1015 Lausanne, SWITZERLAND Marc Polizzi Computer Engineering

More information

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4 Overview This assignment combines several dierent data abstractions and algorithms that we have covered in class, including priority queues, on-line disjoint set operations, hashing, and sorting. The project

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

Acknowledgments 2

Acknowledgments 2 Program Slicing: An Application of Object-oriented Program Dependency Graphs Anand Krishnaswamy Dept. of Computer Science Clemson University Clemson, SC 29634-1906 anandk@cs.clemson.edu Abstract A considerable

More information

The Typed Racket Guide

The Typed Racket Guide The Typed Racket Guide Version 5.3.6 Sam Tobin-Hochstadt and Vincent St-Amour August 9, 2013 Typed Racket is a family of languages, each of which enforce

More information

NET311 Computer Networks Management Standards, Models and Language

NET311 Computer Networks Management Standards, Models and Language NET311 Computer Networks Management Standards, Models and Language Dr. Mostafa H. Dahshan Department of Computer Engineering College of Computer and Information Sciences King Saud University mdahshan@ksu.edu.sa

More information

Symbolic Programming. Dr. Zoran Duric () Symbolic Programming 1/ 89 August 28, / 89

Symbolic Programming. Dr. Zoran Duric () Symbolic Programming 1/ 89 August 28, / 89 Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic expressions. Symbolic manipulation: you do it all the

More information

Object Query Standards by Andrew E. Wade, Ph.D.

Object Query Standards by Andrew E. Wade, Ph.D. Object Query Standards by Andrew E. Wade, Ph.D. ABSTRACT As object technology is adopted by software systems for analysis and design, language, GUI, and frameworks, the database community also is working

More information

Implementation support tools for OSI application layer protocols. Gregor v. Bochmann, Daniel Ouimet Université de Montréal. and

Implementation support tools for OSI application layer protocols. Gregor v. Bochmann, Daniel Ouimet Université de Montréal. and 1 Implementation support tools for OSI application layer protocols Gregor v. Bochmann, Daniel Ouimet Université de Montréal and Gerald Neufeld University of British Columbia Abstract Formal specifications

More information

Types and Static Type Checking (Introducing Micro-Haskell)

Types and Static Type Checking (Introducing Micro-Haskell) Types and Static (Introducing Micro-Haskell) Informatics 2A: Lecture 13 Alex Simpson School of Informatics University of Edinburgh als@inf.ed.ac.uk 16 October, 2012 1 / 21 1 Types 2 3 4 2 / 21 Thus far

More information

COS 320. Compiling Techniques

COS 320. Compiling Techniques Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

A technique for adding range restrictions to. August 30, Abstract. In a generalized searching problem, a set S of n colored geometric objects

A technique for adding range restrictions to. August 30, Abstract. In a generalized searching problem, a set S of n colored geometric objects A technique for adding range restrictions to generalized searching problems Prosenjit Gupta Ravi Janardan y Michiel Smid z August 30, 1996 Abstract In a generalized searching problem, a set S of n colored

More information

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs Object Oriented Database Chapter 13 1 Object DBMSs Underlying concepts: Freely sharing data across processing routines creates unacceptable data dependencies All software should be constructed out of standard,

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA.

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA. KeyNote: Trust Management for Public-Key Infrastructures Matt Blaze 1 Joan Feigenbaum 1 Angelos D. Keromytis 2 1 AT&T Labs { Research 180 Park Avenue Florham Park, NJ 07932 USA fmab,jfg@research.att.com

More information

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University G22.2110-001 Programming Languages Spring 2010 Lecture 6 Robert Grimm, New York University 1 Review Last week Function Languages Lambda Calculus SCHEME review 2 Outline Promises, promises, promises Types,

More information

Designing a Semantic Ground Truth for Mathematical Formulas

Designing a Semantic Ground Truth for Mathematical Formulas Designing a Semantic Ground Truth for Mathematical Formulas Alan Sexton 1, Volker Sorge 1, and Masakazu Suzuki 2 1 School of Computer Science, University of Birmingham, UK, A.P.Sexton V.Sorge@cs.bham.ac.uk,

More information

has phone Phone Person Person degree Degree isa isa has addr has addr has phone has phone major Degree Phone Schema S1 Phone Schema S2

has phone Phone Person Person degree Degree isa isa has addr has addr has phone has phone major Degree Phone Schema S1 Phone Schema S2 Schema Equivalence in Heterogeneous Systems: Bridging Theory and Practice R. J. Miller y Y. E. Ioannidis z R. Ramakrishnan x Department of Computer Sciences University of Wisconsin-Madison frmiller, yannis,

More information

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs. and easily tailor it for use within the multicast system. After expressing an initial application design in terms of MIL specications, the application code and speci- cations may be compiled and executed.

More information

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs.

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs. Java SE11 Development Java is the most widely-used development language in the world today. It allows programmers to create objects that can interact with other objects to solve a problem. Explore Java

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

Ch. 21: Object Oriented Databases

Ch. 21: Object Oriented Databases Ch. 21: Object Oriented Databases Learning Goals: * Learn about object data model * Learn about o.o. query languages, transactions Topics: * 21.1 * 21.2 * 21.3 * 21.4 * 21.5 Source: Ch#21, Bertino93, Kim

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy Static type safety guarantees for the operators of a relational database querying system Cédric Lavanchy June 6, 2008 Contents 1 Previous work 2 2 Goal 3 3 Theory bases 4 3.1 Typing a relation...........................

More information

ISO/IEC Information technology Open Systems Interconnection The Directory. Part 9: Replication

ISO/IEC Information technology Open Systems Interconnection The Directory. Part 9: Replication INTERNATIONAL STANDARD This is a preview - click here to buy the full publication ISO/IEC 9594-9 Seventh edition 2017-05 Information technology Open Systems Interconnection The Directory Part 9: Replication

More information

interpreted program is type correct. However, if the interpreted program has already been type checked and it is known to be type correct so using the

interpreted program is type correct. However, if the interpreted program has already been type checked and it is known to be type correct so using the An exercise in dependent types: A well-typed interpreter Lennart Augustsson Magnus Carlsson Department of Computing Sciences Chalmers University of Technology S-412 96 G teborg, Sweden Email: {augustss,magnus}@cs.chalmers.se

More information

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309 A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48

More information

Edinburgh Research Explorer

Edinburgh Research Explorer Edinburgh Research Explorer System Description: CyNTHIA Citation for published version: Whittle, J, Bundy, A, Boulton, R & Lowe, H 1999, System Description: CyNTHIA. in Automated Deduction CADE-16: 16th

More information

CMa simple C Abstract Machine

CMa simple C Abstract Machine CMa simple C Abstract Machine CMa architecture An abstract machine has set of instructions which can be executed in an abstract hardware. The abstract hardware may be seen as a collection of certain data

More information

INTERNATIONAL STANDARD

INTERNATIONAL STANDARD INTERNATIONAL STANDARD IEC 61158-6-15 Edition 2.0 2010-08 Industrial communication networks Fieldbus specifications Part 6-15: Application layer protocol specification Type 15 elements INTERNATIONAL ELECTROTECHNICAL

More information

MOBILE VIDEO COMMUNICATIONS IN WIRELESS ENVIRONMENTS. Jozsef Vass Shelley Zhuang Jia Yao Xinhua Zhuang. University of Missouri-Columbia

MOBILE VIDEO COMMUNICATIONS IN WIRELESS ENVIRONMENTS. Jozsef Vass Shelley Zhuang Jia Yao Xinhua Zhuang. University of Missouri-Columbia MOBILE VIDEO COMMUNICATIONS IN WIRELESS ENVIRONMENTS Jozsef Vass Shelley Zhuang Jia Yao Xinhua Zhuang Multimedia Communications and Visualization Laboratory Department of Computer Engineering & Computer

More information

Sprite an animation manipulation language Language Reference Manual

Sprite an animation manipulation language Language Reference Manual Sprite an animation manipulation language Language Reference Manual Team Leader Dave Smith Team Members Dan Benamy John Morales Monica Ranadive Table of Contents A. Introduction...3 B. Lexical Conventions...3

More information

ISO/IEC Information technology Open Systems Interconnection The Directory: Protocol specifications

ISO/IEC Information technology Open Systems Interconnection The Directory: Protocol specifications This is a preview - click here to buy the full publication INTERNATIONAL STANDARD ISO/IEC 9594-5 Fifth edition 2005-12-15 Information technology Open Systems Interconnection The Directory: Protocol specifications

More information

Course Content. Object-Oriented Databases. Objectives of Lecture 6. CMPUT 391: Object Oriented Databases. Dr. Osmar R. Zaïane. University of Alberta 4

Course Content. Object-Oriented Databases. Objectives of Lecture 6. CMPUT 391: Object Oriented Databases. Dr. Osmar R. Zaïane. University of Alberta 4 Database Management Systems Fall 2001 CMPUT 391: Object Oriented Databases Dr. Osmar R. Zaïane University of Alberta Chapter 25 of Textbook Course Content Introduction Database Design Theory Query Processing

More information

Dependent Object Types - A foundation for Scala's type system

Dependent Object Types - A foundation for Scala's type system Dependent Object Types - A foundation for Scala's type system Draft of January 14, 2010 Do Not Distrubute Martin Odersky, Georey Alan Washburn EPFL Abstract. 1 Introduction This paper presents a proposal

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Pig Latin. Dominique Fonteyn Wim Leers. Universiteit Hasselt

Pig Latin. Dominique Fonteyn Wim Leers. Universiteit Hasselt Pig Latin Dominique Fonteyn Wim Leers Universiteit Hasselt Pig Latin...... is an English word game in which we place the rst letter of a word at the end and add the sux -ay. Pig Latin becomes igpay atinlay

More information

CHAPTER III TMN MANAGEMENT

CHAPTER III TMN MANAGEMENT CHAPTER III TMN MANAGEMENT TMN Management TMN Management The term TMN is introduced by the ITU-T (the former CCITT) as an abbreviation for 'Telecommunications Management Network'. The concept of a TMN

More information

Basic concepts. Chapter Toplevel loop

Basic concepts. Chapter Toplevel loop Chapter 3 Basic concepts We examine in this chapter some fundamental concepts which we will use and study in the following chapters. Some of them are specific to the interface with the Caml language (toplevel,

More information

USER SPECIFICATIONS. 2 Physical Constraints. Optimized Algebraic Representation. Optimization

USER SPECIFICATIONS. 2 Physical Constraints. Optimized Algebraic Representation. Optimization Bulk Loading Techniques for Object Databases and an Application to Relational Data Sihem Amer-Yahia, Sophie Cluet and Claude Delobel contact author: Sihem Amer-Yahia, INRIA, BP 105, 78153 Le Chesnay, France

More information

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa

RbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa RbCl: A Reective Object-Oriented Concurrent Language without a Run-time Kernel Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa Department of Information Science, The University of Tokyo 3 Abstract We

More information

ER E P M S S I TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A

ER E P M S S I TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A S I N S UN I ER E P M TA S A S I T VER TRANSLATION OF CONDITIONAL COMPIL DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A-1997-13 UNIVERSITY OF TAMPERE DEPARTMENT OF COMPUTER SCIENCE SERIES

More information

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline :: Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience

More information

INTERNATIONAL TELECOMMUNICATION UNION

INTERNATIONAL TELECOMMUNICATION UNION INTERNATIONAL TELECOMMUNICATION UNION )454 X.227 TELECOMMUNICATION (04/95) STANDARDIZATION SECTOR OF ITU $!4!.%47/2+3!.$ /0%. 3934%- #/--5.)#!4)/.3 /0%. 3934%-3 ).4%2#/..%#4)/. #/..%#4)/.-/$% 02/4/#/,

More information

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract Modeling Cooperative Behavior Using Cooperation Contracts Michael Schre Department of Data & Knowledge Engineering University of Linz Altenbergerstr. 69, A-4040 Linz, Austria schre@dke.uni-linz.ac.at Gerti

More information

Resource and Service Trading in a Heterogeneous Large Distributed

Resource and Service Trading in a Heterogeneous Large Distributed Resource and Service Trading in a Heterogeneous Large Distributed ying@deakin.edu.au Y. Ni School of Computing and Mathematics Deakin University Geelong, Victoria 3217, Australia ang@deakin.edu.au Abstract

More information

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.

More information

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract Construction of Application Generators Using Eli Uwe Kastens, University of Paderborn, FRG Abstract Application generators are a powerful means for reuse of software design. They produce special purpose

More information

Introduction. chapter Functions

Introduction. chapter Functions chapter 1 Introduction In this chapter we set the stage for the rest of the book. We start by reviewing the notion of a function, then introduce the concept of functional programming, summarise the main

More information

API-MODULE Emps; FROM CompanyDb IMPORT Employee, Project, Department, String; TYPE EmpType/Employee = [name: String; project: {Project}; dept: DeptTyp

API-MODULE Emps; FROM CompanyDb IMPORT Employee, Project, Department, String; TYPE EmpType/Employee = [name: String; project: {Project}; dept: DeptTyp Generating queries from complex type denitions Manfred A. Jeusfeld Informatik V, RWTH Aachen, D-52056 Aachen jeusfeld@informatik.rwth-aachen.de Abstract Many information systems are implemented as application

More information

Types and Static Type Checking (Introducing Micro-Haskell)

Types and Static Type Checking (Introducing Micro-Haskell) Types and Static (Introducing Micro-Haskell) Informatics 2A: Lecture 14 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 17 October 2017 1 / 21 1 Types 2 3 4 2 / 21 So far in

More information

[MS-PICSL]: Internet Explorer PICS Label Distribution and Syntax Standards Support Document

[MS-PICSL]: Internet Explorer PICS Label Distribution and Syntax Standards Support Document [MS-PICSL]: Internet Explorer PICS Label Distribution and Syntax Standards Support Document Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft

More information

ISO/IEC INTERNATIONAL STANDARD. Information technology ASN.1 encoding rules: Specification of Octet Encoding Rules (OER)

ISO/IEC INTERNATIONAL STANDARD. Information technology ASN.1 encoding rules: Specification of Octet Encoding Rules (OER) INTERNATIONAL STANDARD ISO/IEC 8825-7 Second edition 2015-11-15 Information technology ASN.1 encoding rules: Specification of Octet Encoding Rules (OER) Technologies de l'information -- Règles de codage

More information

An Adaptive Query Processing Method according to System Environments in Database Broadcasting Systems

An Adaptive Query Processing Method according to System Environments in Database Broadcasting Systems An Query Processing Method according to System Environments in Database Broadcasting Systems M. KASHITA T. TERADA T. HARA Graduate School of Engineering, Cybermedia Center, Graduate School of Information

More information

Carnegie Mellon University in Qatar Spring Problem Set 4. Out: April 01, 2018

Carnegie Mellon University in Qatar Spring Problem Set 4. Out: April 01, 2018 Carnegie Mellon University in Qatar 15415 - Spring 2018 Problem Set 4 Out: April 01, 2018 Due: April 11, 2018 1 1 B + External Sorting [20 Points] Suppose that you just nished inserting several records

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1 OBJECT ORIENTED SIMULATION LANGUAGE OOSimL Reference Manual - Part 1 Technical Report TR-CSIS-OOPsimL-1 José M. Garrido Department of Computer Science Updated November 2014 College of Computing and Software

More information

Communication in Distributed Systems

Communication in Distributed Systems Communication in Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini andrea.omicini@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università

More information

An Algebra for Protein Structure Data

An Algebra for Protein Structure Data An Algebra for Protein Structure Data Yanchao Wang, and Rajshekhar Sunderraman Abstract This paper presents an algebraic approach to optimize queries in domain-specific database management system for protein

More information

Abstract. Collection-oriented languages provide high-level constructs for. popular with the advent of massively parallel SIMD machines.

Abstract. Collection-oriented languages provide high-level constructs for. popular with the advent of massively parallel SIMD machines. Characterizing the Paralation Model using Dynamic Assignment Eric T. Freeman 1? and Daniel P. Friedman 2 1 Yale University, Department of Computer Science, New Haven, Connecticut 06520 2 Indiana University,

More information

Figure 1. Current device driver development model

Figure 1. Current device driver development model Prototype of the Device Driver Generation System for UNIX-like Operating Systems Tetsuro Katayama Faculty of Engineering, Miyazaki University. 1-1 Gakuen, kibanadai-nishi, Miyazaki 889-2192, Japan. kat@cs.miyazaki-u.ac.jp

More information

An Architecture for Next Generation Mobile Agent Infrastructure

An Architecture for Next Generation Mobile Agent Infrastructure An Architecture for Next Generation Mobile Agent Infrastructure Ichiro Satoh Department of Information Sciences, Ochanomizu University / Japan Science and Technology Corporation Abstract This paper presents

More information

ISO/IEC INTERNATIONAL STANDARD

ISO/IEC INTERNATIONAL STANDARD INTERNATIONAL STANDARD ISO/IEC 9594-8 Fifth edition 2005-12-15 Information technology Open Systems Interconnection The Directory: Publickey and attribute certificate frameworks Technologies de l'information

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

ISO/IEC INTERNATIONAL STANDARD

ISO/IEC INTERNATIONAL STANDARD INTERNATIONAL STANDARD ISO/IEC 9594-8 Sixth edition 2008-12-15 Information technology Open Systems Interconnection The Directory: Publickey and attribute certificate frameworks Technologies de l'information

More information

LECTURE 17. Expressions and Assignment

LECTURE 17. Expressions and Assignment LECTURE 17 Expressions and Assignment EXPRESSION SYNTAX An expression consists of An atomic object, e.g. number or variable. An operator (or function) applied to a collection of operands (or arguments)

More information

Introduction To C#.NET

Introduction To C#.NET Introduction To C#.NET Microsoft.Net was formerly known as Next Generation Windows Services(NGWS).It is a completely new platform for developing the next generation of windows/web applications. However

More information