Issued by the WP1 Team. Prepared by. Georg Lehrenfeld, Paderborn University

Size: px
Start display at page:

Download "Issued by the WP1 Team. Prepared by. Georg Lehrenfeld, Paderborn University"

Transcription

1 ESPRIT Project in Condence ESPRIT Project 2072 ECIP2 European CAD Integration Project Issued by the WP1 Team Prepared by Georg Lehrenfeld, Paderborn University Wolfgang Mueller, Cadlab Translation of EXPRESS to a Logical Programming Language Deliverable R-C A ECIP2/PU/013-2 August 24, 1992 (c) Copyright 1992 Bull S.A., International Computer Ltd, Siemens Nixdorf Informationssysteme AG, Nederlandse Philips Bedrijven B.V., Racal-Redac Ltd., Siemens AG, Thomson-CSF, Universitaet-GH Paderborn. This document and the information contained herein may not be copied, used or disclosed in whole or in part except with prior written permission of the partners as listed above. The copyright and the foregoing restriction on copying, use and disclosure extend to all media in which this information may beembodied, including magnetic storage, computer print-out, visual display, etc.. The document is supplied without liability for errors or omissions.

2 Title of Deliverable Translation of EXPRESS to a Logical Programming Language Deliverable No. R:C A Brief Description In this report a translation from STEP and EXPRESS to Prolog is given in order to get executable STEP/EXPRESS models. Partner(s) Responsible Cadlab - Paderborn University Estimated work content 1 man-month Date August 24, 1992 Workpackage Name of Review Comments Partner reviewer

3 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS... 1 Abstract Considering ISO two substandards are dened. Part 11 de- nes the EXPRESS language [1] whereas part 21 denes the STEP Exchange structure [2], a format to exchange instances of product data. In this report a method is described to translate EXPRESS as well as STEP denitions to a logical programming language, namely Prolog. This translation is the rst step towards the generation of executable models out of EXPRESS models so that instances can be checked against the according conceptual model. The method to translate EXPRESS and STEP to Prolog was developed with respect to generate readable code so that even users that have no Prolog knowledge may still keep the overview over the produced code. The programming language Prolog has been chosen since on the one hand Prolog is a language for rapid prototyping and on the other hand the main checks that have to be done by a model checker are solved best by using Prolog.

4 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS... 2 Contents 1 Introduction 3 2 Introduction to Prolog 4 3 Translating the STEP Exchange Structure Translation Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : Examples : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 4 Translating the EXPRESS Language Translation Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : Examples : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Aggregate Types : : : : : : : : : : : : : : : : : : : : : : : Types : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Entities : : : : : : : : : : : : : : : : : : : : : : : : : : : : Super/Subtype Relationships : : : : : : : : : : : : : : : : Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Complete Example : : : : : : : : : : : : : : : : : : : : : : 11 5 Conclusion 12

5 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Introduction The purpose of this report is to develop a technique to check conceptual models by their instances. The work was done with respect to the former results of WP1 [3] that have been achieved until 1990 Within the present context of WP1 this means to validate instances dened by the STEP Exchange Structure (ISO )[2] towards the according conceptual model dened by the EXPRESS language (ISO )[1]. This is, to check the consistency among instances and the completeness and the consistency of the conceptual model itself. A model checker supports the prototyping of conceptual models so that the models may be easily improved and enhanced. For further introduction the reader is referred to [2], [1], [4], and [5]. In order to achieve an executable specication out of the EXPRESS specication we translate both the EXPRESS language model and the product models to C-Prolog. We took C-Prolog since the C-Prolog interpreter is public domain software. The portation of the generated C-Prolog code to other Prolog dialects might be no problem. Running the generated code on an IF/Prolog 1 interpreter for instance means only to change the identiers of two predened predicates. We havechosen Prolog in general since we found that a lot of problems occurring during the validation are solved best by the use of a logic programming language. This is, because most of the properties that have tobechecked relate to the checking of set inclusions and logical relationships. Furthermore Prolog eases the implementation by the processing of symbolic data and meta programming. Using Prolog for prototyping means to focus the interest on the checking process rather than on the implementation. The mapping to Prolog we describe herein is in most parts nearly a most simple one to one mapping, so that the produced code is even readable by an user who has no knowledge about Prolog. The translation from EXPRESS to Prolog is in general only a restructuring of the EXPRESS model whereas the translation from STEP to Prolog is in most cases only a very simple one to one mapping exchanging single symbols only. This means, that cross-compilers for both of the two languages to Prolog are most easy to implement. The translation to Prolog is developed with respect to further implementation of a model checker that has to be implemented processing the mapped code and to give error reports for each consistency fail. In order to make the translated code understandable for non-prolog experts a brief introduction to Prolog will be given in the next chapter. In the further two chapters the mapping from STEP and EXPRESS to Prolog will be given by detailed examples. However, the process concerning the consistency check, i.e. to identify what properties have to be checked on the EXPRESS and STEP models, are not covered by this deliverable. It will be described in a further deliverable giving detailed examples [5]. 1 IF/Prolog is a Trademark of InterFace Computer GmbH

6 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Introduction to Prolog The basic data structure of Prolog is a term. A term may be either an atom, an integer, a variable, a list, or a predicate. An atom is either a sequence of characters starting by alower case letter or any string included by the character " ' ".For example, tom and 'TOM' are atoms but TOM is not an atom. An integer is any sequence of digits, e.g. 123 and 007 are integers. A variable is a sequence of characters starting by an upper case letter or an underline. For example, Tom and tom are variables. A predicate has the following form: functor(term 1,..., Term n ), where functor has to be an atom. A list is an enumeration of terms separated by a comma included by brackets: [Term 1,..., Term n ]. A Prolog program is a nite set of Horn Clauses. A Horn Clause is also called a rule in Prolog and has the following form: H :, B 1 ; :::; B n : H is called the head of the rule and the B i are called the body goals - or just body - of the rule. H and the B i both have to be predicates. A rule with no body goals is called a fact: H:. To initiate a computation the user has to specify a question to the Prolog system. This question only species the body goals that have to be fullled. This is, a rule with no head: :- B. Note, that several Prolog interpreters got a question mode where the ':-' is automatically given by the ssystem, if the user is permitted to enter a new question. In some systems the ':-' then is replaced by '?,'. If the user enters a question the system tries to proof this question applying the given rules and facts by unication and backtracking.

7 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Translating the STEP Exchange Structure In this section rst a translation of the basic STEP terms is given before the general translation rules are explained. Thereafter we will give some examples how to apply these rules. 3.1 Translation Rules Since STEP is structured in a very simple way translating basic STEP terms to Prolog nearly means to exchange single symbols as it is shown by the following table. STEP Prolog Integer Real real(9.432) String 'ABC' 'ABC' Boolean.F.,.T. e F e, e T e, Logical.F.,.T.,.U. e F e, e T e, e U e Binary "2EC" binary('2ec') Enumerations.BLONDE. e BLONDE e Optional value $ Instance Id #3 id(3) Name abcd abcd List (a1, A2, a3) [a1, a2, a3] Delimiter ;. For the translation of the general format each STEP instance is translated to one Prolog fact. The most practical way to save the instance identier is to take it as a rst argument in each Prolog fact. Scoped instances are simply represented by one fact containing a list of the particular instances. Inherited attributes are represented in STEP by so-called external and internal mappings. Applying an internal mapping means that the attributes of an entity are concatenated to the inherited attributes recursively. This is, how inheritance of ONEOF relationships should be represented. Applying an external mapping means that inherited attributes are represented as instances of the entity type they are inherited from but not indicated by a separate instance identier. The externally mapped inherited attributes are then gathered in a set indicated by one unique identier only, e.g. #34 = ( PERSON(... ) FEMALE(... )); External mappings are applied if the subtypes are related by AND and ANDOR.

8 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS... 6 The general translation rules can be summerised by the following table. Instance! Prolog fact Instance identier! rst argument of the Prolog fact Attribute list! Prolog list Scoped instance! Prolog fact External mapping! same instance identier 3.2 Examples The above translation rules are explained by the following examples. By rst two instances (#2, #4) a simple mapping of attribute values is shown. The translation of instance #6 explains the translation of scoped instances whereas instance #100 explains how external mappings may be represented in Prolog. STEP Prolog #2=MALE('W.P.',(11,10,60), male(2,'w.p.',[11,10,60],.white.,(#4)); e white e, [id(4)]). #4=MALE('Phil',(25,5,89),$,()); male(4,'phil',[25,5,89],, []). #6 =&SCOPE entity1(6, scope(export([61]), #61=ENTITYA('A1',$,()); [entitya(61,'a1',,[]), #62=ENTITYB('B2',$,()); entityb(62,'b2',,[]), #63=ENTITYC('C3',$,()); entityc(63,'c3',,[]) ENDSCOPE /#61/ ]), ENTITY1(#61,#62,#63); id(61), id(62), id(63)). #100=( FIRST('ABC',25) First(100, 'ABC',25). SECOND('DEF', 27)); Second(100, 'DEF',27).

9 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Translating the EXPRESS Language 4.1 Translation Rules In this section we describe how to translate EXPRESS denitions to Prolog. The most problematical part translating full EXPRESS denitions to Prolog is denitely the translation of executable EXPRESS statements. These are, function/procedure declarations as well as the statements that are dened in the local and global rules. The problem is that obviously not a simple mapping can be applied to translate imperative statements to a logical programming language whereas the declarative parts as well as some predened EXPRESS predicates are much more easier to translate as it will be shown by an example in section Base types are translated by a simple one to one mapping to Prolog. The EX- PRESS keyword 'optional' is simply translated to a Prolog predicate as it is shown by the following table. EXPRESS Prolog Base types string string integer integer real real boolean boolean logical logical boolean boolean binary binary Dened types mytypeidentier mytypeidentier Optional optional optional (... ) Aggregates and enumerations are translated to predicates over the lower/upper bound and the according type name or the enumerations of the type names, respectively. Each type denition is mapped to one Prolog fact. Each EXPRESS entity denition is separately mapped to two Prolog predicates. One predicate is gathered in a list called list of ids whereas the other one is gathered in a second list: list of types. The rst predicate preceded by the entity type name is an enumeration of the attribute identier in the same sequence as they are dened in the EXPRESS entity denition. The second predicate represents the according enumeration of the attribute types. To each entity predicate an additional rst argument has to be added in order to keep the instance identier for checking purpose applying a checking program. The instance identier is of type integer. Therefore the rst argument of each entity predicate that is inserted in list of types is integer. For each entity one additional Prolog fact named supertype rule is generated to describe the supertype relationship. The general translation rules are summerised by the following table.

10 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS... 8 Dened type! one Prolog fact Entities! gathered in 2 lists Subtype relationship! one Prolog fact for each entity 4.2 Examples Aggregate Types Each aggregate type is translated to a corresponding predicate. The rst two arguments represent the lower and upper bound. The third argument denotes the type. EXPRESS Prolog OPTIONAL ARRAY[1:3] OF REAL optional(array(1,3, real)) LIST[0:5] OF ARRAY[1:3] OF INTEGER SET[1:3] OF point list(0,5,array(1,3,integer)) set(1,3, entity(point)) BAG[0:?] OF bag type bag(0,'?', bag type) Types Enumeration and select types are mapped to one predicate each. In principle this is nearly a one to one mapping. In the last row of the following example the translation of a full EXPRESS type denition is shown. The rst argument represents the name of the type the second argument denotes the type it is composed of. EXPRESS Prolog ENUMERATION OF (blonde, enum([e blonde e, brown, e brown e, black) e black e]) SELECT(type1, type2) select([type1, type2]) TYPE date=array[1:3] OF INTEGER; END TYPE; type(date,array(1,3,integer)) Entities As already described above each entity denition is separated by attribute types and attribute identiers in the sequence as the attributes appear in the EX- PRESS denition. The separated denitions are collected in two lists in two

11 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS... 9 dierent Prolog facts: list of ids and list of types. To ease the implementation of a STEP/EXPRESS checker an additional predicate is added to each entity predicate to keep instance identiers. Therefore the rst argument of each predicate in list of ids is id and in list of types is integer. EXPRESS Prolog ENTITY entity1; list of ids( type11 : OPTIONAL INTEGER; [entity1(id,type11,type12), type12 : entity3; entity2(id,type2), entity3(id,type3) ]). ENTITY entity2; list of types( type2 : SET[0:?] OF entity1; [entity1(integer, optional(integer), entity(entity3)), ENTITY entity3; entity2(integer,set(0,'?', type3 : my type; entity(entity1))), entity3(integer,my type) ]) Super/Subtype Relationships For each entity one additional Prolog fact named supertype rule has to be generated to describe the supertype relationship. The rst argument represents the identier the rule refers to. An additional predicate indicates whether there may exist instances of this entity type (abstract) or not. The second argument denotes the according subtypes and how the instances are related (oneof, and, andor). If there does not exist any subtypes the second parameter is simply set to nil. EXPRESS ENTITY root ABSTRACT SUPERTYPE OF (ONEOF(sub1, sub2)); ENTITY sub1 SUBTYPE OF (root); ENTITY sub2 SUBTYPE OF (root); Prolog supertype rule(entity(abstract(root)), oneof(entity(sub1), entity(sub2))). supertype rule(entity(sub1), nil). supertype rule(entity(sub2), nil).

12 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Rules Since translating the executable parts (local/global rules, derived attributes) of EXPRESS means already to implement the checker we only give a brief example in this section to indicate that the translation to Prolog makes sense for the logical parts within the executable statements. In the following example a local rule dening only logical relationships between attributes is translated to Prolog. This example shows that in this case the code produced from EXPRESS rules is not easy to understand for non-prolog experts though it is only a simple EXPRESS example and there is a direct relationship between the EXPRESS and the Prolog code as it is indicated by underlining. This example also shows that the problem of the mapping of executable parts of EXPRESS needs further investigation if some general translation rules should be developed. The rst Prolog rule retrieves a list L of all instances of entity type female. All instances in L are checked one by one by the rule check w1 list then. The predicate arg(3,inst,arg1) gets the third eld of the instance (maiden name) in variable Arg1 whereas arg(2,inst,arg1) gets the second eld (husband) of the instance. The logical relationship (NOT EXISTS(maiden name) OR ( EXISTS(maiden name) AND EXISTS(husband))) is simply described by the following Prolog part: (var(arg1);(not(var(arg1)),..., not(var(arg2)))) The logical OR is translated to the Prolog ; whereas the logical AND is translated to a comma. EXPRESS Prolog ENTITY female; check w1:- findall(female(a,b,c), female(a,b,c), w1: ( NOT EXISTS(maiden name) L), OR check w1 list(l). (EXISTS(maiden name) AND check w1 list([]). EXISTS(husband)) check w1 list([inst Ls]):- ); arg(3,inst,arg1), (var(arg1); (not(var(arg1)), arg(2,inst,arg2), not(var(arg2))), check w1 list(ls).

13 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Complete Example In order to get an overview over the complexity of the generated Prolog code we lastly give a translation of a complete example. EXPRESS Prolog TYPE supertype rule(entity(person), hair type = ENUMERATION OF oneof(entity(male), (blonde,black); entity(female))). END TYPE; supertype rule(entity(female),nil). supertype rule(entity(male),nil). ENTITY person SUPERTYPE OF type(hair type, (ONEOF(male,female)); enum([e blonde e, name: STRING; e black e])). birth date: ARRAY[1:3]OF INTEGER; hair: hair type; list of ids([ children: SET [0:?] of person; person(id,name, birth date, hair, ENTITY male children), SUBTYPE OF (person); female(id,maiden name), wife: OPTIONAL female; male(id,wife) ]). list of types([ ENTITY female person(integer,string, SUBTYPE OF (person); array(1,3,integer), maiden name: OPTIONAL STRING; hair type, set(0,'?',entity(person))), female(integer, optional(string)), male(integer, optional(entity(female))) ]).

14 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS Conclusion The main purpose of this paper was to show how to generate executable specications out of STEP/EXPRESS models that can be processed by further tools. In order to get a rst quick implementation Prolog has been taken as an ideal language for prototyping. The method to translate STEP/EXPRESS to Prolog shows that a most natural mapping to a logical programming language can be performed. This translation can even be done manually without having detailed Prolog expertise. Nevertheless, the implementation of tools to generate the Prolog code would not be very costly. On this base an implementation of the two cross-compilers to translate EXPRESS as well as STEP models would probably take less than 1 manmonth provided that an EXPRESS compiler front-end is already available. First experiments have shown that it would be easy to implement the main parts of an EXPRESS/STEP checker based on the generated code. Note, that the processing of all the executable parts of EXPRESS is not solved by the translation provided in this report. The major disadvantage building up a Prolog system is on the one hand the runtime and on the other hand the required main memory processing huge sets of data. First tests have shown that the C-Prolog interpreter required about 60MB (!) main memory to load STEP instances. Nevertheless, this is a way toachieve a rst executable model that can be directly processed working well for some important checks suitable for small amount of data. Based on this rst implementation the process of checking STEP/EXPRESS models can be studied in detail and validated if the dened EXPRESS model fullls the requirements. References [1] ISO 10303, EXPRESS Language Reference Manual, Release Draft, Document N 14, ISO TC184/SC4/WG5/P3, April 29, [2] ISO CD , Product Data Representation and Exchange - Part 21: Clear Text Encoding of the Exchange Structure, ISO TC184/SC4/WG5, March 25, [3] ECIP.PH.104(3), A Guide to the ECIP Conceptual Model of Electronic Products and Product Design Process, ECIP2 Workpackage 1, July 17, [4] ECIP2/CADLAB-UNIHAGEN/D , Comparison of Concepts of the existing ECIP notation with EXPRESS, ECIP2 Workpackage 1, February 28, 1991.

15 ECIP2/PU/013-2 Esprit in Condence Translation of EXPRESS [5] R:C C, Validation of EXPRESS Models, ECIP2 Workpackage 1, (to be delivered in March, 1993).

ESPRIT Project 2072 ECIP2. Issued by the WP1 Team. Prepared by. Georg Lehrenfeld, Paderborn University, Norbert Wiechers, Cadlab

ESPRIT Project 2072 ECIP2. Issued by the WP1 Team. Prepared by. Georg Lehrenfeld, Paderborn University, Norbert Wiechers, Cadlab ESPRIT Project 2072 ECIP2 European CAD Integration Project Issued by the WP1 Team Prepared by Wolfgang Mueller, Cadlab, Georg Lehrenfeld, Paderborn University, Norbert Wiechers, Cadlab Validation of EXPRESS

More information

ESPRIT Project 2072 ECIP2

ESPRIT Project 2072 ECIP2 ESPRIT Project in Condence ESPRIT Project 2072 ECIP2 European CAD Integration Project Prepared by Wolfgang Mueller (Cadlab), Gerhard Scholz (University of Hagen) Comparison of Concepts of the existing

More information

Using STEP in exchange of digital product information.

Using STEP in exchange of digital product information. Using STEP in exchange of digital product information. Authors Department of Electro-Technology Faculty of Electrical Engineering Czech Technical University in Prague Technická 2, 166 27 PRAHA 6, Dejvice

More information

An Editor for the Rapid Prototyping of. Cadlab, Fuerstenalle 11, Paderborn, Germany

An Editor for the Rapid Prototyping of. Cadlab, Fuerstenalle 11, Paderborn, Germany s3 s1 s2 s3 s23 s5 An Editor for the Rapid Prototyping of EXPRESS-G Models R. Zhao, W. Mueller, H.-J. Kaufmann, Th. Kern, F. Buijs Cadlab, Fuerstenalle 11, 33102 Paderborn, Germany 1 Introduction The new

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

Software Paradigms (Lesson 6) Logic Programming

Software Paradigms (Lesson 6) Logic Programming Software Paradigms (Lesson 6) Logic Programming Table of Contents 1 Introduction... 2 2 Facts... 3 3 Predicates (Structured Terms)... 4 3.1 General Structures... 4 3.2 Predicates (Syntax)... 4 3.3 Simple

More information

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

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

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

Briefly describe the purpose of the lexical and syntax analysis phases in a compiler.

Briefly describe the purpose of the lexical and syntax analysis phases in a compiler. Name: Midterm Exam PID: This is a closed-book exam; you may not use any tools besides a pen. You have 75 minutes to answer all questions. There are a total of 75 points available. Please write legibly;

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

Compiler Techniques MN1 The nano-c Language

Compiler Techniques MN1 The nano-c Language Compiler Techniques MN1 The nano-c Language February 8, 2005 1 Overview nano-c is a small subset of C, corresponding to a typical imperative, procedural language. The following sections describe in more

More information

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012.

PROLOG. First simple Prolog Program. Basic elements of Prolog. Clause. NSSICT/CH/Nov., 2012. PROLOG Prolog is a programming language for symbolic, n-numeric computations. It is specially well suited for solving problems that involve objects and relation between objects. First simple Prolog Program

More information

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2.

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2. The S-Expression Design Language (SEDL) James C. Corbett September 1, 1993 Contents 1 Introduction 1 2 Origins of SEDL 2 3 The Language SEDL 2 3.1 Scopes : : : : : : : : : : : : : : : : : : : : : : : :

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

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

CS109A ML Notes for the Week of 1/16/96. Using ML. ML can be used as an interactive language. We. shall use a version running under UNIX, called

CS109A ML Notes for the Week of 1/16/96. Using ML. ML can be used as an interactive language. We. shall use a version running under UNIX, called CS109A ML Notes for the Week of 1/16/96 Using ML ML can be used as an interactive language. We shall use a version running under UNIX, called SML/NJ or \Standard ML of New Jersey." You can get SML/NJ by

More information

Derived from PROgramming in LOGic (1972) Prolog and LISP - two most popular AI languages. Prolog programs based on predicate logic using Horn clauses

Derived from PROgramming in LOGic (1972) Prolog and LISP - two most popular AI languages. Prolog programs based on predicate logic using Horn clauses Prolog Programming Derived from PROgramming in LOGic (1972) Good at expressing logical relationships between concepts Prolog and LISP - two most popular AI languages Execution of a Prolog program is a

More information

K Reference Card. Complete example

K Reference Card. Complete example K Reference Card Complete example package examples.example1 annotation doc : String class Date class Person { name : String age : Int ssnr : Int @doc("employee inherits from Person") class Employee extends

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Meta-Model Guided Error Correction for UML Models

Meta-Model Guided Error Correction for UML Models Final Thesis Meta-Model Guided Error Correction for UML Models by Fredrik Bäckström and Anders Ivarsson LITH-IDA-EX--06/079--SE 2006-12-13 Final Thesis Meta-Model Guided Error Correction for UML Models

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Incremental Flow Analysis. Andreas Krall and Thomas Berger. Institut fur Computersprachen. Technische Universitat Wien. Argentinierstrae 8

Incremental Flow Analysis. Andreas Krall and Thomas Berger. Institut fur Computersprachen. Technische Universitat Wien. Argentinierstrae 8 Incremental Flow Analysis Andreas Krall and Thomas Berger Institut fur Computersprachen Technische Universitat Wien Argentinierstrae 8 A-1040 Wien fandi,tbg@mips.complang.tuwien.ac.at Abstract Abstract

More information

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract Reverse Engineering with a CASE Tool Bret Johnson Research advisors: Spencer Rugaber and Rich LeBlanc October 6, 994 Abstract We examine using a CASE tool, Interactive Development Environment's Software

More information

Learning Language. Reference Manual. George Liao (gkl2104) Joseanibal Colon Ramos (jc2373) Stephen Robinson (sar2120) Huabiao Xu(hx2104)

Learning Language. Reference Manual. George Liao (gkl2104) Joseanibal Colon Ramos (jc2373) Stephen Robinson (sar2120) Huabiao Xu(hx2104) Learning Language Reference Manual 1 George Liao (gkl2104) Joseanibal Colon Ramos (jc2373) Stephen Robinson (sar2120) Huabiao Xu(hx2104) A. Introduction Learning Language is a programming language designed

More information

Operators (2A) Young Won Lim 10/2/13

Operators (2A) Young Won Lim 10/2/13 Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version

More information

Logic Programming Paradigm

Logic Programming Paradigm Logic Programming Paradigm Sample Courseware Logic Programming Paradigm Logic programming offers a formalism for specifying a computation in terms of logical relations between entities. A logic program

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

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

Recursion, Structures, and Lists

Recursion, Structures, and Lists Recursion, Structures, and Lists Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture 4 04/10/04 30/09/04 AIPP Lecture 3: Recursion, Structures, and Lists 1 The central ideas of Prolog

More information

ITT8060: Advanced Programming (in F#)

ITT8060: Advanced Programming (in F#) based on slides by Michael R. Hansen ITT8060: Advanced Programming (in F#) Lecture 2: Identifiers, values, expressions, functions and types Juhan Ernits Department of Software Science, Tallinn University

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

GGPerf: A Perfect Hash Function Generator Jiejun KONG June 30, 1997

GGPerf: A Perfect Hash Function Generator Jiejun KONG June 30, 1997 GGPerf: A Perfect Hash Function Generator Jiejun KONG June 30, 1997 Contents 1 Introduction................................. 1 1.1 Minimal Perfect Hash Function................ 1 1.2 Generators and Scripting....................

More information

Prolog. Reading: Sethi, Chapter 11. Overview. Predicate Calculus. Substitution and Unication. Introduction to Prolog. Prolog Inference Rules

Prolog. Reading: Sethi, Chapter 11. Overview. Predicate Calculus. Substitution and Unication. Introduction to Prolog. Prolog Inference Rules Prolog Reading: Sethi, Chapter 11. Overview Predicate Calculus Substitution and Unication Introduction to Prolog Prolog Inference Rules Programming in Prolog - Recursion - List Processing - Arithmetic

More information

ISO. International Organization for Standardization. ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM. Secretariat: USA (ANSI)

ISO. International Organization for Standardization. ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM. Secretariat: USA (ANSI) ISO/IEC JTC 1/SC 32 N 0736 ISO/IEC JTC 1/SC 32/WG 4 SQL/MM:VIE-006 January, 2002 ISO International Organization for Standardization ISO/IEC JTC 1/SC 32 Data Management and Interchange WG4 SQL/MM Secretariat:

More information

Requirements document for an automated teller machine. network

Requirements document for an automated teller machine. network Requirements document for an automated teller machine network August 5, 1996 Contents 1 Introduction 2 1.1 Purpose : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2 Scope

More information

Extending Jython. with SIM, SPARQL and SQL

Extending Jython. with SIM, SPARQL and SQL Extending Jython with SIM, SPARQL and SQL 1 Outline of topics Interesting features of Python and Jython Relational and semantic data models and query languages, triple stores, RDF Extending the Jython

More information

12th European Simulation Multiconference, Manchester, Uk, Discrete Event Simulation in Interactive Scientic and

12th European Simulation Multiconference, Manchester, Uk, Discrete Event Simulation in Interactive Scientic and 12th European Simulation Multiconference, Manchester, Uk, 1998 1 Discrete Event Simulation in Interactive Scientic and Technical Computing Environments T. Pawletta, Wismar University, Germany W. Drewelow,

More information

Small Lisp Reference Manual. Extracted from Appendix B of Symbolic Computing with Lisp. Prentice Hall, 1992.

Small Lisp Reference Manual. Extracted from Appendix B of Symbolic Computing with Lisp. Prentice Hall, 1992. Small Lisp Reference Manual Robert D. Cameron Anthony H. Dixon Extracted from Appendix B of Symbolic Computing with Lisp. Prentice Hall, 1992. 1 Lexical Structure A Small Lisp program consists of a stream

More information

What are Operators? - 1. Operators. What are Operators? - 2. Properties. » Position» Precedence class» associativity. » x + y * z. » +(x, *(y, z)).

What are Operators? - 1. Operators. What are Operators? - 2. Properties. » Position» Precedence class» associativity. » x + y * z. » +(x, *(y, z)). What are Operators? - 1 Functors Introduce operators to improve the readability of programs Operators syntactic sugar Based on Clocksin & Mellish Sections 2.3, 5.5 O-1 O-2 The arithmetic expression:» x

More information

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable).

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable). How to Make Zuse's Z3 a Universal Computer Raul Rojas January 14, 1998 Abstract The computing machine Z3, built by Konrad Zuse between 1938 and 1941, could only execute xed sequences of oating-point arithmetical

More information

Welcome to Teach Yourself Acknowledgments Fundamental C++ Programming p. 2 An Introduction to C++ p. 4 A Brief History of C++ p.

Welcome to Teach Yourself Acknowledgments Fundamental C++ Programming p. 2 An Introduction to C++ p. 4 A Brief History of C++ p. Welcome to Teach Yourself p. viii Acknowledgments p. xv Fundamental C++ Programming p. 2 An Introduction to C++ p. 4 A Brief History of C++ p. 6 Standard C++: A Programming Language and a Library p. 8

More information

11/6/17. Functional programming. FP Foundations, Scheme (2) LISP Data Types. LISP Data Types. LISP Data Types. Scheme. LISP: John McCarthy 1958 MIT

11/6/17. Functional programming. FP Foundations, Scheme (2) LISP Data Types. LISP Data Types. LISP Data Types. Scheme. LISP: John McCarthy 1958 MIT Functional programming FP Foundations, Scheme (2 In Text: Chapter 15 LISP: John McCarthy 1958 MIT List Processing => Symbolic Manipulation First functional programming language Every version after the

More information

Forward declaration of enumerations

Forward declaration of enumerations Doc. no.: N2499=08-0009 Date: 2008-01-09 Project: Programming Language C++ Reply to: Alberto Ganesh Barbati Forward declaration of enumerations 1 Introduction In C++03 every declaration

More information

Modern Programming Languages. Lecture LISP Programming Language An Introduction

Modern Programming Languages. Lecture LISP Programming Language An Introduction Modern Programming Languages Lecture 18-21 LISP Programming Language An Introduction 72 Functional Programming Paradigm and LISP Functional programming is a style of programming that emphasizes the evaluation

More information

Implementação de Linguagens 2016/2017

Implementação de Linguagens 2016/2017 Implementação de Linguagens Ricardo Rocha DCC-FCUP, Universidade do Porto ricroc @ dcc.fc.up.pt Ricardo Rocha DCC-FCUP 1 Logic Programming Logic programming languages, together with functional programming

More information

Overview. Introduction. Introduction XML XML. Lecture 16 Introduction to XML. Boriana Koleva Room: C54

Overview. Introduction. Introduction XML XML. Lecture 16 Introduction to XML. Boriana Koleva Room: C54 Overview Lecture 16 Introduction to XML Boriana Koleva Room: C54 Email: bnk@cs.nott.ac.uk Introduction The Syntax of XML XML Document Structure Document Type Definitions Introduction Introduction SGML

More information

FreePascal changes: user documentation

FreePascal changes: user documentation FreePascal changes: user documentation Table of Contents Jochem Berndsen February 2007 1Introduction...1 2Accepted syntax...2 Declarations...2 Statements...3 Class invariants...3 3Semantics...3 Definitions,

More information

perspective, logic programs do have a notion of control ow, and the in terms of the central control ow the program embodies.

perspective, logic programs do have a notion of control ow, and the in terms of the central control ow the program embodies. Projections of Logic Programs Using Symbol Mappings Ashish Jain Department of Computer Engineering and Science Case Western Reserve University Cleveland, OH 44106 USA email: jain@ces.cwru.edu Abstract

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

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

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

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

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

CPSC 3740 Programming Languages University of Lethbridge. Data Types

CPSC 3740 Programming Languages University of Lethbridge. Data Types Data Types A data type defines a collection of data values and a set of predefined operations on those values Some languages allow user to define additional types Useful for error detection through type

More information

On the Finiteness of the Recursive Chromatic Number

On the Finiteness of the Recursive Chromatic Number On the Finiteness of the Recursive Chromatic Number William I Gasarch Andrew C.Y. Lee Abstract A recursive graph is a graph whose vertex and edges sets are recursive. A highly recursive graph is a recursive

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 33 April 4, 2013 Patrick Lam version 1 Unied Modelling Language The Unied Modelling Language (UML) is a language for specifying and

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3

IEEE LANGUAGE REFERENCE MANUAL Std P1076a /D3 LANGUAGE REFERENCE MANUAL Std P1076a-1999 2000/D3 Clause 10 Scope and visibility The rules defining the scope of declarations and the rules defining which identifiers are visible at various points in the

More information

Prolog (cont d) Remark. Using multiple clauses. Intelligent Systems and HCI D7023E

Prolog (cont d) Remark. Using multiple clauses. Intelligent Systems and HCI D7023E Intelligent Systems and HCI D703E Lecture : More Prolog Paweł Pietrzak Prolog (cont d) 1 Remark The recent version of SWI- Prolog displays true and false rather than and no Using multiple clauses Different

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages

More information

9/7/17. Outline. Name, Scope and Binding. Names. Introduction. Names (continued) Names (continued) In Text: Chapter 5

9/7/17. Outline. Name, Scope and Binding. Names. Introduction. Names (continued) Names (continued) In Text: Chapter 5 Outline Name, Scope and Binding In Text: Chapter 5 Names Variable Binding Type bindings, type conversion Storage bindings and lifetime Scope Lifetime vs. Scope Referencing Environments N. Meng, S. Arthur

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

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 49 Plan of the course 1 Relational databases 2 Relational database design 3 Conceptual database design 4

More information

Common LISP-Introduction

Common LISP-Introduction Common LISP-Introduction 1. The primary data structure in LISP is called the s-expression (symbolic expression). There are two basic types of s-expressions: atoms and lists. 2. The LISP language is normally

More information

IBM Rational Rhapsody TestConductor Add On. Code Coverage Limitations

IBM Rational Rhapsody TestConductor Add On. Code Coverage Limitations IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations 1 Rhapsody IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations Release 2.7.1 2 License Agreement No part of this publication

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

Logic Languages. Hwansoo Han

Logic Languages. Hwansoo Han Logic Languages Hwansoo Han Logic Programming Based on first-order predicate calculus Operators Conjunction, disjunction, negation, implication Universal and existential quantifiers E A x for all x...

More information

Functional programming with Common Lisp

Functional programming with Common Lisp Functional programming with Common Lisp Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 81 Expressions and functions

More information

Expressions that talk about themselves. Maarten Fokkinga, University of Twente, dept. INF, Version of May 6, 1994

Expressions that talk about themselves. Maarten Fokkinga, University of Twente, dept. INF, Version of May 6, 1994 Expressions that talk about themselves Maarten Fokkinga, University of Twente, dept. INF, fokkinga@cs.utwente.nl Version of May 6, 1994 Introduction Self-reference occurs frequently in theoretical investigations

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

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

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

Operators (2A) Young Won Lim 10/5/13

Operators (2A) Young Won Lim 10/5/13 Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version

More information

INTERNATIONAL TELECOMMUNICATION UNION

INTERNATIONAL TELECOMMUNICATION UNION INTERNATIONAL TELECOMMUNICATION UNION ITU-T X.681 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (07/2002) SERIES X: DATA NETWORKS AND OPEN SYSTEM COMMUNICATIONS OSI networking and system aspects Abstract

More information

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27

CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 2.1-2.7 p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

Structure of Abstract Syntax trees for Colored Nets in PNML

Structure of Abstract Syntax trees for Colored Nets in PNML Structure of Abstract Syntax trees for Colored Nets in PNML F. Kordon & L. Petrucci Fabrice.Kordon@lip6.fr Laure.Petrucci@lipn.univ-paris13.fr version 0.2 (draft) June 26, 2004 Abstract Formalising the

More information

The Programming Language Core

The Programming Language Core The Programming Language Core Wolfgang Schreiner Research Institute for Symbolic Computation (RISC-Linz) Johannes Kepler University, A-4040 Linz, Austria Wolfgang.Schreiner@risc.uni-linz.ac.at http://www.risc.uni-linz.ac.at/people/schreine

More information

C-LANGUAGE CURRICULAM

C-LANGUAGE CURRICULAM C-LANGUAGE CURRICULAM Duration: 2 Months. 1. Introducing C 1.1 History of C Origin Standardization C-Based Languages 1.2 Strengths and Weaknesses Of C Strengths Weaknesses Effective Use of C 2. C Fundamentals

More information

Introduction to LISP. York University Department of Computer Science and Engineering. York University- CSE V.

Introduction to LISP. York University Department of Computer Science and Engineering. York University- CSE V. Introduction to LISP York University Department of Computer Science and Engineering York University- CSE 3401- V. Movahedi 11_LISP 1 Introduction to LISP Evaluation and arguments S- expressions Lists Numbers

More information

Research Report AI A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia

Research Report AI A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia Research Report AI 1989 02 A Numerical Equation Solver in Prolog Michael A. Covington Artificial Intelligence Programs The University of Georgia Athens, Georgia 30602 U.S.A. A Numerical Equation Solver

More information

Stating the obvious, people and computers do not speak the same language.

Stating the obvious, people and computers do not speak the same language. 3.4 SYSTEM SOFTWARE 3.4.3 TRANSLATION SOFTWARE INTRODUCTION Stating the obvious, people and computers do not speak the same language. People have to write programs in order to instruct a computer what

More information

The DBMS accepts requests for data from the application program and instructs the operating system to transfer the appropriate data.

The DBMS accepts requests for data from the application program and instructs the operating system to transfer the appropriate data. Managing Data Data storage tool must provide the following features: Data definition (data structuring) Data entry (to add new data) Data editing (to change existing data) Querying (a means of extracting

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

Overview of the Ruby Language. By Ron Haley

Overview of the Ruby Language. By Ron Haley Overview of the Ruby Language By Ron Haley Outline Ruby About Ruby Installation Basics Ruby Conventions Arrays and Hashes Symbols Control Structures Regular Expressions Class vs. Module Blocks, Procs,

More information

Towards a Semantic Web Modeling Language

Towards a Semantic Web Modeling Language Towards a Semantic Web Modeling Language Draft Christoph Wernhard Persist AG Rheinstr. 7c 14513 Teltow Tel: 03328/3477-0 wernhard@persistag.com May 25, 2000 1 Introduction The Semantic Web [2] requires

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

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2011.3.1 COMPUTER SCIENCE TRIPOS Part IB Monday 6 June 2011 1.30 to 4.30 COMPUTER SCIENCE Paper 3 Answer five questions. Submit the answers in five separate bundles, each with its own cover sheet.

More information

Program Design in PVS. Eindhoven University of Technology. Abstract. Hoare triples (precondition, program, postcondition) have

Program Design in PVS. Eindhoven University of Technology. Abstract. Hoare triples (precondition, program, postcondition) have Program Design in PVS Jozef Hooman Dept. of Computing Science Eindhoven University of Technology P.O. Box 513, 5600 MB Eindhoven, The Netherlands e-mail: wsinjh@win.tue.nl Abstract. Hoare triples (precondition,

More information

OMA Device Management Tree and Description Serialization

OMA Device Management Tree and Description Serialization OMA Device Management Tree and Description Serialization Approved 1.2 09 Feb 2007 Open Mobile Alliance OMA-TS-DM_TNDS-V1_2-20070209-A OMA-TS-DM_TNDS-V1_2-20070209-A Page 2 (19) Use of this document is

More information

How Actuate Reports Process Adhoc Parameter Values and Expressions

How Actuate Reports Process Adhoc Parameter Values and Expressions How Actuate Reports Process Adhoc Parameter Values and Expressions By Chris Geiss chris_geiss@yahoo.com How Actuate Reports Process Adhoc Parameter Values and Expressions By Chris Geiss (chris_geiss@yahoo.com)

More information

Inter-language reflection: A conceptual model and its implementation

Inter-language reflection: A conceptual model and its implementation Computer Languages, Systems & Structures 32 (2006) 109 124 www.elsevier.com/locate/cl Inter-language reflection: A conceptual model and its implementation Kris Gybels a,, Roel Wuyts b, Stéphane Ducasse

More information

Week 7 Prolog overview

Week 7 Prolog overview Week 7 Prolog overview A language designed for A.I. Logic programming paradigm Programmer specifies relationships among possible data values. User poses queries. What data value(s) will make this predicate

More information

EMBEDDED SYSTEMS PROGRAMMING Language Basics

EMBEDDED SYSTEMS PROGRAMMING Language Basics EMBEDDED SYSTEMS PROGRAMMING 2015-16 Language Basics "The tower of Babel" by Pieter Bruegel the Elder Kunsthistorisches Museum, Vienna (PROGRAMMING) LANGUAGES ABOUT THE LANGUAGES C (1972) Designed to replace

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