Results 1 - 10
of
16
Skeleton-based Agent Development for Electronic
- In Proc. AAMAS’02
, 2002
"... In this paper we describe work in progress concerning the (semi-)automatic support for developing agents. We focus on the scenario in which agents have to be designed to follow an electronic institution. An initial design pattern is automatically extracted from a given electronic institution and oer ..."
Abstract
-
Cited by 23 (4 self)
- Add to MetaCart
In this paper we describe work in progress concerning the (semi-)automatic support for developing agents. We focus on the scenario in which agents have to be designed to follow an electronic institution. An initial design pattern is automatically extracted from a given electronic institution and oered to programmers willing to develop agents for the speci c purpose of joining and performing in the electronic institution. We resort to logic programming as our underlying computational framework, explaining and justifying this decision.
Instructions and Descriptions: some cognitive aspects of programming and similar activities
, 2000
"... The Cognitive Dimensions framework outlined here is generalised broad-brush approach to usability evaluation for all types of information artifact, from programming languages through interactive systems to domestic devices. It also has promise of interfacing successfully with organisational and soci ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
The Cognitive Dimensions framework outlined here is generalised broad-brush approach to usability evaluation for all types of information artifact, from programming languages through interactive systems to domestic devices. It also has promise of interfacing successfully with organisational and sociological analyses. Keywords Usability evaluation, cognitive dimensions, notations, telephone, Prolog, spreadsheet, cognitive psychology. 1. INTRODUCTION We are living through a technological revolution, in which much research is necessarily dominated by immediate aims and short-term goals, and most research papers report some new accomplishment. The accomplishment may be useful but generalisations from one creation to another are very weak, unless the second is a direct descendant from the first. This paper is a contrast. Science-based engineering rests on idealisations (capacitance, gravity). Physical or chemical theory describing these idealisations is combined with experience and cra...
Representing Logic Program Schemata in Prolog
- Proceedings of the Twelfth International Conference on Logic Programming
, 1995
"... Abstract. Program schemata and programming techniques provide a mechanism for representing the essential characteristics of logic programs. By abstracting out common recursive control flow patterns, program schemata capture large classes of logic programs. Programming techniques represent common pro ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
Abstract. Program schemata and programming techniques provide a mechanism for representing the essential characteristics of logic programs. By abstracting out common recursive control flow patterns, program schemata capture large classes of logic programs. Programming techniques represent common program components. By instantiating portions of program schemata with programming techniques, it is possible to generate arbitrary logic programs. In order to represent program schemata and programming techniques for any programming language, it is desirable to use a higher-order programming language as the representation language. �Prolog is a higher-order logic programming language that extends Prolog by incorporating higher-order unification and �-terms, making it an ideal logic programming language for representing logic program schemata and programming techniques. Because �Prolog program schemata and programming techniques can be represented in �Prolog, there is no need for the creation of an abstract meta-language in order to define and classify logic program schemata and programming techniques. 1
Designing Prolog Programming Techniques
, 1994
"... We propose a medium in which expert programmers can design, test and organise Prolog programming techniques. The proposed approach employs simple single-argument program fragments and their combinations in order to represent techniques. The devised techniques can be made available to other programme ..."
Abstract
-
Cited by 12 (7 self)
- Add to MetaCart
We propose a medium in which expert programmers can design, test and organise Prolog programming techniques. The proposed approach employs simple single-argument program fragments and their combinations in order to represent techniques. The devised techniques can be made available to other programmers, by means of techniques-based editors. 1 Introduction Due to the simplicity and compactness of the syntax of Prolog, commonly occurring patterns in programs can be detected automatically [Loo88, Bow92] or manually and used in a variety of ways, e.g. the detection of bugs [Loo88], the construction of (similar) programs [GH91, KLS89], the automatic explanation of programs [Gab92] and teaching purposes (automatic or human tutoring) [BBD + 91, Rob91]. These patterns are loosely named techniques [Bow92, Brn91, BBD + 91] and, together with knowledge of when and where to use them, provide a useful account of the body of knowledge necessary for the systematic development of correct Prolog pr...
Extensible Logic Program Schemata
"... . Schema-based transformational systems maintain a library of logic program schemata which capture large classes of logic programs. One of the shortcomings of schema-based transformation approaches is their reliance on a large (possibly incomplete) set of logic program schemata that is required in o ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
. Schema-based transformational systems maintain a library of logic program schemata which capture large classes of logic programs. One of the shortcomings of schema-based transformation approaches is their reliance on a large (possibly incomplete) set of logic program schemata that is required in order to capture all of the minor syntactic differences between semantically similar logic programs. By defining a set of extensible logic program schemata and an associated set of logic program transformations, it is possible to reduce the size of the schema library while maintaining the robustness of the transformational system. In our transformational system, we have defined a set of extensible logic program schemata in #Prolog. Because #Prolog is a higher-order logic programming language, it can be used as the representation language for both the logic programs and the extensible logic program schemata. In addition to the instantiation of predicate variables, extensible logic program sc...
Exploiting Program Schemata in a Prolog Tutoring System
, 1993
"... After their beginnings in computer-aided instruction, automated tutors have re-emerged as intelligent tutoring systems. These intelligent tutors have obtained considerable success by using results from cognitive psychology and artificial intelligence to permit non-traditional instruction which is ta ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
After their beginnings in computer-aided instruction, automated tutors have re-emerged as intelligent tutoring systems. These intelligent tutors have obtained considerable success by using results from cognitive psychology and artificial intelligence to permit non-traditional instruction which is tailored to their individual students. The success of these automated tutors is due to their precise understanding and modeling of both the student and the domain being taught. A common measure of the robustness of an automated tutor is the size of the domain that it can understand. The schema-based Prolog tutor described in this dissertation is capable of recognizing a larger class of programs than existing Prolog tutors. By using powerful generalized transformations, our Prolog tutor can generate this class of programs from a very small set of normal form programs. Thus, our Prolog tutor recognizes a larger class of programs using fewer normal form programs than existing Prolog tutors. One o...
Opportunistic Logic Program Analysis and Optimisation: Enhanced Schema-Based Transformations for Logic Programs and their Usage in an Opportunistic Framework for Program Analysis and Optimisation
- Technical Report 95.24, Institut fur Informatik, Universitat
, 1995
"... This paper should replace a previous work entitled Enhanced Schema-Based Transformations for Logic Programs and their Opportunistic Usage in Program Analysis and Optimisation (Technical Report 95-16, Institut fr Informatik, Universitt Zrich), extending and updating it ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
This paper should replace a previous work entitled Enhanced Schema-Based Transformations for Logic Programs and their Opportunistic Usage in Program Analysis and Optimisation (Technical Report 95-16, Institut fr Informatik, Universitt Zrich), extending and updating it
Combining Prolog Programs in a Techniques Editing System
"... Techniques editing, as proposed by Sterling et al., allows Prolog programs to be constructed by initially selecting a `skeleton' which determines the flow of control of the program, and then adding on top of this the extra features required by the program. This means that it is easy to obtain as an ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Techniques editing, as proposed by Sterling et al., allows Prolog programs to be constructed by initially selecting a `skeleton' which determines the flow of control of the program, and then adding on top of this the extra features required by the program. This means that it is easy to obtain as an end-result of techniques editing not only the final program but also a history of its development, in terms of the skeleton and extensions used to build it. We describe how this program history information can be used to produce efficient combined programs from pairs of initial programs constructed independently by a techniques editor. Keywords: techniques editor, classification of Prolog programs, join specification, composition methods, unfold/fold transformations, meta-folding operation, program history. 1 Introduction This paper addresses the combination of two programs constructed by means of a specialised techniques editor, briefly described in Section 2. Currently the techniques edit...
Evaluating Environments for Functional Programming
- International Journal of Human-Computer Studies
, 2000
"... Functional programming presents new challenges in the design of programming environments. In a strongly typed functional language, such as ML, much conventional debugging of runtime errors is replaced by dealing with compile time error reports. On the other hand, the cleanness of functional progr ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Functional programming presents new challenges in the design of programming environments. In a strongly typed functional language, such as ML, much conventional debugging of runtime errors is replaced by dealing with compile time error reports. On the other hand, the cleanness of functional programming opens up new possibilities for incorporating sophisticated correctness-checking techniques into such environments. C Y NTHIA is a novel editor for ML that both addresses the challenges and explores the possibilities. It uses an underlying proof system as a framework for automatically checking for semantic errors such as non-termination. In addition, C Y NTHIA embodies the idea of programming by analogy --- whereby users write programs by applying abstract transformations to existing programs. This paper investigates C Y NTHIA's potential as a novice ML programming environment. We report on two studies in which it was found that students using C Y NTHIA commit fewer er...
Representing Logic Program Schemata in lambdaProlog
"... .Program schemata and programming techniques provide a mechanism for representing the essential characteristics of logic programs. By abstracting out common recursive control flow patterns, program schemata capture large classes of logic programs. Programming techniques represent common program comp ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
.Program schemata and programming techniques provide a mechanism for representing the essential characteristics of logic programs. By abstracting out common recursive control flow patterns, program schemata capture large classes of logic programs. Programming techniques represent common program components. By instantiating portions of program schemata with programming techniques, it is possible to generate arbitrary logic programs. In order to represent program schemata and programming techniques for any programming language, it is desirable to use a higher-order programming language as the representation language. #Prolog is a higher-order logic programming language that extends Prolog by incorporating higher-order unification and #-terms, making it an ideal logic programming language for representing logic program schemata and programming techniques. Because #Prolog program schemata and programming techniques can be represented in #Prolog, there is no need for the creation of an a...

