Liberate Computer User from Programming

This paper is about computer-based problem solving methodology. The issue addressed is: can we develop a computer-based problem-solving methodology which is not based on computer programming? The answer we provide to this question is YES. This raises the

  • PDF / 436,243 Bytes
  • 20 Pages / 430 x 660 pts Page_size
  • 18 Downloads / 191 Views

DOWNLOAD

REPORT


Abstract. This paper is about computer-based problem solving methodology. The issue addressed is: can we develop a computer-based problemsolving methodology which is not based on computer programming? The answer we provide to this question is YES. This raises the next question: if we do not use programming how do we communicate problem solving algorithms to the computer? The answer to this question is: (1) develop software tools that support domain algorithm execution in the problem domain environment (no programming as usual) and (2) allow problemdomain experts to express their problem-solving algorithms using the natural language of their problem domains. We achieve this computerbased problem solving methodology by computational emancipation of the application domain, which consists of: 1. Characterize the application domain in terms of concepts that are universal in the domain, have standalone computing meaning, and are composable. 2. Structure the application domain using an ontology where terms denoting domain characteristic concepts are associated with computer artifacts implementing them. 3. Develop a domain-dedicated virtual machine that executes domain algorithms expressed in the natural language of the domain (without asking to encode them into programs) and implement it on the physical computers existent in the computer-network. With this methodology computers execute algorithms whose expressions are conceptual, similar to the way human brain would execute them.

1

Introduction

The computer is a wonderful problem-solving tool that performs computations faster and more reliably than the human brain. But in the end the computer is just a tool that can help people solve problems providing that they learn how to use it. The biggest hurdle people face when using computers to solve their problems is determined by the current computer-based problem solving methodology which requires the computer user to perform the following two steps: 

I acknowledge Donald Curtis and Cuong Bui contributions to the research reported in this paper.

J. Meseguer and G. Ro¸su (Eds.): AMAST 2008, LNCS 5140, pp. 16–35, 2008. c Springer-Verlag Berlin Heidelberg 2008 

Liberate Computer User from Programming

17

1. Develop a conceptual model of the problem and its solution algorithm1 . 2. Map the solution algorithm into a program in computer memory. Program execution is then carried out by the computer. For the purpose of this paper the computer can be seen as a tuple P C, Execute(), N ext() where: – PC is a program counter register that points to the memory location holding the operation to be executed; – Execute() is the wired action carried out by the machine while performing the operation shown by PC; – Next() is the wired action that uses the current instruction to select the next instruction to be executed by the computer. The process by which machine instructions are carried out by the computer while executing a program is further referred to as the program execution loop (PEL): PC = First(Instruction); while(not halt)