From beringer@DB.Stanford.EDU Wed Jun 24 17:37:25 1998 Received: from db.stanford.edu (Seaotter.Stanford.EDU [171.64.75.89]) by DB.Stanford.EDU (8.8.8/8.8.8) with ESMTP id RAA25305 for ; Wed, 24 Jun 1998 17:37:19 -0700 Message-ID: <35919BF4.A6DB5CC5@db.stanford.edu> Date: Wed, 24 Jun 1998 17:38:12 -0700 From: Dorothea Beringer X-Mailer: Mozilla 4.05 [en] (Win95; I) MIME-Version: 1.0 To: chaims@DB.Stanford.EDU Subject: Minutes weekly meeting 6/24/98 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mozilla-Status: 0001 Content-Length: 5104 Date[ June 24, 1998 ] Recordnr[ ] Who[ wp, lm, ks, db, rb Agenda[ Report HP-visit, report COTS-paper, comparison/computation for controlflow in megaprogram, day and time future meetings Minutes[ Dorothea reported on visit at HP (framework for workflow management: changengine) and on the articles on COTS in IEEE Software. Future weekly main CHAIMS-meetings (reports about papers read, conceptual discussions): Wednesday afternoon, 2pm to 3:30pm, in room 498 Get-started meeting beginning of the week (work-reports, planning and assignement of tasks, more technical discussions) mainly for Woody, Laurence and Dorothea: Monday, 11am, room 498 For further discussions Monday afternoon and Wednesday afternoon after the meeting are availabe, as necessary, i.e. the Wednesday meeting can sometimes become a full half-day workshop. (Other variant would be to half discussion/working meetings on Tuesday or Thursday afternoon.) Discussion about how to test on EXAMINE and ESTIMATE results: 1) Ron gave us some historic background, as none of the discussions that have taken place an year ago have really been documented. 2) We discussed various variants, and realized some limitations due to conceptual impossibilities or current limits by the current definition of the CHAIMS primitives. 3) Decision: we will allow in the CHAIMS language comparison between the primitive CHAIMS types (so far string, integer, boolean): = and != for all of them, <, <=, >, >= for integer. Woody implements this in the compiler for the transportation demo. Control-flow-data, user-data: We clearly have to distinguish between data used for the control-flow and user-data, and between processing control-flow data and processing user-data. Processing of user-data takes place in the megamodules. Processing of control-flow data takes either place in the megaprogram or in some special helper-modules (ATTENTION: a megaprogram should still be readable! If 20 lines are needed to code a simple comparison or control-data, this is no more the case). Where should take place what kind of processing? Comparison in the megaprogram, arithmetic over control-data in dedicated helper-modules? What kind of processing for control-data is needed? User-data can influence the control-flow, it can become control-data. Shold the megaprogram be allowed to look into datablobs or transform datablobs into simple types? Or should we allow user-data to be simple CHAIMS-types as well as datablobs? Getting control-flow information from megamodules: EXAMINE and ESTIMATE give back control-flow information, but not EXTRACT. EXTRACT right now can only give back name-value pairs (not yet lists of pairs) where the value is a blob. According to Ron, this is not what was initially discussed an year ago: EXTRACT should give back lists, where each value can either be a simple CHAIMS-type, or a blob. Whereas blobs are not touched by the megaprogram, control-flow information could be passed as simple CHAIMS-types, and thus be used by the megaprogram. Required changes in current infrastructure: - EXTRACT returns list of name-value pairs, where values can be either a simple CHAIMS type or a blob. - INVOKE takes as parameters blobs and simple CHAIMS types. - The types (string, integer, boolean or blob) of all parameters of all methods must be written down in the repository, for the megaprogrammer as well as for the compiler who has to check it. - The CHAIMS language has to be enhanced by elements that allow to get a single elements of a list returned by EXTRACT. ==> we will have to adress this quite soon when discussing a revision of the CHAIMS language. Helper-modules: In the current infrastructure the math-module is considered as a regular megamodule. It is accessed via a distribution protocol, and by the normal CHAIMS-primitives. Problem 1: if we wanted to use the math-megamodule for testing comparisons in a WHILE-statements that checks if a results is ready, we would have to do that also for getting back the result of the math-megamodule ==> infinite recursion. Problem 2: The SETATTRIBUTE, INVOKE, EXAMINE, EXTRACT quadruple is very clumsy for simple arithmetic, and asynchrony and remoteness really do not make much sense. Possible solution: - allow comparison of simple CHAIMS types in CHAIMS language - offer a math-helper-module for all arithmetic calculations of simple CHAIMS types Helper-modules would be neither remote, nor be invoked asynchronously. They would need slightly different CHAIMS-primitives. We will have to take up this subject again later on. Procedural language - WHILE/IF - boolean expressions: The CHAIMS-language as it is now is a procedural language (other possiblities would have been functional language, graphical language with rules like in HP-changenginge, query-language). WHILE and IF are needed for expressing rules. Should not logical expressions be allowed in CHAIMS? Further discussions are necessary. -- Dorothea Beringer Stanford University beringer@db.stanford.edu http://www-db.stanford.edu/people/beringer.html --