A gentle introduction to programming for students and researchers interested in conducting computer-based analysis in linguistics, this book is an ideal starting point for linguists approaching programming for the first time. Assuming no background knowledge of programming, the author introduces basic notions and techniques needed for linguistics programming and helps readers to develop their understanding of electronic texts. The book includes many examples based on diverse topics in linguistics in order to demonstrate the applicability of the concepts at the heart of programming. Practical examples are designed to help the reader to: *Identify basic issues in handling language data, including Unicode processing *Conduct simple analyses in morphology/morphosyntax, and phonotactics *Understanding techniques for matching linguistic patterns *Learn to convert data into formats and data structures suitable for linguistic analysis *Create frequency lists from corpus materials to gather basic descriptive statistics on texts *Understand, obtain and 'clean up' web-based data *Design graphical user interfaces for writing more efficient and easy-to-use analysis tools.
Two different types of exercise help readers to either learn to interpret and understand illustrative sample code, or to develop algorithmic thinking and solution strategies through turning a series of instructions into sample programs. Readers will be equipped with the necessary tools for designing their own extended projects. Key Features: *Ideal introduction for students of linguistics attempting to process corpus materials or literary texts for dissertations, theses or advanced research work *Linguistic examples throughout the text clearly demonstrate the application of programming theory and techniques *Coverage ranging from basic to more complex topics and methodologies enables the reader to progress at their own pace *Two chapters on the advantages of modularity and associated issues provide a basis for more advanced projects *A final main chapter introduces graphical user interfaces, providing a basis for user-friendly programs and multi-lingual analysis.