The Hippo project focuses on the design of programming systems and language abstractions facile with respect to the automation of computation over the Worldwide Web. Initially, the project grew out of a desire to extend the concept of orthogonal persistence to the Web, based upon the great quantity of research taking place at Glasgow and St. Andrews Universities. This gave rise to the Hippo acronym - High-level Internet Programming with Persistent Objects. However, as our research has matured, we have discovered that the Web brings new challenges to programming language designers of a kind never seen before. The properties of the Web, it's non-determinism and autonomy, mean that orthodox programming concepts do not scale globally, and motivate us to define a new programming paradigm - the Internet Programming Paradigm. We have developed a Core Language as a basis for the development of Internet programming concepts.
There are several areas presently under investigation. One investigates the potential of the Web to exhibit the properties of a distributed object system. Underlying the system is a CORBA infrastructure, and a high-level programming language maps experimental language constructs onto the API and type system concepts onto the CORBA IDL. Another investigation attacks directly the non-determinism of Web computations within the context of the extant client-server architecture. The language concepts of persistent relative attributes, and supervisors of computation allow the segregation of computational logic and control logic to a degree impossible within the context of orthodox programming methodology and mechanisms. Finally, an investigation in semi-structured data attempts to provide a unifying high-level data model over the regular and irregular data on the Web. A flexible type system allows the typing of semi-structured data on import to a persistent programming language context.
Due to the poor quality of format conversion software with respect to technical documents, the only format which reliably represents the proofing of the documents as published is the Word 97 format. A Word 97 viewer (4Mb) for Windows 95/NT is available for those without the full application.
Paradigms for Global Computation - an Overview of the Hippo Project, by Richard Connor and Keith Sibson was presented at the Workshop on Internet Programming as part of ICCL'98 and published in [CITATION]. Abstract: The Hippo project is an investigation into the use of high-level programming paradigms in the context of global computation. The intention is to discover abstractions which allow global applications to be written by an average applications programmer, rather than a specialist in networked computer systems. This will be achieved by the combination of the provision of high-level semantic constructs which can describe useful behaviour patterns within the global computer network, and abstraction over unnecessary low-level detail of the communication protocols. This paper gives only a high-level overview of the project's aims and objectives. Although at an early stage of research, many more technical issues and partial solutions have been identified which are not described here due to a lack of space.
HCL - a Language for Internet Data Acquisition, by Richard Connor and Keith Sibson was presented at the Workshop on Internet Programming as part of ICCL'98 and published in [CITATION]. Abstract: We identify problems in using traditional programming systems to write applications that access internet data. Some of these problems may be artefacts of current internet technology, and some are fundamental in any large heterogeneous and autonomous network. Our experimental approach to this is to design a new language system, with a semantic domain which corresponds, as far as possible, to that of the problem domain. Our primary aim is to allow the straightforward automation of tasks currently performed in a routine way by human beings interacting with Web browsers, in terms accessible to programmers who are not necessarily expert in the underlying protocols and mechanisms. In this paper we describe a system which has been designed and implemented as a first experimental step along this path. We believe we have identified some simplifying concepts, and through early experiments have gained some experience in both their use and implementation. This is very much a position paper, since we are just about to embark on a phase of research where we try to build some more serious applications, to gain some more useful feedback. The language is not presented as a good solution to the identified problems, but as our particular choice of starting point. In this paper we describe the key new concepts of the language and give some simple examples of its use.
On the Unification of Persistent Programming and the World-Wide Web by Richard Connor, Keith Sibson, and Paolo Manghi was presented at the Workshop on the Web and databases as part of the EDBT'98 conference and is published in LNCS 1590. Abstract: In its infancy, the World-Wide Web consisted of a web of simple hypertext documents transmitted on request by simple servers. As time progresses it is evolving into a domain which supports almost arbitrary networked computations. Central to its successful operation however is the agreement of simple standards such as HTML and http, which provide inter-node communication via the medium of text files. Our hypothesis is that, as application sophistication increases, this text-based interface will present the same problems to programmers as the use of traditional text-based file and database system interfaces within programming languages. Persistent programming systems were designed to overcome these problems in the traditional domains; our investigation is to reapply the research performed to the new domain of the Web. The result of this is the ability to pass typed data layered on top of the existing standards, in a manner that is fully integrated with them. The significance with respect to Web databases is that a typed object protocol layered over http allows the Web to be used to host a global persistent address space, thus making the whole Web a potential data repository for a generation of database programming languages.
Implementing Flexible Failure Semantics when Programming the Web by Keith Sibson and Richard Connor has been accepted for publication in the proceeding of the 1st International Conference on Internet Computation (IC'2000), in Las Vegas, June 26th 2000. Abstract: We describe a methodology for programming Web fetch abstractions, which in turn can be used to develop higher level models of Web computation. The technique is based around the use of higher order functions, and allows Web fetch abstractions to be parameterised by arbitrary constraint relationships between Web 'observables'. Examples of Web observables are elapsed time, transfer rate, and latency. Constraint relationships between these allow specification of failure interpretation in a more concise and flexible way than with traditional means. After describing the methodology, in the interest of pragmatism we present an adaptation of it for object-oriented languages.
The HCL Programmer's Manual by Keith Sibson and Richard Connor is an informal publication that describes the Hippo Core Language in some detail, along with outlining appropriate programming methodologies with an example-based approach.
Service Combinators and WebL by Keith Sibson is an informal publication that serves as a critique of the two languages. This document describes each in isolation, how they relate to each other, and emmits an objective analysis of their efficacy.
The Hippo research group is led by Dr Richard Connor, a research fellow in the Department of Computing Science at Glasgow University, and is funded by the EPSRC under Advanced Fellowship GR/K 79222 - High Level Internet Programming Systems. Keith Sibson and Steven Neely are research students in the Department of Computing Science funded by the EPSRC. Paolo Manghi is a Research Assistant in the Department of Computing Science at Glasgow University, and the recipient of a TMR grant from the European Union. Fabio Simeoni and David Lievens are research students in the Department of Computing Science at Glasgow University.
![]() [Richard Connor] | ![]() [Keith Sibson] | ![]() [Steven Neely] | ![]() [Paolo Manghi] | ![]() [Fabio Simeoni] | ![]() [David Lievens] |
Enquiries and comments to keith@cs.strath.ac.uk.