The spreadsheet has become a very popular tool in recent years. A modern commercial package provides many thousands of features – we shall be less ambitious. In essence, a simple two-dimensional spreadsheet is based on the concept of a matrix of cells, typically identified by a letter–digit pair (such as E7) in which the letter specifies a row and the digit a column. Part (or all) of this matrix is displayed on the terminal screen – one cell is taken as the active cell and is usually highlighted in some way (for example, in inverse video). Input to a spreadsheet is then provided in the form of expressions typed by the user, interleaved with commands that can reselect the position of the active cell. Each time an expression is typed, its formula is associated with the active cell and its value is displayed in the correct position. Changing the contents of one cell may affect the values of other cells. In a very simple spreadsheet implementation, each time one cell is assigned a new expression the values of all the other cells are recomputed and redisplayed. For this exercise assume that the expressions are confined to integer expressions of the sort discussed exhaustively in this text. The operands may be integer literals or the designators of cells. No attempt need be made to handle string or character values. A simple session with such a spreadsheet might be described as follows.
It is possible to develop such a system using Coco/R in a number of ways, but it is suggested that you proceed as follows.
(a) Derive a context-free grammar that will describe the form of a session with the spreadsheet like that exemplified above.
(b) Enhance your grammar to provide the necessary attributes and actions to enable a complete system to be generated that will read and process a file of input, and compute and display the spreadsheet updating the display each time new expressions become associated with cells.
n Arrange that the spreadsheet starts with the values of each cell set to zero and with no expressions associated with any cell. n No facilities for editing an expression need be provided – if a cell’s expression is to be altered it must be typed afresh. Hint: The most intriguing part of this exercise is deciding on a way to store an expression so that it can be evaluated again when needed. It is suggested that you associate a simple auxiliary data structure with each cell of the spreadsheet. Each element of this structure can store an operation or operand for a simple interpreter.
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.Read more
Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.Read more
Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.Read more
Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.Read more
By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.Read more