💾 Archived View for tranarchy.fish › ~autumn › apl2 › preface.gmi captured on 2023-04-19 at 22:54:12. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

🚧 View Differences

-=-=-=-=-=-=-

<- Back to APL2 at a Glance

Preface

<hr>

<h2 id="preface">Preface</h2>

<p>Why learn <span class="small-caps">APL2</span>?</p>

<p>Computers do precisely what people program them to do. If you want to be in control, you need a way to tell the computer what <em>you</em> want it to do. Just as people invented languages so they could communicate with each other, people invented programming languages so they could communicate with computers and tell them what to do.</p>

<p><span class="small-caps">APL2</span> (A Programming Language-2) is a language designed to facilitate both kinds of communication. It is a precise and concise notation for the recording of ideas. It is perfectly suited for such diverse applications as commercial data processing, system design, mathematical and scientific computation, data base applications, Artificial Intelligence, and teaching. It does not suffer from the inaccuracies and vagueness of natural languages (like English). You can use it as a tool for working out the solution to a problem and then, unlike mathematics or other tools, you can use the computer directly to calculate the solution.</p>

<p>Of the many programming languages available, <span class="small-caps">APL2</span> has these distinguishing features:</p>

<ul>

<li><p><strong>Few rules.</strong> You will know most of the everyday rules for writing <span class="small-caps">APL2</span> after you read <a href="chapter1.html">Chapter 1</a>. <span class="small-caps">APL2</span>’s rules are simple, and you can learn to write correct expressions immediately.</p></li>

<li><p><strong>Arrays.</strong> <span class="small-caps">APL2</span> deals with whole collections of data all at once. <span class="small-caps">APL2</span> has arrays as the fundamental unit of computation.</p></li>

<li><p><strong>Rich set of functions.</strong> The <span class="small-caps">APL2</span> language includes a wide variety of functions. These functions apply to whole arrays at one time.</p></li>

<li><p><strong>Operations on functions.</strong> <span class="small-caps">APL2</span> has operators that modify functions, creating whole families of related functions in a uniform manner. You can pass functions as parameters to programs.</p></li>

<li><p><strong>User operations.</strong> When you write programs in <span class="small-caps">APL2</span>, you create your own functions and operators, which behave like the functions and operators defined as part of the language.</p></li>

</ul>

<p><strong><em>APL2 at a Glance</em></strong> introduces <span class="small-caps">APL2</span> and demonstrates these distinguishing features. No prior <span class="small-caps">APL</span> experience is assumed; however, even a seasoned <span class="small-caps">APL</span> programmer will find the book valuable because of its emphasis on the <span class="small-caps">APL2</span> data structures and the style of programming brought about by its new functions and operators.</p>

<p>Designed for private study or use in a classroom, <strong><em>APL2 at a Glance</em></strong> contains eight chapters that present the basic features of <span class="small-caps">APL2</span>:</p>

<ul>

<li><p><a href="chapter1.html">Chapter 1, <em>“Working with APL2,”</em></a> introduces <span class="small-caps">APL2</span> and shows how <span class="small-caps">APL2</span> handles data and performs operations. It defines important <span class="small-caps">APL2</span> terms and explains how to respond to error messages.</p></li>

<li><p><a href="chapter2.html">Chapter 2, <em>“Working with Vectors,”</em></a> explains the fundamental array structure of <span class="small-caps">APL2</span> and describes several operations that manipulate vectors.</p></li>

<li><p><a href="chapter3.html">Chapter 3, <em>“Working with Programs,”</em></a> describes the ways in which you can expand upon the set of operations <span class="small-caps">APL2</span> provides. It discusses the use of operators and introduces <span class="small-caps">APL2</span> programming.</p></li>

<li><p><a href="chapter4.html">Chapter 4, <em>“Working in the APL2 Environment,”</em></a> presents system commands for saving, loading, copying, and listing variables and programs.</p></li>

<li><p><a href="chapter5.html">Chapter 5, <em>“Working with Arrays,”</em></a> applies information from <a href="chapter2.html">Chapter 2</a> to all arrays and provides operations for measuring, structuring, and manipulating arrays.</p></li>

<li><p><a href="chapter6.html">Chapter 6, <em>“Working with Data,”</em></a> introduces operations for comparing, calculating, selecting, searching, and sorting of data.</p></li>

<li><p><a href="chapter7.html">Chapter 7, <em>“Working with Program Control,”</em></a> describes branching, program debugging, prompting for input, controlling output, iteration, and recursion.</p></li>

<li><p><a href="chapter8.html">Chapter 8, <em>“Working with Applications,”</em></a> demonstrates the development of <span class="small-caps">APL2</span> applications by showing three applications: recordkeeping for a magazine collection, simulation of a vector computer, and Artificial Intelligence for solving puzzles.</p></li>

</ul>

<p>Each chapter includes copious examples to demonstrate the ideas presented and exercises to give you practice in applying the information presented in the chapter.</p>

<p>If possible, you should try out examples on a computer as you read. To do this, you need to determine how to access <span class="small-caps">APL2</span> on your system, how to use the terminal or keyboard to enter and display the <span class="small-caps">APL2</span> character set, and how to use other features that may vary from one <span class="small-caps">APL2</span> implementation to another.</p>

<p>Besides trying the examples, you can improve your understanding of <span class="small-caps">APL2</span> by working the exercises. The exercises are of two types: practice in evaluating <span class="small-caps">APL2</span> expressions and problems involving creation of <span class="small-caps">APL2</span> expressions and programs. The answer key at the end of the book provides solutions to even-numbered problems.</p>

<p><strong><em>APL2 at a Glance</em></strong> covers the basic <span class="small-caps">APL2</span> features. The final section, <a href="postscript.html"><em>“Postscript: Expanding Your APL2 Knowledge,”</em></a> summarizes other <span class="small-caps">APL2</span> features and capabilities.</p>

<p>The book concludes with several appendices, a glossary, bibliography, and an index.</p>

<h3 id="acknowledgments">Acknowledgments<a href="#acknowledgments" class="section-link">§</a></h3>

<p>Without the encouragement, thoughtful reviews, and critical comments of colleagues, family, and friends, <strong><em>APL2 at a Glance</em></strong> would have been a lesser book. We acknowledge with appreciation and respect the efforts of so many: Doug Aiton, Ev Allen, Luanne H. Amos, Anne Baldwin, Yonathan Bard, Phil Benkard, Norman Brenner, Karen Brown, Gary Burkland, Bill Buscher, Thomas W. Conrad, Dick Dunbar, Ed Eusebi, Sylvia Eusebi, Kenneth Fordyce, Bill Frank, Erik S. Friis, John Gerth, Julie Gerth, Jon Goodblatt, Sandra K. Gomez, Alan Graham, Brent Hawks, Bjorn Helgason, Bill Hillman, Evan Jennings, Howard Kier, M. J. Kingston, Joseph W. Lacenere, Jr., Stephen M. Mansour, Claudio Marescotti, Theodoro Marinucci, Blair R. Martin, Jonathan McCathy, Tom McCleskey, Jon McGrew, Yutaka Morita, Dan H. Norton, Jr., Richard Oates, Scott Pakin, William C. Rodgers, James P. Russell, Bob Sayles, David Selby, Cory Skutt, Darryl O. Smith, Richard C. Stitt, Norman Thomson, Beth Rush Tibbitts, Jean-Luc Verspieren, Russ Washburne, Nancy Wheeler, Ron Wilks, Sheryl Winton, Karen Youmans, and Marty Ziskind. Nevertheless, any errors or omissions in the text are our responsibility and not those of the people listed here.</p>

<p>We also thank International Business Machines Corporation (<span class="small-caps">IBM</span>) and Sandra Pakin &amp; Associates, Inc.&nbsp;(<span class="small-caps">SP&amp;A</span>) for their support and cooperation. Special thanks and much appreciation go to Jon McGrew for producing <strong><em>The APL Gazette</em></strong> and for his extraordinary help in the production of this book.</p>

View this page on the web

View page source