filled this results in very significantly more effective use of secondary storage given sequential access onlythe buffering mechanism is reasonably straightforward for all sequences and all media it can therefore safely be built into system for general useand the programmer need not be burdened by incorporating it in the program such system is usually called file systembecause the high-volumesequential access devices are used for permanent storage of (persistentdataand they retain them even when the computer is switched off the unit of data on these media is commonly called (sequentialfile here we will use the term file as synonym to sequence there exist certain storage media in which the sequential access is indeed the only possible one among them are evidently all kinds of tapes but even on magnetic disks each recording track constitutes storage facility allowing only sequential access strictly sequential access is the primary characteristic of every mechanically moving device and of some other ones as well it follows that it is appropriate to distinguish between the data structurethe sequenceon one handand the mechanism to access elements on the other hand the former is declared as data structurethe latter typically by the introduction of record with associated operatorsoraccording to more modern terminologyby rider object the distinction between data and mechanism declarations is also useful in view of the fact that several access points may exist concurrently on one and the same sequenceeach one representing sequential access at (possiblydifferent location we summarize the essence of the foregoing as follows arrays and records are random access structures they are used when located in primaryrandomaccess store sequences are used to access data on secondarysequential-access storessuch as disks and tapes we distinguish between the declaration of sequence variableand that of an access mechanism located at certain position within the seqence elementary file operators the discipline of sequential access can be enforced by providing set of seqencing operators through which files can be accessed exclusively hencealthough we may here refer to the -th element of sequence by writing sithis shall not be possible in program sequencesfilesare typically largedynamic data structures stored on secondary storage device such device retains the data even if program is terminatedor computer is switched off therefore the introduction of file variable is complex operation connecting the data on the external device with the file variable in the program we therefore define the type file in separate modulewhose definition specifies the type together with its operators we call this module files and postulate that sequence or file variable must be explicitly initialized (openedby calling an appropriate operator or functionvar ffile :open(namewhere name identifies the file as recorded on the persistent data carrier some systems distinguish between opening an existing file and opening new filef :old(namef :new(namethe disconnection between secondary storage and the file variable then must also be explicitly requested byfor examplea call of close(fevidentlythe set of operators must contain an operator for generating (writingand one for inspecting (readinga sequence we postulate that these operations apply not to file directlybut to an object called riderwhich itself is connected with file (sequence)and which implements certain access mechanism the sequential access discipline is guaranteed by restrictive set of access operators (procedures