IUP Publications Online
Home About IUP Magazines Journals Books Archives
     
Recommend    |    Subscriber Services    |    Feedback    |     Subscribe Online
 
The IUP Journal of Computer Sciences :
An Optimizing Compiler for Turing Machine Description Language
:
:
:
:
:
:
:
:
:
 
 
 
 
 
 
 

Turing machines are an important concept in theoretical computer science. Several simple languages have been developed till date for modeling and simulation of Turing machines, often for pedagogical purposes. The Turing Machine Description Language (TMDL) is one such language and it is best known for its textbook style descriptive representation of Turing machines. This paper reports the development of a two-pass optimizing compiler for the language. In an experiment, it was observed that the optimizing compiler produces object programs that are up to 1.784 times shorter and 1.032 times faster than those produced by an existing compiler that does not employ code optimization.

 
 
 

Turing machines are important models of computation. They are simple in structure yet highly powerful. Turing machines comprise a fundamental class of automata and are used in the study of formal languages, theory of computation and various other topics in computer science.

Computer science educationists, however, observed that programming Turing machines is not easy to teach or learn. So, they started developing languages in which Turing machines can be modeled and simulated. Several researchers have worked till date on the simulation of Turing machines for pedagogical purposes and quite a few of them are worth mentioning. In an early study, Coffin et al. (1963) developed a simple notational language for modeling Turing machines. Later, similar languages were also developed by Harris (1998 and 2002), and Scott (2006). In these notational languages, Turing machines are defined using formal symbols. The programs follow a rigid structure and there are strict limitations on the choice of the symbols. The notational languages are easy to learn and can be used efficiently to model simple Turing machines. Using another approach, Curtis (1965) developed an assembly-like language to model and simulate Turing machines. The language provides a basic set of instructions to read and write the tape contents, move left and right on the tape, jump conditionally and unconditionally, and invoke subroutines. This assembly-like language is more powerful than the notational languages. However, these notational and assembly-like languages need to be learnt explicitly. To circumvent this extra effort, Chakraborty (2007) developed a Turing Machine Description Language (TMDL) in which Turing machines are represented in a descriptive way, similar to that used in textbooks. TMDL is capable of modeling any Turing machine and needs absolutely no effort to learn. This paper reports the design, implementation and performance of an optimizing compiler for TMDL.

 
 
 

Computer Sciences Journal, Business Intelligence, Enterprise Systems, Enterprise Resource Planning, Customer Relationship Management, CRM, Business Operations Management, Business Process Mining, Finite State Machine, Transactional Information System, Genetic Algorithms, Decision Making Process, Data Mining Tools, Online Analysis Processing, OLAP, Artificial Intelligence.