Fundamental Structures OF Computer Science (Part 1 Introduction to Automata and Formal Languages)
Loading...
Date
2001
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Suleyman Demiral University
Abstract
Computations are designed to solve problems. Programs arc descriptions of computations written for execution on computers. The field of computer science is concerned with the development of methodologies for designing programs, and with the development of computers for executing programs. It is therefore of central importance for those involved in the field that the characteristics of programs, computers, problems, and computation be fully understood. Moreover, to clearly and accurately communicate intuitive thoughts about these subjects, a precise and well-defined terminology is required. This book explores some of the more important terminologies and questions concerning programs, computers, problems, and computation. The exploration reduces in many cases to a study of mathematical theories, such as those of automata and formal languages; theories that are interesting also in their own right. These theories provide abstract models that are easier to explore, because their formalisms avoid irrelevant details. The material in this book gradually increases in complexity. In many cases. new topics are treated as refinements of old ones, and their study is motivated through their association to programs. Chapter 1 is concerned with the definition of some basic concepts. It starts by considering the notion of strings, and the role that strings have in presenting information. Then it relates the concept of languages to the notion of strings, and introduces grammars for characterizing languages. The chapter continues by introducing a class of programs. The choice is made for a class. which on one hand is general enough to model all programs, and on the other hand is primitive enough to simplify the specific investigation of programs. In particular, the notion of nondeterminism is introduced through programs. The chapter concludes by considering the notion of problems, the relationship between problems and programs, and some other related notions. Chapter 2 studies finite-memory programs. The noticn of a state is introduced as an abstraction for a location in a finite-memory program as well as an assignment to the variables of the program. The notion of state is used to show how finite-memory programs can be modeled by abstract computing machines, called finite-state transducers. The transducers arc essentially sets of states with rules for transition between the states. The inputs that can be recognized by finite-memory programs are characterized in terms of a class of grammars, called regular grammars. The limitations of finite-memory programs, closure properties for simplifying the job of writing finite-memory programs, and decidable properties of such programs are also studied.
Description
Keywords
computer science, automation, formal languages, Finite Automata, Recursion
Citation
Peretyat’kin M.G / Fundamental Structures OF Computer Science (Part 1
Introduction to Automata and Formal Languages) / Suleyman Demiral University / 2001