@(#)$Id: README,v 1.7 1997/01/10 22:45:56 leavens Exp $ This directory contains several introductory exercises for learning the Larch Shared Language (LSL) and Larch/C++. Learning LSL is necessary so that you can precisely understand the mathematical vocabularly used in the pre- and postconditions of Larch/C++ function specifications. The exercises for LSL are in the files named LSL.*/exercise.txt The introductory exercises for Larch/C++ are in the files named intro.*/exercise.txt If you like to know what you're learning and why (good!), then you might want to also look in the files LSL.*/objectives.txt for the objectives for each exercise. If you're not acquainted with LSL, then you should start with the following files LSL.a/objectives.txt LSL.a/exercise.txt After working the exercise, you can compare your answer with ours by looking in the file: LSL.a/answer1.lsl Then move on to LSL.b exercise by reading LSL.b/objectives.txt LSL.b/exercise.txt The answers will be in files named LSL.b/answer*.* in this case in the files are named LSL.b/answer1.lsl LSL.b/answer2.lsl LSL.b/answer3.lsl Then continue as above working the LSL.* exercises in order c, d, etc. Many of the exercises have ``extra credit'' parts. You can find the LSL ones in LSL.*/extra.txt You might want to postpone considering these until after you have looked at all the regular exercises, as some of these may be more difficult than the exercises they are attached to. No answers are given for these extra problems. Once you are familiar with LSL, you can move on to working with Larch/C++. To work the introductory Larch/C++ exercises, read the following files. intro.a/objectives.txt intro.a/exercise.txt After working the exercise, you can compare your answer with ours by looking in the following files (there's usually more than one way to specify something). intro.a/answer1.h intro.a/answer2.h intro.a/answer3.h Then proceed to the exercises in intro.b, intro.c, etc. Some of the Larch/C++ exercises also have LSL trait files as part of their solution. For example, for the second exercise, the answer files are named as follows. intro.b/answer1.h intro.b/answer1.lsl intro.b/answer2.h Thus there are two answers to the exercse in intro.b/exercise.txt. The first is in the files intro.b/answer1.h and intro.b/answer1.lsl; with intro.b/answer1.h being the Larch/C++ part of the answer, and intro.b/answer1.lsl being the LSL trait used to give the answer. (The second has no trait.) Discussions about the Larch/C++ answers are mostly in the answer*.h files, not the answer*.lsl files. Remember, the idea is to do the exercise yourself first, and only then look at the answers. Several of the answers pose further questions for you to think about (gee, this is *so* pedagogical). The main answer files may refer to other LSL traits or Larch/C++ specifications. Such files will either be in the Larch/C++ trait library, the LSL handbook, or will be given in the directory for the exercise with the name you'd expect (i.e., *.lsl or *.h). However, these complications don't happen until later exercises. Suggestions and comments on these exercises will be appreciated. You can send them to lc++@cs.iastate.edu. The material in this directory and its subdirectories is copyright (C) 1995,1997 by Gary T. Leavens. See the file COPYRIGHT for a full copyright statement.