J. A. Martin's Introduction to Languages and the Theory of Computation by John Alfred Martin brings together principles of several different fields, including abstract algebra, formal languages, logic, set theory, and programming language syntax, to create a theoretical foundation for the study of computer science as it exists today.
Written in an accessible style without sacrificing content quality or mathematical rigor, this text allows students to experience the rich history of computer science while covering current and future applications that are relevant to their lives and careers.
He Introduced some of the main leads in COMPUTATION such as Theories, Universal Grammar, Combinatorics, Programming Languages, Non-Deterministic Turing Machines, Context Free Grammars, Infinitary Languages & Lexical and Phrase Structure Grammars.
- 1) Theories:
- -
- Programming languages
- are intended for human programmers and their output is instructions in a computer language understood by computers. As opposed to natural languages which are intended for humans, but whose output can be interpreted by a computer (
- human-readable source code
- ).
- - Linguistics is primarily concerned with how languages work, while
- computational linguistics
- is concerned with understanding how they relate to computation.
2) Universal Grammar: There are many different languages, but all humans understand at least one language: their native language which will be understood by their native SIMILARITIES.
3) Combinatorics: COMBINATORICS covers , which refers to the study of finite sets and the ways in which they can be combined with each other or rearranged without changing their size.
One important area that this field utilized is the probability, such as rolling a die or flipping a coin. Though math is used throughout this book, most of it is simple arithmetic through the long division with remainder or multiplication (times).
4) Programming Languages: In Martin's definition, a programming language is anything a computer programmer uses for communicating instructions to the CPU so it can carry them out.
Generally, there are two different types of programming languages procedural and imperative. languages can either be high-level or low-level.
Low-level languages cater to machine language optimizations while high-level languages offer features such as superior abstraction and debugging.
5) Non-Deterministic Turing Machines: A non-deterministic Turing machine (NDTM) is a special case of a Turing machine that is not allowed to write over any symbols or in any sequence when performing its computations.
NDTM are based on finite automata, rather than Turing machines, so they do not have access to an infinite tape; therefore they can be used for problems with time or space limitations.
They are capable of computing on functions with finitely many arguments, but not infinitely many arguments like Turing machines.
6) Context Free Grammars: Grammars are key when teaching people about computers because they have a direct relationship with programming languages.
One way in which grammar can be used to teach computing is by introducing context-free grammar, which is a syntax for manipulating strings using rules with well-defined conditions and results.
7) Infinitary Languages: This Infinitary Languages covers fundamental principles in logic, formal semantics, computability theory, automata theory, distributed algorithms, propositional and first-order logics, modal logics, proof theory (linear orderings), higher-order logics, lambda calculus programming language semantics.
The author provides a thorough overview of these areas with an emphasis on the links between them and examples that illustrate these links.
8) Lexical and Phrase Structure Grammars: Lexical grammar is concerned with developing a complete inventory of words, often without concern for individual sounds or syllables.
They are used as templates for phrases such as Yesterday was a good day. Phrase structure grammars are different because they try to reproduce English-like patterns, where sounds or syllables have important semantic effects such as which verb goes with which noun.
To learn more about: THEORY OF COMPUTATION.
brainly.com/question/28391275