Representing Symbolic Reasoning

Size: px
Start display at page:

Download "Representing Symbolic Reasoning"

Transcription

1 Representing Symbolic Reasoning Brian Mastenbrook and Eric Berkowitz 1400 N. Roosevelt Blvd. Schaumburg, IL Abstract Introspection is a fundamental component of how we as humans reason, learn, and adapt. However, many existing computer reasoning systems exclude the possibility of introspection because their design does not allow a representation of their own reasoning procedures as data. Using a model of reasoning based on observable effect it is possible to test the abilitly of any given data structure to represent reasoning. Through such a model we present a minimal data structure necessary to record a computable reasoning process and define the operations that can be performed on this representation to facilitate computer reasoning. This model facilitates the introduction and development basic operations which perform reasoning tasks using data recorded in this format. Through this formal description of the structures and operations necessary to facilitate reasoning on and application of stored reasoning procedures provides a framework through which provable assertions about the nature and limits of symbolic reasoning can be made. Introduction The process of introspection is a fundamental component of human reasoning. Through the observation of our own reasoning process we are able to determine which processes eventually lead to desired goals and which processes do not produce s. Without this ability to reason about our own reasoning processes and experiences, faulty reasoning processes would remain undiscovered or unmodified. Our introspective abilities also provide the basis for our own ability to communicate about our reasoning - without this ability, our reasoning process would seem to us to be opaque and therefore incommunicable. Introspective reasoning for AI is a process which has been defined in many ways. In a logical formal system, introspection is meta-reasoning - the process of forming assertions about the behavior of one s own reasoning process (McCarthy 1995). In traditional Case-Based Reasoning (), introspection has been modeled by the addition of a separate reasoning engine which contains a model of the ideal performance of the domain reasoning system and which can modify the domain reasoning system s behavior to optimize its performance (Fox 1995). Thus, these systems can be seen has being composed of two systems - one whose domain is the original target domain of the system, and the other whose domain is reasoning procedures which operate on the target domain (Figure 1). Domain Introspective Figure 1: Introspective systems are composed of two components. In introspective systems which are defined in this fashion, the introspective portion of the reasoning system can only operate on a specific domain - the domain portion of the system (Leake 1995; David B. Leake & Wilson 1995). In order to construct a system which can introspect about its own introspective reasoning behavior, a third level of would need to be added (Figure 2). This third reasoning engine now operates on reasoning procedures which operate on reasoning procedures which operate on the target domain. The two introspective components of this system are quite similar in purpose and operation; however, because traditional contains a model of the domain as an integral component of the reasoning engine, each layer must be distinct. Domain Introspective Introspective Figure 2: A hypothetical system which introspects about its own introspection. In a system which does not use domain knowledge as part of its implemented reasoning procedure (Berkowitz 2001), this need for the separation of the introspective components of the system from the domain portion of the system is potentially removable. In order for this to occur, the organization of the data and the construction of the domain-independent reasoning procedures must support the process of reasoning about the

2 system s own stored reasoning procedure. We present here a formally specified data structure which is capable of recording reasoning procedures which are complex enough to support introspective reasoning. This formal organization of data is designed to support the development of algorithms which are capable of reasoning on recorded reasoning data. We then show how this data structure can be used by algorithms to perform reasoning procedures which model basic introspective reasoning tasks. The Basis of Introspective Reasoning Defining reasoning for the purpose of understanding it is a difficult task. For the human reasoner, the actual methods by which we reason are opaque, thus making it difficult to define reasoning in a way that our behavior can be immediately replicated in a computable system. While the process of reasoning may be opaque, its effects and inters are clearly observable. Reasoning systems take as input a sequence of events, each of whom may represent some data to be reasoned about. What is produced depends on the nature of the system to some degree; however, as a general statement any kind of output from a reasoning system whose goal is to interact with or model portions of the external world produces predictions as output. For a system whose goal is to decide its own future s, the predictions represent chosen s which are then implemented. event 2 event 1 Reasoning Engine event 0 prediction 0 prediction 1 prediction 2 Figure 3: A basic reasoning system. Predictions range from chosen s to pure predictions of future events. One possible form of computer introspection is for a reasoning system to process its own algorithms and explicitly modify them. These algorithms, once input, are treated as data just like any set of external data input to the system. This system must then understand that modifying this collection of data will in modifications to itself. McCarthy categorized this kind of introspection as easy introspection and explained how this kind of introspection cannot accomplish certain commonsense tasks (McCarthy 1995). McCarthy proposes that introspection can be introduced into problem solving in a rather simple way letting s depend on the state of the mind and not just on the state of the external world as revealed by observation. This kind of serious introspection introduces into a reasoning engine the ability to reason about its own state information, such as reasoning about the contents of its own body of knowledge, by directly querying itself for this information. This kind of introspection allows the formulation of statements such as I do not know X, where X is some piece of knowledge, and other general statements about one s own knowledge (McCarthy 1984). While obtaining this kind of state information is important, we do not feel it encompasses all introspective behavior. As an example, consider the behavior of a person who is predicting their own potential behavior in a situation. This person is drawing on a large body of remembered introspective information to form this prediction and using this information to model their own reasoning process. However, they are not directly querying their own cognitive process for a piece of information, nor are they using an understanding of their own algorithms to carry out this process. What is remembered is enough to consciously reconstruct our own behavior, despite potential differences between past remembered situations and the hypothetical situation. Thus, we must remember our own reasoning process in a way that can facilitate this prediction. Without an actual understanding of the algorithms which implement reasoning in a given system, all that can be known is the intentions and effects of that reasoning system - the thoughts and s taken by the system in the past. Our model of reasoning (Figure 3) suggests that this data would consist of the sequence of events event n merged with the set of predictions prediction n in temporal order. However, what is not present in this sequence is the considerations taken by the reasoning engine in forming the sequence of predictions. Thus, the reasoning engine also must produce a journal of events grounded only in the operation of the reasoning system itself, not the mechanics of the domain it operates in. A process which replays a recorded combined sequence of external and internal events by re-running the events recorded in this journal should obtain the same set of predictions originally created by the system. If this journal of reasoning processes were produced by a domain-specific reasoning engine (one that used domain knowledge not obtained by inter with the external world or from remembered prior events), then replaying this journal accomplishes the same s without any domain-specific reasoning provided the situations are identical. An algorithm which modifies prior recorded sequences to accommodate differences between the recorded environment and the current environment would then be accomplishing a reasoning task by direct application of memory without any domain knowledge. Though the events used and predictions generated all fall within a specific domain, the algorithm would be operating in a domain-blind fashion. The domain independence of an algorithm which operates according to these general principles allows this al-

3 gorithm the ability to reason about its own behavior, no matter which domain this behavior was obtained from thus avoiding the infinite staircase of separate introspective systems which occurs when general introspection is added to a domain-specific reasoning system. Representing Reasoning The development of a general formalism for reasoning relies strongly on the actual representation of the reasoning data (Griffiths & Bridge 1995). Using the affective model of reasoning defined above (Figure 3), one simple model that could be constructed is an ordered list composed of each event, followed by any journaled reasoning events reason n, including any predictions created by the engine as part of its process. The creation of a basic concrete data type to encapsulate these events involves the development of a data organization capable of representing these events. The most basic data type in any symbolic reasoning system is the symbol. Thus, the most basic data type available to us to represent a reasoning process is an ordered set (or list) of symbols. Because the purpose of the construction of this data type is to support introspective reasoning, it must be determined whether basic introspective tasks can be supported using this data type. In order to introspect about or remember a prior recored sequence, there must be some way of differentiating that remembered sequence from actual events which are now occurring. This differentiation is a fundamental component of introspective reasoning and is such a syntactic property of any concrete representation of reasoning. This type of differentiation or quoting can be introduced into this data format by means of tag symbols which differentiate quoted data or by positional specifiers which would only allow quoted data at certain positions in the list. Reasoning behavior in complex domains also depends on the ability to select portions of observed data for use in the reasoning process and ignore other portions. In a list data structure, the simplest form of selection is the creation of a sublist a list which contains two symbols from a given list and every symbol between them. However, it is not possible to combine these two basic reasoning tasks in this data format, as taking a sublist can remove the quoting present and cause symbols which would otherwise be treated as remembered data to be active symbols in the stream. When developing a concrete data structure to support reasoning, no one basic operation of reasoning should cause such an unintended effect on the syntactic meaning of the data. To rectify the situation, we could introduce a quoting level for each symbol, which would serve as an indication of how many times this sequence has been quoted. When quoting a sequence, the quoting level of each symbol in the sequence would be increased by the current level of the symbols where the quoting level takes place plus one. As an example of how this might work: a 0 b 0 c 0 begin-quote 0 a 1 end-quote 0 However, each element of the list is now non-atomic, as it is now composed of a symbol and an integer. Furthermore, integers are a data type which is non-symbolic. The ordered pairs in this data representation can be interpteted as single-paramater functions named by the first element of the ordered pair. In this interpretation, the predictions generated by a reasoning engine would be excecuted on some lower level of functions which govern the system s inter with its domain. These executed functions would produce responses, which would in turn be input to the system as new events. In fact, this interpretation allows the data format to encompass more complex data formats in a straightforward manner. A function which constructs a complex data type out of some number of symbols can be recreated as a function which Currys its paramaters and also represents the actual structure. As a simple example, the function three-tuple could turn its argument into a function expecting three paramaters, and the functions first, second, and third could retrieve these from an initialized 3-tuple. Other complex data formats such as graphs could be constructed through smaller functions creating vertices and edges. Though this method unambiguous quoting of other lists can also be accomplished. In order to quote an arbitrarily-sized data structure such as a list, the function which represents the list must Curry infinitely, always accepting new data paramaters. The list (a b) (c d) can then be quoted via these constructions in a manner similar to the following: (list s) (pair p 1 ) (p 1 a) (p 1 b) (pair p 2 ) (p 2 c) (p 2 d) (s p 1 ) (s p 2 ) This method of quoting now resolves the ambiguity introduced by the use of place values or single symbols to differentiate quoted elements in a list of symbols. Taking a sublist of this quoted list, (p 1 a) (p 1 b) does remove the meaning associated with the function p1 due to the removal of the definition of p 1 ; however, the elements a and b are now designated as being data elements or function paramaters. Unlike the methods of quoting introduced for lists of symbols, here sublists of quoted elements can no longer be confused for active elements in the system. Performing Basic Reasoning Basic reasoning depends heavily on the ability to form a prediction of an internal or external response to a sequence of events. These predictions, when composed of potential internal responses, are the most basic form of intended. Some intentions are consciously reflected upon before being acted; others are simply implemented and potentially remembered for later use. We will show here how s of the second type can

4 be modeled, and by using the introspective capabilities of this model s of the first type can be modeled as well. Our model of basic reasoning suggests that the reasoning process itself can be treated as data. What portions of this process should be recorded and what portions omitted? In order to serve as a useful model, what is recorded should be enough to re-apply the given reasoning process if the factors considered as input to the process are the same. In other words, if the sequence of events which are considered by the reasoning process during the formation of its prediction are the same, then the prediction itself can be re-used in the given situation. Factors which might alter the making process should be explicitly included in the data. Through re-application of recorded reasoning processes, a system can attempt to model the behavior shown in those reasoning processes. If all the factors which influenced the behavior are available, then the behavior of the system itself will be identical. When the factors available are not identical to any prior recorded sequence, then one of two strategies can be pursued. The system may attempt to form an incomplete map between the current situation and some prior situation, or the system may attempt to use higher-order reasoning processes to create a new strategy. If this system can use its basic reasoning procedures to model its own behavior, then through the process of reproducing its own behavior it can model a higher-order process which would attempt to modify that behavior. How can a system use the data recorded by itself to model its own behavior? This data is a representation in structured symbolic form of the behavior of an algorithmic process. To recreate this complex behavior it must first be understood how to recreate the behavior of a simple algorithmic system. Consider a basic process as recorded. The process has four components: the, the act of testing the, the of testing the, and some implemented as a of this. In the most basic case, this can be modeled using four ordered pairs of symbols: given Figure 4: A basic process Each of the four pairs represents a separate step of the process. The pair (given ) represents the input of data to the system. The pair ( ) represents a call to a lowlevel procedure represented as an opaque functional application. The pair ( ) represents the returned from the low-level procedure as a boolean true or affirmative The pair ( ) represents some carried out as a consequence of this. Creating a correspondence between a new given set of and this list allows us to predict the remainder of the list: given given Figure 5: Predicting the rest of the process Thus, the next step in the process is to implement the ing prediction by carrying out the process: given given Figure 6: Carrying out the process Because the of this low-level matched the in the given list, the ing from this process can likewise be implemented. However, what if the was not the same? It may be possible to find given given Figure 7: An which does not match another prior experience which more closely matches the current ; however, if such a list is not available, some form of adaptation is required. One simple form of adaptation is to ignore the differing and carry out the specified: Recreating the behavior of complex reasoning procedures can then be accomplished via two tasks. The amount of data available to a reasoning system which records its own s for further use is overwhelmingly large. Thus, some process must select data that is to be considered for the reasoning process. The second portion of this process of modeling reasoning is the formation of a mapping between the chosen data and the recent history of events. These processes are complex; however, through the development of a formal data model we hope to enable the development of algorithms which accomplish these tasks as well as provable bounds on their operation. A simple form of mapping can be used to recreate the behavior of complex algorithm procedures. One such no

5 given given left blank Figure 8: Ignoring the unmatched algorithm is the Euclidean Aglorithm for finding the greatest common divisor (GCD) of two numbers. This algorithm operates on the positive integers and uses two s in the determination of its answer. Thus, for every pair of input numbers these s must be represented in the symbolic format. In order to serve as an effective model for actually implementing the recreation of the algorithm, the data should also be capable of being interpreted as a series of functional applications which create the data used in future steps of the algorithm. The Euclidian Algorithm can be expressed in a simple pseudocode as the following: gcd(m, n) := if (m < n) swap(n, m) if (m MOD n == 0) n else gcd(m MOD n, n) To construct a symbolic representation of the s of this algorithm on a given case, we will walk through the behavior of this algorithm in that case. Here, the numbers chosen will be 9 and 15. The symbol here will represent an ordered pair containing these two numbers. Using the basic model of a procedure as given above, we can represent the first part of this algorithm s behavior on the given numbers: (gcd ) (less-than ) ( ) (swap ) Because 9 is less than 15, the algorithm swaps these numbers. The second step is to test the mod of the two numbers to see if it is zero: (mod ) ( 6) (zero 6) ( no) Here, 6 is merely a symbol representing the number six. Because the is negative, we must find the GCD of m MOD n and n. To do this, we must construct an ordered pair of these two numbers. This will be done by using a currying function as defined earlier. (make-pair q) (second-value ) ( 9) (q 9) (q 6) (gcd q) Now, the process begins over again with 9 and 6: (less-than q) ( no) Because the values to the recursive calls of the algorithm are input in the proper order, we do not have to swap the two numbers. (mod q) ( 3) (zero 3) ( no) (make-pair r) (second-value q) ( 6) (r 6) (r 3) (gcd r) We have one more recursive call to complete. (less-than ) ( no) (mod ) ( 0) (zero ) ( ) (gcd-answer 3) Because 6 MOD 3 is 0, we have found the GCD of the two numbers. The complete representation for this process is now as follows: (gcd ) (less-than ) ( ) (swap ) (mod ) ( 6) (zero 6) ( no) (make-pair q) (second-value ) ( 9) (q 9) (q 6) (gcd q) (less-than q) ( no) (mod q) ( 3) (zero 3) ( no) (make-pair r) (second-value q) ( 6) (r 6) (r 3) (gcd r) (less-than ) ( no) (mod ) ( 0) (zero ) ( ) (gcd-answer 3) This representation of the algorithmic process includes the responses chosen by the algorithm to each possible different response from each of the s made by the algorithm. Because of that property, this case serves as a template for future modeling of the behavior of the algorithm. Higher-Order Introspective Reasoning Introspective reasoning is the act of reasoning with selfknowledge. Self-knowledge is a broad concept and includes many factors such as the direct-query introspection of McCarthy which allows a system to directly obtain knowledge about its cognitive processes and layers via queries such as do I know X?. However, there is a more indirect form of self-knowledge which allows us to pose questions of the form what would I do given X?. This form of self-knowledge is not accomplished via an actual understanding of the algorithms which produce the behavior but instead based on some conscious recreation of the process. There are two ways in which this introspective process can be modeled. The first way a system could model its own behavior consciously is to quote data recorded from prior reasoning processes and map it to other quoted data describing a hypothetical situation. Thus, quoting the procedure given in Figure 4 would produce the following: (list s) (pair p 1 ) (p 1 given) (p 1 ) (pair p 2 ) (p 2 ) (p 2 ) (pair p 3 ) (p 3 ) (p 3 ) (pair p 4 ) (p 4 ) (p 4 ) This method allows the system to form a potential answer the what would I do given X question. however, it does not allow the system to change that answer on a dynamic basis. Furthermore, while this process uses the map portion of the reasoning process, it does not allow the modeling of the portion which chooses a case.

6 The other way a system could model its own behavior would be to actually record the processes used to select events and map them. This form of introspection now allows the system to model not just the s of forming a mapping but the methods by which it is accomplished without having an actual description of the algorithm used. Furthermore, by modifying the data used in this process the system could modify its own behavior. If such a reasoning system could not just predict its own s but modify them, then it could demonstrate a capacity for expansion. This expansion would be a true introspective expansion marked by the capability to model and modify the processes by which one reasons. More than simply reasoning about our own knowledge (McCarthy 1990), this kind of introspection allows the system to control its own behavior consciously by simulating its behavior and making appropriate modifications. We believe that future systems which include this ability can demonstrate this type of expansion and growth. Leake, D. B Experience, introspection, and expertise: Learning to refine the case-based reasoning process. Journal of Experimental and Theoretical Artificial Intelligence. McCarthy, J Some expert systems need common sense. In Proc. of a symposium on Computer culture: the scientific, intellectual, and social impact of the computer, New York Academy of Sciences. McCarthy, J Ascribing mental qualities to machines. Ablex Publishing Corporation. McCarthy, J Making robots conscious of their mental states. In Working Notes of the AAAI Spring Symposium on Representing Mental States and Mechanisms. Conclusion The process of developing algorithms to support symbolic and introspective reasoning requires a great deal of thought into the nature of these domains. By specifying the a data type and an approach to these methods, it is our hope that the development of these algorithms can be enabled. Furthermore, this minimal approach allows for the formulation of provable statements on the bounds of these systems. Introspective reasoning requires a domainindependent approach to reasoning technique. The model presented here demonstrates one method of achieving this domain independence in a way which is designed to allow the development of future algorithms. Through clarifying the nature of introspective reasoning, we hope that future introspective systems can be developed which allow for complex self-knowledge and learning. References Berkowitz, E. G Body based reasoning using a feeling-based lexicon, mental imagery and an objectoriented metaphor hierarchy. In Proceedings of the 14th Biennial Conference of the Canadian Society for Computational Studies of Intelligence, AI 2001, David B. Leake, A. K., and Wilson, D Learning to improve case adaptation by introspective reasoning and cbr. In Proceedings of the First International Conference on Case-Based Reasoning. Fox, S Introspective Learning for Case-Based Planning. Ph.D. Dissertation, Indiana University. Griffiths, A. D., and Bridge, D. G Formalising the knowledge content of case memory systems. In UK Workshop on Case-Based Reasoning,

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

One of the most important areas where quantifier logic is used is formal specification of computer programs.

One of the most important areas where quantifier logic is used is formal specification of computer programs. Section 5.2 Formal specification of computer programs One of the most important areas where quantifier logic is used is formal specification of computer programs. Specification takes place on several levels

More information

Cognitive Walkthrough. Francesca Rizzo 24 novembre 2004

Cognitive Walkthrough. Francesca Rizzo 24 novembre 2004 Cognitive Walkthrough Francesca Rizzo 24 novembre 2004 The cognitive walkthrough It is a task-based inspection method widely adopted in evaluating user interfaces It requires: A low-fi prototype of the

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Theoretical Computer Science

Theoretical Computer Science Theoretical Computer Science 410 (2009) 3372 3390 Contents lists available at ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs An (18/11)n upper bound for sorting

More information

Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Why Start with Design? Object-oriented thinking begins with objectoriented design It is the easiest way to see the problems of

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 01: Procedural Programming MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Procedural Programming 2 Introduction Procedural Programming: General Overview Procedural Programming:

More information

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Markus Krötzsch Pascal Hitzler Marc Ehrig York Sure Institute AIFB, University of Karlsruhe, Germany; {mak,hitzler,ehrig,sure}@aifb.uni-karlsruhe.de

More information

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen Formal semantics of loosely typed languages Joep Verkoelen Vincent Driessen June, 2004 ii Contents 1 Introduction 3 2 Syntax 5 2.1 Formalities.............................. 5 2.2 Example language LooselyWhile.................

More information

Lecture Notes on Contracts

Lecture Notes on Contracts Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,

More information

Software Engineering: Integration Requirements

Software Engineering: Integration Requirements Software Engineering: Integration Requirements AYAZ ISAZADEH Department of Computer Science Tabriz University Tabriz, IRAN Abstract: - This paper presents a discussion of software integration requirements,

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

More information

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable

More information

Nonmonotonic Databases and Epistemic Queries*

Nonmonotonic Databases and Epistemic Queries* Nonmonotonic Databases and Epistemic Queries* Vladimir Lifschitz Department of Computer Sciences and Department of Philosophy University of Texas at Austin Austin, TX 78712, U. S. A. Abstract The approach

More information

6.001 Notes: Section 17.5

6.001 Notes: Section 17.5 6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how

More information

Scan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8

Scan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8 CSE341T/CSE549T 09/17/2014 Lecture 8 Scan and its Uses 1 Scan Today, we start by learning a very useful primitive. First, lets start by thinking about what other primitives we have learned so far? The

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

An expert network simulation and design system

An expert network simulation and design system An expert network simulation and design system An expert network simulation and design system Bhavani M. Thuraisingham Bhavani M. Thuraisingham Honey well Inc., Corporate Systems Development Division 1000

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Organizing Information. Organizing information is at the heart of information science and is important in many other

Organizing Information. Organizing information is at the heart of information science and is important in many other Dagobert Soergel College of Library and Information Services University of Maryland College Park, MD 20742 Organizing Information Organizing information is at the heart of information science and is important

More information

Simulating Task Models Using Concrete User Interface Components

Simulating Task Models Using Concrete User Interface Components Simulating Task Models Using Concrete User Interface Components David Paquette Department of Computer Science University of Saskatchewan dnp972@cs.usask.ca April 29, 2004 Abstract Interaction Templates

More information

A Theory of Parallel Computation The π-calculus

A Theory of Parallel Computation The π-calculus A Theory of Parallel Computation The π-calculus Background DFAs, NFAs, pushdown automata, Turing machines... All are mathematical entities that model computation. These abstract systems have concrete,

More information

A Study of Future Internet Applications based on Semantic Web Technology Configuration Model

A Study of Future Internet Applications based on Semantic Web Technology Configuration Model Indian Journal of Science and Technology, Vol 8(20), DOI:10.17485/ijst/2015/v8i20/79311, August 2015 ISSN (Print) : 0974-6846 ISSN (Online) : 0974-5645 A Study of Future Internet Applications based on

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Optimizing Closures in O(0) time

Optimizing Closures in O(0) time Optimizing Closures in O(0 time Andrew W. Keep Cisco Systems, Inc. Indiana Univeristy akeep@cisco.com Alex Hearn Indiana University adhearn@cs.indiana.edu R. Kent Dybvig Cisco Systems, Inc. Indiana University

More information

CS /534 Compiler Construction University of Massachusetts Lowell. NOTHING: A Language for Practice Implementation

CS /534 Compiler Construction University of Massachusetts Lowell. NOTHING: A Language for Practice Implementation CS 91.406/534 Compiler Construction University of Massachusetts Lowell Professor Li Xu Fall 2004 NOTHING: A Language for Practice Implementation 1 Introduction NOTHING is a programming language designed

More information

STABILITY AND PARADOX IN ALGORITHMIC LOGIC

STABILITY AND PARADOX IN ALGORITHMIC LOGIC STABILITY AND PARADOX IN ALGORITHMIC LOGIC WAYNE AITKEN, JEFFREY A. BARRETT Abstract. Algorithmic logic is the logic of basic statements concerning algorithms and the algorithmic rules of deduction between

More information

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands

Subject: Scheduling Region Questions and Problems of new SystemVerilog commands Subject: Scheduling Region Questions and Problems of new SystemVerilog commands I have read and re-read sections 14-17 of the SystemVerilog 3.1 Standard multiple times and am still confused about exactly

More information

Uncertain Data Models

Uncertain Data Models Uncertain Data Models Christoph Koch EPFL Dan Olteanu University of Oxford SYNOMYMS data models for incomplete information, probabilistic data models, representation systems DEFINITION An uncertain data

More information

Star Decompositions of the Complete Split Graph

Star Decompositions of the Complete Split Graph University of Dayton ecommons Honors Theses University Honors Program 4-016 Star Decompositions of the Complete Split Graph Adam C. Volk Follow this and additional works at: https://ecommons.udayton.edu/uhp_theses

More information

ebook library PAGE 1 HOW TO OPTIMIZE TRANSLATIONS AND ACCELERATE TIME TO MARKET

ebook library PAGE 1 HOW TO OPTIMIZE TRANSLATIONS AND ACCELERATE TIME TO MARKET ebook library PAGE 1 HOW TO OPTIMIZE TRANSLATIONS AND ACCELERATE TIME TO MARKET Aligning people, process and technology to improve quality and speed to market To succeed in the global business arena, companies

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

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

2. Neural network basics

2. Neural network basics 2. Neural network basics Next commonalities among different neural networks are discussed in order to get started and show which structural parts or concepts appear in almost all networks. It is presented

More information

Symbolic Execution and Proof of Properties

Symbolic Execution and Proof of Properties Chapter 7 Symbolic Execution and Proof of Properties Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program

More information

15 Unification and Embedded Languages in Lisp

15 Unification and Embedded Languages in Lisp 15 Unification and Embedded Languages in Lisp Chapter Objectives Chapter Contents Pattern matching in Lisp: Database examples Full unification as required for Predicate Calculus problem solving Needed

More information

Annotation Science From Theory to Practice and Use Introduction A bit of history

Annotation Science From Theory to Practice and Use Introduction A bit of history Annotation Science From Theory to Practice and Use Nancy Ide Department of Computer Science Vassar College Poughkeepsie, New York 12604 USA ide@cs.vassar.edu Introduction Linguistically-annotated corpora

More information

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards What to Architect? How to Architect? IEEE Goals and Objectives Chartered by IEEE Software Engineering Standards Committee to: Define

More information

Domain Specific Search Engine for Students

Domain Specific Search Engine for Students Domain Specific Search Engine for Students Domain Specific Search Engine for Students Wai Yuen Tang The Department of Computer Science City University of Hong Kong, Hong Kong wytang@cs.cityu.edu.hk Lam

More information

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen COP4020 Programming Languages Functional Programming Prof. Robert van Engelen Overview What is functional programming? Historical origins of functional programming Functional programming today Concepts

More information

Arithmetic Processing

Arithmetic Processing CS/EE 5830/6830 VLSI ARCHITECTURE Chapter 1 Basic Number Representations and Arithmetic Algorithms Arithmetic Processing AP = (operands, operation, results, conditions, singularities) Operands are: Set

More information

C++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5

C++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5 C++ Data Types Contents 1 Simple C++ Data Types 2 2 Quick Note About Representations 3 3 Numeric Types 4 3.1 Integers (whole numbers)............................................ 4 3.2 Decimal Numbers.................................................

More information

Instances and Classes. SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci. 24 Summer 1999 intelligence

Instances and Classes. SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci. 24 Summer 1999 intelligence Instances and Classes in SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci 24 Summer 1999 intelligence Software Engineering Over the past decade or so, one of the many areas that artificial intelligence

More information

COP 4516: Math for Programming Contest Notes

COP 4516: Math for Programming Contest Notes COP 4516: Math for Programming Contest Notes Euclid's Algorithm Euclid's Algorithm is the efficient way to determine the greatest common divisor between two integers. Given two positive integers a and

More information

Handout 10: Imperative programs and the Lambda Calculus

Handout 10: Imperative programs and the Lambda Calculus 06-02552 Princ of Progr Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 10: Imperative programs and the Lambda Calculus

More information

One-Point Geometric Crossover

One-Point Geometric Crossover One-Point Geometric Crossover Alberto Moraglio School of Computing and Center for Reasoning, University of Kent, Canterbury, UK A.Moraglio@kent.ac.uk Abstract. Uniform crossover for binary strings has

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Actionable User Intentions for Real-Time Mobile Assistant Applications

Actionable User Intentions for Real-Time Mobile Assistant Applications Actionable User Intentions for Real-Time Mobile Assistant Applications Thimios Panagos, Shoshana Loeb, Ben Falchuk Applied Research, Telcordia Technologies One Telcordia Drive, Piscataway, New Jersey,

More information

Types of recursion. Structural vs. general recursion. Pure structural recursion. Readings: none. In this module: learn to use accumulative recursion

Types of recursion. Structural vs. general recursion. Pure structural recursion. Readings: none. In this module: learn to use accumulative recursion Types of recursion Readings: none. In this module: learn to use accumulative recursion learn to recognize generative recursion CS 135 Fall 2018 07: Types of recursion 1 Structural vs. general recursion

More information

Fundamentals of the J Programming Language

Fundamentals of the J Programming Language 2 Fundamentals of the J Programming Language In this chapter, we present the basic concepts of J. We introduce some of J s built-in functions and show how they can be applied to data objects. The pricinpals

More information

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology

More information

Two Comments on the Principle of Revealed Preference

Two Comments on the Principle of Revealed Preference Two Comments on the Principle of Revealed Preference Ariel Rubinstein School of Economics, Tel Aviv University and Department of Economics, New York University and Yuval Salant Graduate School of Business,

More information

CSC 533: Programming Languages. Spring 2015

CSC 533: Programming Languages. Spring 2015 CSC 533: Programming Languages Spring 2015 Functional programming LISP & Scheme S-expressions: atoms, lists functional expressions, evaluation, define primitive functions: arithmetic, predicate, symbolic,

More information

An Architecture for Semantic Enterprise Application Integration Standards

An Architecture for Semantic Enterprise Application Integration Standards An Architecture for Semantic Enterprise Application Integration Standards Nenad Anicic 1, 2, Nenad Ivezic 1, Albert Jones 1 1 National Institute of Standards and Technology, 100 Bureau Drive Gaithersburg,

More information

CS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK

CS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK CS 6402 DESIGN AND ANALYSIS OF ALGORITHMS QUESTION BANK Page 1 UNIT I INTRODUCTION 2 marks 1. Why is the need of studying algorithms? From a practical standpoint, a standard set of algorithms from different

More information

UC Irvine UC Irvine Previously Published Works

UC Irvine UC Irvine Previously Published Works UC Irvine UC Irvine Previously Published Works Title Differencing and merging within an evolving product line architecture Permalink https://escholarship.org/uc/item/0k73r951 Authors Chen, Ping H Critchlow,

More information

Lecture 1. Introduction

Lecture 1. Introduction Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm

More information

FIGURE 3. Two-Level Internet Address Structure. FIGURE 4. Principle Classful IP Address Formats

FIGURE 3. Two-Level Internet Address Structure. FIGURE 4. Principle Classful IP Address Formats Classful IP Addressing When IP was first standardized in September 1981, the specification required that each system attached to an IP-based Internet be assigned a unique, 32-bit Internet address value.

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

Categorizing Migrations

Categorizing Migrations What to Migrate? Categorizing Migrations A version control repository contains two distinct types of data. The first type of data is the actual content of the directories and files themselves which are

More information

Part (04) Introduction to Programming

Part (04) Introduction to Programming Part (04) Introduction to Programming Dr. Ahmed M. ElShafee 1 Dr. Ahmed ElShafee, ACU : Summer 2014, Introduction to CS 1 EVOLUTION To write a program for a computer, we must use a computer language. A

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

With IBM BPM 8.5.5, the features needed to express both BPM solutions and case management oriented solutions comes together in one offering.

With IBM BPM 8.5.5, the features needed to express both BPM solutions and case management oriented solutions comes together in one offering. Case Management With the release of IBM BPM 8.5.5, case management capabilities were added to the product. It must be noted that these functions are only available with IBM BPM Advanced and the Basic Case

More information

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT Petr Smolík, Tomáš Hruška Department of Computer Science and Engineering, Faculty of Computer Science and Engineering, Brno University

More information

P1 Engineering Computation

P1 Engineering Computation 1EC 2001 1 / 1 P1 Engineering Computation David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/1ec Hilary 2001 1EC 2001 2 / 1 Algorithms: Design, Constructs and Correctness 1EC 2001

More information

S E C T I O N O V E R V I E W

S E C T I O N O V E R V I E W AN INTRODUCTION TO SHELLS S E C T I O N O V E R V I E W Continuing from last section, we are going to learn about the following concepts: understanding quotes and escapes; considering the importance of

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines Separating Product Variance and Domain Concepts in the Specification of Software Product Lines Pertti Kellomäki Software Systems Laboratory, Tampere University of Technology P.O. Box 553, FIN-33101 Tampere,

More information

Configuration management for Lyee software

Configuration management for Lyee software Knowledge-Based Systems 16 (2003) 441 447 www.elsevier.com/locate/knosys Configuration management for Lyee software V. Gruhn*, R. Ijioui, D. Peters, C. Schäfer Faculty of Mathematics and Computer Science,

More information

Testing a Set of Image Processing Operations for Completeness

Testing a Set of Image Processing Operations for Completeness Testing a Set of Image Processing Operations for Completeness Leonard Brown Le Gruenwald The University of Oklahoma School of Computer Science Norman, OK, 73019 lbrown@cs.ou.edu, gruenwal@cs.ou.edu Greg

More information

6.871 Expert System: WDS Web Design Assistant System

6.871 Expert System: WDS Web Design Assistant System 6.871 Expert System: WDS Web Design Assistant System Timur Tokmouline May 11, 2005 1 Introduction Today, despite the emergence of WYSIWYG software, web design is a difficult and a necessary component of

More information

A SCHEME UNIT-TESTING FRAMEWORK

A SCHEME UNIT-TESTING FRAMEWORK A SCHEME UNIT-TESTING FRAMEWORK Sara von Mosch Division of Science and Mathematics University of Minnesota, Morris vonmoss@mrs.umn.edu Scott Lewandowski Division of Science and Mathematics University of

More information

Lecture Notes on Liveness Analysis

Lecture Notes on Liveness Analysis Lecture Notes on Liveness Analysis 15-411: Compiler Design Frank Pfenning André Platzer Lecture 4 1 Introduction We will see different kinds of program analyses in the course, most of them for the purpose

More information

Visual Design. Simplicity, Gestalt Principles, Organization/Structure

Visual Design. Simplicity, Gestalt Principles, Organization/Structure Visual Design Simplicity, Gestalt Principles, Organization/Structure Many examples are from Universal Principles of Design, Lidwell, Holden, and Butler Why discuss visual design? You need to present the

More information

INCONSISTENT DATABASES

INCONSISTENT DATABASES INCONSISTENT DATABASES Leopoldo Bertossi Carleton University, http://www.scs.carleton.ca/ bertossi SYNONYMS None DEFINITION An inconsistent database is a database instance that does not satisfy those integrity

More information

A prototype system for argumentation-based reasoning about trust

A prototype system for argumentation-based reasoning about trust A prototype system for argumentation-based reasoning about trust Yuqing Tang 1, Kai Cai 1, Elizabeth Sklar 1,2, and Simon Parsons 1,2 1 Department of Computer Science, Graduate Center City University of

More information

Lecture 8. 1 Some More Security Definitions for Encryption Schemes

Lecture 8. 1 Some More Security Definitions for Encryption Schemes U.C. Berkeley CS276: Cryptography Lecture 8 Professor David Wagner February 9, 2006 Lecture 8 1 Some More Security Definitions for Encryption Schemes 1.1 Real-or-random (rr) security Real-or-random security,

More information

Project Description Introduction Problem Statement

Project Description Introduction Problem Statement Project Description Introduction MarketVCR is a combination of a large multimedia data warehouse containing tick-by-tick quote and trade stock market data, video, audio and news articles, a web application

More information

Multi Agent System-Based on Case Based Reasoning for Cloud Computing System

Multi Agent System-Based on Case Based Reasoning for Cloud Computing System Multi Agent System-Based on Case Based Reasoning for Cloud Computing System Amir Mohamed Talib 1 and Nour Eldin Mohamed Elshaiekh 2 1 Faculty of Computer and Information Science, Information Technology

More information

Specifying and Proving Broadcast Properties with TLA

Specifying and Proving Broadcast Properties with TLA Specifying and Proving Broadcast Properties with TLA William Hipschman Department of Computer Science The University of North Carolina at Chapel Hill Abstract Although group communication is vitally important

More information

Understanding and Exploring Memory Hierarchies

Understanding and Exploring Memory Hierarchies Understanding and Exploring Memory Hierarchies Issued : Thursday 27th January 2011 Due : Friday 11th March 2011 at 4.00pm (at the ITO) This assignment represents the total practical component of the Computer

More information

Functional Programming. Pure Functional Languages

Functional Programming. Pure Functional Languages Functional Programming Pure functional PLs S-expressions cons, car, cdr Defining functions read-eval-print loop of Lisp interpreter Examples of recursive functions Shallow, deep Equality testing 1 Pure

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

Lecture 3: Some Strange Properties of Fractal Curves

Lecture 3: Some Strange Properties of Fractal Curves Lecture 3: Some Strange Properties of Fractal Curves I have been a stranger in a strange land. Exodus 2:22 1. Fractal Strangeness Fractals have a look and feel that is very different from ordinary curves.

More information

Bootstrap Confidence Intervals for Regression Error Characteristic Curves Evaluating the Prediction Error of Software Cost Estimation Models

Bootstrap Confidence Intervals for Regression Error Characteristic Curves Evaluating the Prediction Error of Software Cost Estimation Models Bootstrap Confidence Intervals for Regression Error Characteristic Curves Evaluating the Prediction Error of Software Cost Estimation Models Nikolaos Mittas, Lefteris Angelis Department of Informatics,

More information

A Small Interpreted Language

A Small Interpreted Language A Small Interpreted Language What would you need to build a small computing language based on mathematical principles? The language should be simple, Turing equivalent (i.e.: it can compute anything that

More information

PROBLEM SOLVING TECHNIQUES SECTION - A. 1. Answer any ten of the following

PROBLEM SOLVING TECHNIQUES SECTION - A. 1. Answer any ten of the following PROBLEM SOLVING TECHNIQUES SECTION - A 1. Answer any ten of the following a. Define an algorithm. An algorithm is a finite set of instructions that if followed, accomplishes a particular task. b. Define

More information

THE FOUNDATIONS OF MATHEMATICS

THE FOUNDATIONS OF MATHEMATICS THE FOUNDATIONS OF MATHEMATICS By: Sterling McKay APRIL 21, 2014 LONE STAR - MONTGOMERY Mentor: William R. Brown, MBA Mckay 1 In mathematics, truth is arguably the most essential of its components. Suppose

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

SFWR ENG 3S03: Software Testing

SFWR ENG 3S03: Software Testing (Slide 1 of 52) Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on [?] Techniques (Slide 2 of 52) 1 2 3 4 Empirical

More information

ELEMENTARY NUMBER THEORY AND METHODS OF PROOF

ELEMENTARY NUMBER THEORY AND METHODS OF PROOF CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.8 Application: Algorithms Copyright Cengage Learning. All rights reserved. Application:

More information

Cpt S 122 Data Structures. Course Review Midterm Exam # 2

Cpt S 122 Data Structures. Course Review Midterm Exam # 2 Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm

More information

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS 1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be

More information

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD A Comparison of the Booch Method and Shlaer-Mellor OOA/RD Stephen J. Mellor Project Technology, Inc. 7400 N. Oracle Rd., Suite 365 Tucson Arizona 85704 520 544-2881 http://www.projtech.com 2 May 1993 The

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Metamodeling for Business Model Design

Metamodeling for Business Model Design Metamodeling for Business Model Design Facilitating development and communication of Business Model Canvas (BMC) models with an OMG standards-based metamodel. Hilmar Hauksson 1 and Paul Johannesson 2 1

More information

Macros & Streams Spring 2018 Discussion 9: April 11, Macros

Macros & Streams Spring 2018 Discussion 9: April 11, Macros CS 61A Macros & Streams Spring 2018 Discussion 9: April 11, 2018 1 Macros So far, we ve mostly explored similarities between the Python and Scheme languages. For example, the Scheme list data structure

More information

Answer Sets and the Language of Answer Set Programming. Vladimir Lifschitz

Answer Sets and the Language of Answer Set Programming. Vladimir Lifschitz Answer Sets and the Language of Answer Set Programming Vladimir Lifschitz Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory

More information