######### # ##### ###### # # # # # # # # # ##### .... ## # # # # # # # # # # # ## ##### # # # # # # ##### # # # # ###### Phonological Programming Language .... Dr. Frank Roberts Brandon Version 4.2.1 18 December 1991 Copyright (c) 1983,1991 -*- Dedication -*"To the only wise God be glory forever through Jesus Christ! Amen." (Romans 16:27) 1.0 General Introduction This section describes the conditions on distribution, support of the language, history, objectives and implementation, and gives a script for a quick start in using Fonol. Online, you can look in the table of contents (TOC) by typing ?/toc. 1.1 Fonol Distribution Fonol is distributed with my blessings. You may give away copies to your heart's content so long as you do not charge for the copies and so long as you give all the distribution files in unmodified form. 1.2 Fonol Support I intend to support Fonol as much as is possible with a spare time project and I welcome your bug reports and suggestions for improvements. When sending in bug reports, please give all the details of what happened including the matrix and rules you were trying to run. The transcription and batch file features will help in this (i.e. send a diskette with a batch file to set up the problem if it is at all complex). If you have the source code, please don't fix things yourself -- let me centralize the versions, OK? I also welcome any help on the documentation so as to make sure that it is clear. Positive reinforcement is naturally also welcome! My current address is: Frank R. Brandon 3937 Anewby Way Fort Worth, TX 76133-6860 (817) 294-0239. Thanks to Wayne Redenbarger of Ohio State and Dave Edmondson of Texas Christian University, I can also be reached at: brandon@gamma.is.tcu.edu brandon@tcucvms.bitnet 1.3 Porting Fonol Porting to other machines that run Pascal or C, especially Turbo Pascal, should be fairly transparent since I wrote Fonol as generically as possible. I developed this version of Fonol on an AT&T 6300 using Turbo Pascal 4.0, a version of Pascal that has incorporated many of the low level conveniences of C. 1.4 Fonol Objectives Fonol is a programming language that simulates phonological rules of the sort described in Chomsky and Halle 'Sound Pattern of English' or Schane 'Generative Phonology'. It also incorporates the input and output filters (conditions) which came into common use about the same time. These filters are currently restricted to the identification of a pattern and two actions: preventing the successful application of a specific rule or blocking (starring) the entire derivation. Some standard conventions on rule application are supported. Cycles of several types are allowed for and other means of appropriate control are also provided. Further extensions, variations, and deviations are included from later phonological folklore. (Let me know if there is something truly vital missing -- I'll try to add it if I can.) Fonol is designed to provide a way of writing phonological rules and viewing their effects. It is intended to aid students of phonology to grasp the ideas behind phonological rules and to help phonologists manage large complex bodies of rules in the theory of their choice. Considering how many competing theories and partial theories of phonology exist, it may fail in the second case, even though I would like to accommodate as many theoretical variations as possible. Since an attempt will be made to provide for all theories, those who use more restrictive theories will simply have to avoid using some features of the Fonol language. In any case, it should be useful for students and in beginning work on undescribed phonological systems. In some cases, Fonol will allow for the same effects as theoretical systems it does not directly support. In this case, try using what is provided and fixing up or beautifying your rules when you put them in paper form. A program written for the IBMs character oriented display is not able to directly print the typographically complex forms of phonological rules, anyway. Computer simulation of phonological rules helps to advance the broad generative program as well, in that no amount of hand-waving on the part of the rule writer or good will on the part of the rule reader will have any effect on the way the software interprets what is written. In this sense, it forces the clarification of our ideas just as the whole explicit rule writing approach was meant to, only without any generosity in assumptions. In the 'wins-no-friends' department, it also has been beneficial in revealing how many 'radically new' ideas are reinventions of the wheel and in raising the question of how we select one theory over another of similar descriptive power -- the problem of notational variants. I personally do not want to solve all these problems by myself. For this reason, you will find the documentation to be written in an informal style and filled with invitations for you to write me with your ideas. 1.5 Fonol History Fonol 1.0 was written in Microsoft's MBasic 5.2 under CP/M in 1983 while I was employed in the Linguistics Department at the Universidade Estadual de Campinas. A paper on it ('A Phonological Rule Interpreter for Microcomputers') was eventually published in 1985 in the Proceedings of the Eleventh International Conference of the Association for Literary and Linguistic Computing ["Computers in Literary and Linguistic Computing", Slatkine Reprints, Rue des Chaudronniers, 5 - Case 765, CH-1211 Geneve 3, Switzerland]. Intermediate versions through 3.0._ were written in my spare time after work while I was employed in the Human Factors Technology Group at General Dynamics-Fort Worth. There was a hiatus of three years between version 3.0._ and 3.1.0 due to lack of interest. This dearth of stimulus was broken in late 1990 by Dr. Wayne Redenbarger -- to whom much appreciation! Recent versions from 3.1.0 to 4.2.0 were funded in part by Aetna Insurance and the Social Security Administration, I suppose, since they've been written while I've been on disability leave and under treatment for colon cancer. The present version is written in Borland's Turbo Pascal 4.0 syntax under MS-DOS but compiled with the version 6 compiler. The name 'Fonol' was chosen for similarities to Cobol, Snobol, Algol, etc. and because, since I was teaching in Brazil at the time, it seemed like a good abbreviation of 'Linguagem de Programa‡„o Fonol¢gica'. I forgot that some people don't speak Portuguese. [Note: remainder elided for brevity]