scholarly journals Interactive programming in Agda – Objects and graphical user interfaces

Author(s):  
ANDREAS ABEL ◽  
STEPHAN ADELSBERGER ◽  
ANTON SETZER

AbstractWe develop a methodology for writing interactive and object-based programs (in the sense of Wegner) in dependently typed functional programming languages. The methodology is implemented in the ooAgda library. ooAgda provides a syntax similar to the one used in object-oriented programming languages, thanks to Agda's copattern matching facility. The library allows for the development of graphical user interfaces (GUIs), including the use of action listeners.Our notion of interactive programs is based on the IO monad defined by Hancock and Setzer, which is a coinductive data type. We use a sized coinductive type which allows us to write corecursive programs in a modular way. Objects are server-side interactive programs that respond to method calls by giving answers and changing their state. We introduce two kinds of objects: simple objects and IO objects. Methods in simple objects are pure, while method calls in IO objects allow for interactions before returning their result. Our approach also allows us to extend interfaces and objects by additional methods.We refine our approach to state-dependent interactive programs and objects through which we can avoid exceptions. For example, with a state-dependent stack object, we can statically disable the pop method for empty stacks. As an example, we develop the implementation of recursive functions using a safe stack. Using a coinductive notion of object bisimilarity, we verify basic correctness properties of stack objects and show the equivalence of different stack implementations. Finally, we give a proof of concept that our interaction model allows to write GUI programs in a natural way: we present a simple drawing program, and a program which allows the users to move a small spaceship using a button.

2011 ◽  
Vol 464 ◽  
pp. 57-60
Author(s):  
Yong Zhang ◽  
Jun Fang Ni ◽  
Peng Liu

In accordance with the object-oriented programming, a system for 3D medical images of reconstruction and display has been designed and implemented. The overall software structure is established based on VC++6.0 and display technique of Open Graphics Library. The functional modules, such as acquisition of encoded 3D data, pre-process, reconstruction and display, are achieved by the design and implementation of customized classes. At last the software system provides user-friendly graphical user interfaces, highly efficient data processing and reconstruction, and rapid capability of graphic display.


Author(s):  
Lei-da Chen ◽  
Gordon W. Skelton

In the previous chapter, we created an m-business application using ColdFusion. Besides ColdFusion, many other development tools can be used to develop m-business applications. Visual Studio .NET, an integrated development environment by Microsoft, has become an increasingly popular corporate applicationdevelopment tool due to its ease of use and support for a wide range of programming languages. Besides traditional Windows and Web applications, Visual Studio .NET also allows developers to build mobile and wireless applications with relative ease. The focus of this chapter is to discuss the tools and techniques for developing wireless applications using Visual Studio .NET. Wireless applications are developed using the ASP .NET Mobile Web Application template. The template provides developers with WYSIWYG tools for creating user interfaces for various mobile devices. These tools work seamlessly with ASP.NET, which uses a form-based approach to build server-side applications for processing user requests and interacting with databases. In this chapter, we will develop a business-to-consumter wireless application using Visual Studio .NET.


Author(s):  
Mandorli Ferruccio ◽  
Bordegoni Monica

Abstract This paper addresses applications developed for supporting design/production activities that are tailored on a specific product. Currently, these applications are developed coding the engineer’s knowledge captured by the system developer into the product model. Minimizing the programming skill required in current systems for knowledge capturing would allow the designers themselves to directly insert knowledge into the system. In order to allow that, we see two ways: providing “design by example” systems, or providing appropriate graphical user interfaces for the systems. The objective of this work is to demonstrate that visual user interfaces can be used as the key to integrate and customize knowledge aided engineering (KAE) applications. In order to demonstrate this idea we have developed a prototype of an interactive visual interface integrated within a KAE system. The approach has proved to be efficient for the development of product dependent systems and for engineers’ knowledge capture, in respect to systems based on programming languages.


2014 ◽  
Vol 11 (2) ◽  
pp. 481-501 ◽  
Author(s):  
Clemente Borges ◽  
José Macías

In most respects, there are implicit drawbacks concerning representation and interaction with data in relational-database applications. On the one hand, there is a lack of expressiveness and ease of use in the user interfaces that handle such data. On the other hand, there is an implicit need for interactive end-user visual tools to query data and avoid dependency on programming languages. The main aim of this work is to study the problem of database interaction and usability, comparing existing solutions and providing a new approach that overcomes existing problems. We propose a web-based tool that manipulates Data Warehouse schemas by using a visual language to represent the database structure and providing several visualization techniques that facilitate the interaction and creation of queries involving different levels of complexity. We based our research on an End-User Development approach that has been evaluated to obtain some initial usability indicators.


1994 ◽  
Vol 05 (02) ◽  
pp. 179-208 ◽  
Author(s):  
Karl J. Lieberherr ◽  
Cun Xiao

Although numerous researchers have pointed out that object-oriented software is easier to extend than software that is not written in an object-oriented style, object-oriented software is still rigid to adapt and maintain. This paper builds on an extension of object-oriented programming which is called adaptive programming. Adaptive programming allows the programmer to write more extensible software called adaptive software without committing to a specific input language. After writing an adaptive program, the programmer selects a specific input language and partially evaluates the program into an executable program. This paper formally studies class dictionaries and informally describes how adaptive programs are partially evaluated by freezing class dictionaries. A class dictionary is mapped into classes of an object-oriented programming language, for example, C++, CLOS etc. A class dictionary defines both a set of objects and a set of sentences (a language). We derive a set of restrictions on class dictionaries which permit a simple printing algorithm and its inverse, a parsing algorithm, to be bijection functions between objects and sentences of the same class. We review propagation patterns for describing adaptive object-oriented software at a higher level of abstraction than the one used by today’s object-oriented programming languages. A propagation pattern is an adaptive program which defines a family of programs. From the family, we can select a member by choosing a class dictionary. The theory presented in this paper has been successfully implemented and used in the Demeter Tools/C++. The system consists of a set of tools that facilitate software evolution.


1997 ◽  
Vol 3 (2) ◽  
pp. 181-215 ◽  
Author(s):  
Henk Barendregt

AbstractOne of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the representation of reasoning and the resulting systems of computer mathematics on the other hand.


Sign in / Sign up

Export Citation Format

Share Document