% @(#)$Id: answer1.lsl,v 1.2 1997/06/09 23:06:11 leavens Exp $ % % There are many ways to answer such questions. Our response might be % somthing like the following. % % 1. It important to have some familiarity with LSL, because LSL gives % a means to specify the mathematical vocabulary used in interface % specifications. One can rely on the intuitive meaning behind the % names chosen for the operators (trait functions) in a LSL trait, % but that could be a source of misunderstanding. More precision is % possible, and one hopes fewer misunderstandings will result, % if the LSL specification of such vocabulary is relied on. % % For example, you may choose the notatation "a[i]" for indexing into % an array-like structure, but in some cases knowing whether the % indexes are 0-based or 1-based (or otherwise) may be important. % % 2. The role of LSL in writing a Larch/C++ specification is to % precisely describe the mathematical vocabulary used to state % the pre- and postconditions of Larch/C++ function specifications. % It can also be seen as a way to abstractly model the values of % C++ objects. For example, if one is specifying a C++ class Person, % then one would use LSL to describe the abstract values of Person objects. % answer1: trait