|
ABSTRACT
Arrays of characters are a basic data type in many programming languages, but strings and substrings are seldom accorded first-class status as parameters and return values. Such status would enable a routine that calls a search function to readily access context on both sides of a return value. To enfranchise substrings, this paper describes a new data type for substrings as a special case of one for general subsequences. The key idea is that values are not sequences or references to positions in sequences, but rather references to subsequences. Primitive operations on the data type are constants, concatenation, and four new functions—base, start, next, and extent—which map subsequence references to subsequence references.
This paper informally presents the data type, demonstrates its convenience for defining search functions, and shows how it can be concisely implemented. Examples are given in Ness, a language incorporating the new data type, which is implemented as part of the Andrew User Interface System.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
CARDELLI, L., DONAHUE, J., GLASSMAN, L., JORDAN, M., KALSOW, B., AND NELSON, G. Modula-3 Report. Res. Rep. 31, Digital Systems Research Center, Palo Alto, Ca., 1988.
|
| |
2
|
Center for Design of Educational Computing, CMU. The cTtre Programming Languoge. Falcon Software, Wentworth, N.H., 1989.
|
| |
3
|
GLICKSTEIN, R. Lisp Primitives in ELI, the Embedded Lisp Interpreter. Information Technology Center, Carnegie Mellon Univ, 1990.
|
| |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
HANSEN, W. J. The computational power of an algebra for subsequences. Tech. Rep. CMU-ITC-083, Information Technology Center, Carnegie Mellon Univ., 1989.
|
| |
8
|
HANSE~, W.J. Ness Language Reference Manual. Information Technology Center, Carnegie Mellon Univ., 1989.
|
| |
9
|
HANSEN, W.J. Enhancing documents with embedded programs: How Ness extends insets in the Andrew ToolKit. In Proceedmgs of the 1990 International Conference on Computer Languages. IEEE Computer Society Press, Los Alamitos, Ca., 1990, pp. 23-32.
|
| |
10
|
|
| |
11
|
IBM Corporation PL/I language specifications. Tech. Rep. C28-6571-0, IBM Corp., Data Processing Division, White Plains, N.Y. 1965.
|
| |
12
|
McKEEMAN, W. M., HORNING, J. J, AND WORTMAN, D.B. A Compiler Generator. Prentice- Hall, Englewood Cliffs, N.J., 1970.
|
 |
13
|
James H. Morris , Mahadev Satyanarayanan , Michael H. Conner , John H. Howard , David S. Rosenthal , F. Donelson Smith, Andrew: a distributed personal computing environment, Communications of the ACM, v.29 n.3, p.184-201, March 1986
[doi> 10.1145/5666.5671]
|
| |
14
|
PALAY, A. J., HANSEN, W. J., SHERMAN, M., WADLOW, M., NEUENDORFFER, T., STERN, Z., BADER, M., AND PETERS, T. The Andrew Toolkit An overview. In Proceedings of the USENIX Winter Conferel2ce (Dallas, Tex., Feb. 1988), pp. 9 21.
|
 |
15
|
|
 |
16
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.3
Language Constructs and Features
Subjects:
Data types and structures
Additional Classification:
E.
Data
General Terms:
Languages
Keywords:
ATK,
AUIS,
Andrew Toolkit,
Ness,
document processing,
programming language design,
sequences,
string searching,
strings,
subsequences,
substrings
REVIEW
"Peter N. van den Bosch : Reviewer"
The introduction notes that, in spite of the steadily increasing
importance of text and string operations over the history of computing,
programming language facilities that incorporate substrings as
first-class values are largely
more...
|