This book on applications of logic in the semantic analysis of language pays the reader the compliment of not assuming anything about what s/he knows (in particular, no specific logical knowledge or experience with programming is presupposed), while making very flattering assumptions about his or her intelligence and interest in the subject matter.
The method used throughout in the book is the pursuit of logical questions and implementation issues occasioned by concrete examples of formally defined language fragments. At first, no distinction is made between formal and natural language: in the first chapter it is explained why. At the end of the text the reader should have acquired enough knowledge and skills for the development of (at least the semantic part of) fairly serious NL processing applications.
Throughout the text, abstract concepts are linked to concrete representations in the functional programming language Haskell
, a language that is well suited for the book's purposes because it comes with a very easy to use interpreter, Hugs
. Haskell compilers, interpreters and documentation are freely available from the Internet (at address http://www.haskell.org ). Everything one has to know about programming in Haskell to understand the programs in the book is explained as we go along, but this book does not cover every aspect of the language. For a further introduction to Haskell the reader is referred to A Gentle Introduction to Haskell
. This book does assume that the reader is able to retrieve the appropriate software from the internet, and that s/he is acquainted with the use of a text editor for the creation and modification of programming code.
The book is intended for linguists who want to know more about logic, including recent developments in modal and dynamic logic, and its applicability to their subject matter, and for logicians with a curiosity about applications of their subject to linguistics.