`
`IPR2023-01406
`
`fe
`
`*
`
`BIT 1012
`
`v
`
`cok a ant
`
`XPERIA
`
`EXPERIAN EXHIBIT 1012
`IPR2023-01406
`
`
`
`PROGRAMMING
`LANGUAGE
`CONCEPTS 2/E
`
`Carlo Ghezzi
`Politecnico di Milano
`
`Mehdi Jazayeri
`Hewlett-Packard Laboratories
`
`JOHN WILEY & SONS
`New York
`Chichester
`
`Brisbane
`
`Toronto
`
`Singapore
`
`
`
`Copyright © 1982, 1987 by John Wiley & Sons, Inc.
`
`All rights reserved. Published simultaneously in Canada.
`
`Reproduction or translation of any part of
`this work beyond that permitted by Sections
`107 and 108 of the 1976 United States Copyright
`Act without the permission of the copyright
`owner is unlawful. Requests for permission
`or further information should be addressed to
`the Permissions Department, John Wiley & Sons.
`
`Library of Congress Cataloging in Publication Data:
`Ghezzi, Carlo.
`Programming language concepts.
`
`Bibliography: p.
`Includes index.
`1. Programming languages (Electronic computers)
`I. Jazayeri, Mehdi.
`II. Title.
`QA76.7.G48 1987
`ISBN 0-471-82173-X
`
`005.13
`
`Printed in the United States of America
`
`10 9 8 7 6 5 4 3 2
`
`86-18967
`
`
`
`4.2 Data Aggregates
`
`101
`
`APL. Of compiled languages, ALGOL 68 wa the fir t to allo
`·t · th
`.
`w 1 m e form
`db CL
`f 11
`of flex arrays, o owe
`~ U. According to the terminology introdu
`.
`Chapter 3, such array variables are called dynamic.
`ced m
`
`4.2.3 Seguencing
`A sequence consists of any number of occurrences of data items of a cert ·
`component type CT. This structuring mechanism has the important pr~~~
`erty of lea~ng u~specified the n_um~er of occurrences of the component;
`therefore, 1t requires the underlymg implementation to be able to store ob(cid:173)
`jects of arbitrary size (at least in principle).
`Strings provide a well-known example of sequences in which the compo(cid:173)
`nent type is character. The concept of sequence also captures the familiar
`data-processing idea of a sequentialfile.
`It is difficult to abstract a common behavior from th~ examples of se(cid:173)
`quences provided by existing programming languages. For example, SNO(cid:173)
`BO L4 views strings as data objects with a rich set of operations. Con(cid:173)
`versely, Pascal and C view strings simply as arrays of •characters, with no
`special primitives for string manipulation. Taking somewhat of a middle
`ground, PL/I and Ada provide string manipulation primitives but, to reduce
`the problem of dynamic storage allocation, require that the maximum size
`of a string be specified in the declaration of the string. Files present more
`serious problems in that they often have peculiar, system-dependent aspects
`as a result of the necessary interface with the operating system.
`Conventional operators on strings include the following.
`
`1. Concatenation The concatenation of THISJS_ andAN_EXAMPLE
`gives THISJS...AN _EXAMPLE.
`2. Selection of the first (last) component. Selection of the last component
`of the above string yields E.
`.
`3. Substring. A substring can be extracted f:om a given string by speci-
`fying the positions of the first and last desired characters.
`
`vor example a Pascal file
`·d d f
`· ·
`·
`·
`f'l
`Simple pr1m1tives are usually proVI e or 1 es. r'
`fil
`only can be modified by appending a new va~ue to the end of an eXIStlilg e.
`'
`.
`.
`Reading is possible only by sequential scannmg.
`
`er,
`he
`ds
`
`are
`
`